Installing Oracle9i (9.2.0) on Red Hat Linux 7.3-8.0

Jeff Hunter

    Requires Free Membership to View

Jeff Hunter is a SearchOracle.com guest contributor. Jeff is a senior DBA and author. He specializes in advanced performance tuning, Java programming, capacity planning, database security and physical/logical database design in a UNIX, Linux and Windows NT environments.

You can find more of Jeff's work at www.iDevelopment.info.

   Swap space considerations
   Install the Java Development Kit (JDK)
   Create Oracle account and directories
   Downloading/unpacking the Oracle9i installation files
   Run the Oracle Installer
   Errors during the relink phase of the install
   Configuration files/scripts

[ Return to Table of Contents ]

The following article is a summary of the steps required to successfully install the Oracle9i (9.2.0) RDBMS software on Red Hat Linux 8.0. Keep in mind the following assumptions throughout this article:

  • When installing Red Hat 8.0, I install ALL components (everything). This makes it easier than trying to troubleshoot missing software components.
  • The ORACLE_SID of the database to be created is O920DB.

Swap space considerations
[ Return to Table of Contents ]

  • Installing Oracle9i requires a minimum of 512 MB of memory. (An inadequate amount of swap during the installation will cause the Oracle Universal Installer to either "hang" or "die.")
  • To check the amount of memory/swap you have allocated, type either:

    # free

    - OR -

    # cat /proc/swaps

    - OR -

    # cat /proc/meminfo | grep MemTotal

  • If you have less than 512 MB of memory (between your RAM and SWAP), you can add temporary swap space by creating a temporary swap file. This way you do not have to use a raw device or even more drastic, rebuild your system.

    As root, make a file that will act as additional swap space, let's say about 300 MB:
    # dd if=/dev/zero of=tempswap bs=1k count=300000

    Now we should change the file permissions:
    # chmod 600 tempswap

    Finally we format the "partition" as swap and add it to the swap space:
    # mke2fs tempswap
    # mkswap tempswap
    # swapon tempswap

Install the Java Development Kit (JDK)
[ Return to Table of Contents ]

In order to use Oracle's HTTP [Apache] Server, you will need to download the appropriate SDK from Sun.

As per the JDK documentation, install JDK under /usr/local.
Then create a symbolic link to the JDK under /usr/local/java.

  • Sun's SDK 1.4.1
  • Download from: http://java.sun.com/j2se/1.4.1/download.html

    Download the "Linux self-extracting file / SDK" option. (I still don't trust or use RPMs). Install as root:

      # cp j2sdk-1_4_1_01-linux-i586.bin /usr/local
      # cd /usr/local
      # chmod 755 j2sdk-1_4_1_01-linux-i586.bin
      # ./j2sdk-1_4_1_01-linux-i586.bin
      # ln -s /usr/local/j2sdk1.4.1_01 /usr/local/java
      # rm j2sdk-1_4_1_01-linux-i586.bin

Create Oracle user account
[ Return to Table of Contents ]

Create Oracle user account:

# groupadd -g 115 dba
# useradd -u 173 -c "Oracle Software Owner" -d /u01/app/oracle -g "dba" -m -s /bin/bash oracle
# passwd oracle

Create Oracle directories:

# mkdir /u01
# mkdir /u01/app
# mkdir /u01/app/oracle
# mkdir /u01/app/oracle/admin
# mkdir /u01/app/oracle/admin/O920DB
# mkdir /u01/app/oracle/admin/O920DB/adhoc
# mkdir /u01/app/oracle/admin/O920DB/adump
# mkdir /u01/app/oracle/admin/O920DB/arch
# mkdir /u01/app/oracle/admin/O920DB/backups
# mkdir /u01/app/oracle/admin/O920DB/bdump
# mkdir /u01/app/oracle/admin/O920DB/cdump
# mkdir /u01/app/oracle/admin/O920DB/create
# mkdir /u01/app/oracle/admin/O920DB/dba
# mkdir /u01/app/oracle/admin/O920DB/exp
# mkdir /u01/app/oracle/admin/O920DB/logbook
# mkdir /u01/app/oracle/admin/O920DB/pfile
# mkdir /u01/app/oracle/admin/O920DB/release
# mkdir /u01/app/oracle/admin/O920DB/report
# mkdir /u01/app/oracle/admin/O920DB/tuning
# mkdir /u01/app/oracle/admin/O920DB/udump
# mkdir /u01/app/oracle/product
# chown -R oracle:dba /u01/app/oracle 
# mkdir /u03
# mkdir /u03/app
# mkdir /u03/app/oradata
# mkdir /u03/app/oradata/O920DB
# chown -R oracle:dba /u03/app/oradata 
# mkdir /u04
# mkdir /u04/app
# mkdir /u04/app/oradata
# mkdir /u04/app/oradata/O920DB
# chown -R oracle:dba /u04/app/oradata 
# mkdir /u05
# mkdir /u05/app
# mkdir /u05/app/oradata
# mkdir /u05/app/oradata/O920DB
# chown -R oracle:dba /u05/app/oradata 
# mkdir /u06
# mkdir /u06/app
# mkdir /u06/app/oradata
# mkdir /u06/app/oradata/O920DB
# chown -R oracle:dba /u06/app/oradata 
# mkdir /u07
# mkdir /u07/app
# mkdir /u07/app/oradata
# mkdir /u07/app/oradata/O920DB
# chown -R oracle:dba /u07/app/oradata 
# mkdir /u08
# mkdir /u08/app
# mkdir /u08/app/oradata
# mkdir /u08/app/oradata/O920DB
# chown -R oracle:dba /u08/app/oradata 
# mkdir /u09
# mkdir /u09/app
# mkdir /u09/app/oradata
# mkdir /u09/app/oradata/O920DB
# chown -R oracle:dba /u09/app/oradata 
# mkdir /u10
# mkdir /u10/app
# mkdir /u10/app/oradata
# mkdir /u10/app/oradata/O920DB
# chown -R oracle:dba /u10/app/oradata 
# mkdir /opt/bin
# chown oracle:dba /opt/bin

Oracle environment variable settings:

An example ".bash_profile" is provided in the configuration files/scripts section below.

Be sure to set the environment variable: LD_ASSUME_KERNEL=2.2.5

NOTE: Failing to set the LD_ASSUME_KERNEL parameter will cause the Oracle Universal Installer to hang!

Downloading/unpacking the Oracle9i installation files
[ Return to Table of Contents

  • Login as the newly created "oracle" user account. (su - oracle). Most of the actions throughout the rest of this document should be done as the "oracle" user account unless otherwise noted.
  • Download Oracle9i from Oracle's OTN site.
    (If you do not currently have an account with Oracle OTN, you will need to create one. This is a FREE account!)
  • Download the following files to a temporary directory:
    • lnx_920_disk1.cpio.gz (553,607,967 bytes)
    • lnx_920_disk2.cpio.gz (588,817,480 bytes)
    • lnx_920_disk3.cpio.gz (442,135,815 bytes)
    • Directions to extract the files.

    1. Run "gunzip " on all the files.

      Eg. gunzip lnx_920_disk1.cpio.gz

    2. Extract the cpio archives with the command: "cpio -idmv < "

      Eg. cpio -idmv < lnx_920_disk1.cpio
      Important note: Some browsers will uncompress the files but leave the extension the same (gz) when downloading. If the above steps do not work for you, try skipping step 1 and go directly to step 2 without changing the filename.
      Eg. "cpio -idmv < lnx_920_disk1.cpio.gz"

  • You should now have three directories called "Disk1, Disk2 and Disk3" containing the Oracle9i installation files:

Run the Oracle Installer
[ Return to Table of Contents ]

As the "oracle" user account:

  • Set your DISPLAY variable to a valid X Windows display.

    % DISPLAY=:0.0
    % export DISPLAY

    NOTE: If you forgot to set the DISPLAY environment variable and you get the following error:

    Xlib: connection to ":0.0" refused by server
    Xlib: Client is not authorized to connect to Server

    You will then need to execute the following command to get "runInstaller" working again:
    % rm -rf /tmp/OraInstall

    If you don't do this, the Installer will hang without giving any error messages. Also make sure that "runInstaller" has stopped running in the background. If not, kill it.

  • Change directory to the Oracle installation files you downloaded and extracted. Then run: runInstaller.

    % cd /Disk1
    % ./runInstaller

  • During the installation, DO NOT choose to "Create A Database." This how I answered the questions:
    • Inventory Location: /u01/app/oracle/oraInventory
    • UNIX Group Name: dba
    • You will be prompted to run /tmp/orainstRoot.sh as the "root" user account. After performing this action, continue the install by hitting the "Continue" button in the installer.
    • Destination:
      • Name: OraHome920
      • Path: /u01/app/oracle/product/9.2.0
    • Available Products: Oracle9i Database
    • Installation Types: Enterprise Edition (2.04GB)
    • Database Configuration: Software Only
  • Errors during the "Link" phase
  • About 84% into the Link phase of the install, you will get an error when invoking the target of "install" in makefile:
    Leave this error message up and refer to the next section, Errors during the relink phase of the install, on how to resolve and continue from this error. You will come back to this error dialog box after modify the $ORACLE_HOME/ctx/lib/env_ctx.mk file.

  • Continuing with the "Link" phase

    The "Link" phase will now successfully continue to 100% complete. When the "Link" phase is complete, you will be prompted to run the $ORACLE_HOME/root.sh script as the "root" user account. Go ahead and perform this action. When prompted for the "local bin directory," I generally choose to put the files in /opt/bin keeping with by old conventions of Solaris. You may choose to use the default of /usr/local/bin if you would like. Just make sure that whatever directory you choose that it is in the PATH environment variable of the "oracle" user account.

  • Completing the Installation

    After running the root.sh script in the above step, you have successfully installed the Oracle9i RDBMS software. At the "End of Installation" screen, simply hit the "Exit" button. A few seconds after hitting the "Exit" button will bring up "Oracle Enterprise Manager" (OEM). I generally exit from the OEM application as I keep a central repository for all nodes and databases. From here, it is time to create the O920DB Oracle database. In the Configuration files/scripts section of this document, I put together an example initO920DB.ora instance parameter file along with a set of CREATE DATABASE... scripts in an archive named create_database920.tar.

    Good Luck!

Errors during the relink phase of the install
[ Return to Table of Contents ]

During the "Link Phase" of the install, you will get an error while trying to make/install CTX. (The same issue exists in 9.0.1 on Red Hat Linux).

The following errors will exist in $ORACLE_HOME/install/make.log
/lib/libdl.so.2: undefined reference to `__ctype_b_loc@GLIBC_2.3'
/lib/libdl.so.2: undefined reference to `_dl_addr@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_open@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_close@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_sym@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_vsym@GLIBC_PRIVATE'
collect2: ld returned 1 exit status
make: *** [ctxhx] Error 1

This error occurs when the following is executed:
/usr/bin/make -f ins_ctx.mk install ORACLE_HOME=/u01/app/oracle/product/9.2.0


The solution is to edit the file $ORACLE_HOME/ctx/lib/env_ctx.mk and go to "INSO_LINK =", add a "$(LDLIBFLAG)dl" to the line and save it.

Here is the full line with the added "$(LDLIBFLAG)dl" flag:



You will also need to enter LD_ASSUME_KERNEL=2.2.5 in your .profile (or .bash_profile if you are using BASH) for the "oracle" user account so that they you can run programs like "dbssist" and "netca".

Return and retry

After making the above change, return to the popup error dialog box and hit "Retry". It should continue from here with no errors.

Configuration files/scripts
[ Return to Table of Contents ]


$HOME/.bash_profile for the "oracle" user account

Sample instance parameter script for Oracle9i. Place this file in ~oracle/admin/O920DB/pfile before running the RUN_CRDB.sh script below.

This is an example "create database" set of scripts. Untar the file to ~oracle/admin/O920DB/create. If you decide to change the name of the ORACLE_SID, here are the files that need to be changed:

  • crdb.sh
  • create_database.sql

The main script to run is: RUN_CRDB.sh.

This was first published in June 2004

There are Comments. Add yours.

TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.