Oracle 9i Installation on Red Hat Linux


1, Uncompress and unpack downloaded files

One step procedure (uses less disk space and is faster):
zcat lnx_920_disk1.cpio.gz | cpio -idmv
zcat lnx_920_disk2.cpio.gz | cpio -idmv
zcat lnx_920_disk3.cpio.gz | cpio -idmv

Two step procedure:

Uncompress

gunzip lnx_920_disk1.cpio.gz lnx_920_disk2.cpio.gz lnx_920_disk3.cpio.gz Linux9i_Disk3.cpio.gz

Unpack the downloaded files:

cpio -idmv < lnx_920_disk1.cpio
cpio -idmv < lnx_920_disk2.cpio
cpio -idmv < lnx_920_disk3.cpio

Now you should have 3 directories containing installation files:
Disk1
Disk2
Disk3

2, Swap space

In order to perform a typical Oracle 9i installation and to create a simple prototype database, Oracle says that you need a minimum of 512MB of RAM for the Oracle9i (9.0.1) Server, and the amount of disk space (swap space) should be equal to twice the amount of RAM or at least 400 MB, whichever is greater.

Check your memory by executing:
grep MemTotal /proc/meminfo

Check swap space by executing:
cat /proc/swaps or swapon –s

You can also add temporary swap space by creating a temporary swap file instead of using a raw device. Here is the procedure:

As root:
dd if=/dev/zero of=tmpswap bs=1k count=900000
chmod 600 tmpswap
mkswap tmpswap
swapon tmpswap

To disable the temporary swap space execute the following commands:

As root:
swapoff tmpswap
rm tmpswap

3, Shared Memory

I increased the shmmax setting for the kernel by executing the following command:

As root:

cat /proc/sys/kernel/shmmax

33554432

echo expr 1024 \\* 1024 \\* 1024 > /proc/sys/kernel/shmmax

It is recommended to increase the shmmax setting permanently for Oracle. So if you want to increase the maximum shared memory size permanently, add the following line to the /etc/sysctl.conf file:
kernel.shmmax=1073741824

4,/tmp Space

The Oracle Universal Installer requires up to 400 MB of free space in the /tmp directory. If you do not have enough space in the /tmp directory, you can temporarily create a tmp directory in another filesystem. Here is how you can do this:

As root:
mkdir /

  1<anotherfilesystem>/tmp   
  2chown root.root /<anotherfilesystem>/tmp   
  3chmod 1777 /<anotherfilesystem>/tmp   
  4export TEMP=/<anotherfilesystem>/tmp # used by Oracle   
  5export TMPDIR=/<anotherfilesystem>/tmp # used by Linux programs like the linker "ld"   
  6  
  7When you are done with your Oracle installation, shutdown Oracle and remove the temporary directory:   
  8rmdir /<anotherfilesystem>/tmp   
  9unset TEMP   
 10unset TMPDIR   
 11  
 125,Oracle Disk Space   
 13  
 14You will need about 2.5 GB for the database software. If you perform a typical database installation and not a customized database installation, then you will need about 3.5 GB of disk space.   
 15  
 166,"binutils" Issue (if you fond following error )   
 17  
 18Q: "Error invoking target install of makefile /opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk"   
 19  
 20A: This obviates the need to change binutils   
 21  
 22download the following binutil RPM version and downgrade binutil on the Oracle server:   
 23ftp://ftp.redhat.com/pub/redhat/linux/7.0/en/os/i386/RedHat/RPMS/binutils-2.10.0.18-1.i386.rpm   
 24As root:   
 25rpm -Uvh --force --nodeps binutils-2.10.0.18-1.i386.rpm   
 26When you are done with the Oracle installation, you upgrade your binutil RPM back to the version you had before you downgraded:   
 27E.g. on a Red Hat 7.2 server:   
 28rpm -Uvh --force --nodeps binutils-2.11.90.0.8-9.i386.rpm   
 29  
 307,Development Packages (RPMs)   
 31  
 32You will need the following RPM development packages for the Oracle installer to compile the Oracle modules etc.:   
 33gcc   
 34cpp   
 35glibc-devel   
 36compat-libstdc++   
 37kernel-headers (on RH 7.1, 7.2, 2.1AS)   
 38glibc-kernheaders (on RH 7.3, 8.0)   
 39binutils   
 40  
 41Otherwise you'll get an error message like:   
 42Error in invoking target ntcontab.o of makefile /opt/oracle/product/9.2.0/network/lib/ins_net_client.mk   
 43  
 44To find out if you have these development packages installed, execute the following command:   
 45# rpm -q gcc cpp glibc-devel kernel-headers binutils   
 46  
 478,JDK   
 48  
 49I successfully installed Oracle9iR2 without installing JDK on the system.Oracle comes now with its own Java. This means that you don't have to follow these steps which were required for older Oracle versions:   
 50  
 51Download JDK 1.3.1 or Blackdown 1.1.8_v3: (I usually used Blackdown)   
 52http://www.blackdown.org   
 53http://java.sun.com   
 54  
 55According to JDK documentation, install JDK under /usr/local .   
 56Then create a symbolic link to the JDK under /usr/local/java :   
 57  
 58As root:   
 59bzip2 -dc jdk118_v3-glibc-2.1.3.tar.bz2 | tar xf - -C /usr/local   
 60ln -s /usr/local/jdk118_v3 /usr/local/java   
 61  
 629,Create Oracle User Accounts   
 63  
 64As root:   
 65  
 66groupadd dba   
 67groupadd oinstall   
 68useradd -g oinstall -G dba oracle   
 69passwd oracle   
 70  
 71Oinstall is not needed when the same people will be maintaining the software and the database. In this situation, it will create more work and add an extra layer of complexity to the maintenance of the installation.   
 72  
 73Recommendation: if you don't need the oinstall group for added security,   
 74just install using the dba group.   
 75  
 7610,Create Oracle Directories   
 77  
 78In this example, make sure that the /opt filesystem is large enough. If /opt is not on a separate filesystem, then make sure the root filesystem "/" has enough space.   
 79  
 80As root:   
 81  
 82mkdir /opt/oracle   
 83mkdir /opt/oracle/product   
 84mkdir /opt/oracle/product/9.2.0   
 85chown -R oracle.oinstall /opt/oracle   
 86  
 87mkdir /var/opt/oracle   
 88chown oracle.dba /var/opt/oracle   
 89chmod 755 /var/opt/oracle   
 90  
 9111,Set Oracle Environments   
 92  
 93Set the following Oracle environment variables before you start runInstaller.   
 94  
 95As the oracle user execute the following commands:   
 96  
 97# Oracle Environment   
 98export ORACLE_BASE=/opt/oracle   
 99export ORACLE_HOME=/opt/oracle/product/9.2.0   
100export ORACLE_SID=test   
101export ORACLE_TERM=xterm   
102#export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc. are not in $ORACLE_HOME/network/admin   
103export NLS_LANG=AMERICAN #export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;(if you use Chinese)   
104export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data   
105LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib   
106LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib   
107export LD_LIBRARY_PATH   
108  
109# Set shell search paths   
110export PATH=$PATH:$ORACLE_HOME/bin   
111  
112# I successfully installed Oracle9iR2 WITHOUT setting the following CLASSPATH environment variable:   
113CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib   
114CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib   
115export CLASSPATH   
116  
117export TMPDIR=/tmp   
118  
119You can put these environment settings at the end of the ~oracle/.bash_profile file if you use bash.   
120  
12112,Start runInstaller   
122  
123Oracle no longer supports a character mode installer. Therefore, in order to execute runInstaller directly from a console of a machine you are logged into (in this example the node name where Oracle is running is called "oracleserver"), you need to set the DISPLAY environment variable.   
124  
125From the console of your Oracle server "oracleserver " you are logged into, execute the following command as user " oracle ":   
126oracleserver:oracle$ export DISPLAY=yourlocalIP:0.0   
127  
12813,Running Oracle Installation   
129  
130This is how I answered the questions in the runInstaller:   
131  
132What would you like as the base directory (Inventory Location):   
133/opt/oracle/oraInventory   
134  
135UNIX Group Name (permission for updating Oracle software):   
136oinstall   
137You could also use "dba" which I do not recommend for security reasons.(refer to step 9)   
138  
139Full path name for Oracle Home:   
140/opt/oracle/product/9.2.0   
141  
142Oracle Home Name:   
143OUIHome   
144  
14514,You might get the following installation problems when you install Oracle 9i (9.2.0):   
146  
147l First check always the error logs in /tmp/OraInstall for 9.2.0, e.g /tmp/OraInstall2002-07-04_09-50-19PM, and in /tmp/OraInstall for 9.0.1. When you get make problems check also $ORACLE_HOME/install/make.log.   
148  
149  
150  
151l Q:"Error in invoking target install of makefile /opt/oracle/product/9.2.0/ctx/lib/ins_ctx.mk"   
152  
153AEdit $ORACLE_HOME/ctx/lib/env_ctx.mk and go to "INSO_LINK =", add a "$(LDLIBFLAG)dl" to the line and save it.   
154  
155Here is the full line with the added "$(LDLIBFLAG)dl" flag:   
156INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)   
157  
158l Q:"Error invoking target install of makefile /opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk"   
159"Error invoking target install of makefile /opt/oracle/product/9.0.1/precomp/lib/ins-precomp.mk"   
160"Error invoking target install of makefile /opt/oracle/product/9.0.1/precomp/lib/ins-net-client"   
161"Error invoking target install of makefile /opt/oracle/product/9.0.1/precomp/lib/ins-oemagent"   
162  
163AEdit the file $ORACLE_HOME/bin/genclntsh and change the following line (people have sent me emails pointing out that this also works for Mandrake 8.1 and Mandrake 8.2):   
164LD_SELF_CONTAINED="-z defs"   
165to read:   
166LD_SELF_CONTAINED=""   
167  
168Then run the script $ORACLE_HOME/bin/genclntsh as the user "oracle" and not as the user "root". Also make sure you have all the Oracle environments set!   
169  
170$ su - oracle   
171$ $ORACLE_HOME/bin/genclntsh   
172Created /opt/oracle/product/9.0.1/lib/libclntst9.a   
173$   
174  
175l QCan't find init file for Database "SID".   
176  
177AI saw this error only in connection with Oracle 9i R2 (9.2.0) when It tried to start the database with dbstart.   
178  
179I copied the init file for my SID "test" from /opt/oracle/admin/test/pfile to $ORACLE_HOME/dbs to get dbstart and dbshut working:   
180cp /opt/oracle/admin/test/pfile/inittest.ora.642002224936 $ORACLE_HOME/dbs/inittest.ora   
181  
182l Q:"Error in setting permissions of file/directory /opt/oracle/jre/1.1.8/bin/i686/native_threads/.extract_args"   
183  
184AWhile the error dialog is open, manually find and copy the .extract_args file from your installed jre to where runInstaller complains it is missing.   
185  
186l Q:"jre was not found in /tmp/OraInstall/jre/bin/i586/green_threads/jre"   
187  
188AYou are probably running runInstaller on a 586 machine, or your AMD CPU gets recognized as 586 (e.g. AMD K6-III-400). You can check your machine (hardware) type by executing uname -m .   
189To rectify this problem, create a link for lib and bin from i586 to i686 and make the i686 directories read only:   
190E.g.   
191ln -s /tmp/OraInstall/jre/bin/i686 /tmp/OraInstall/jre/bin/i586   
192ln -s /tmp/OraInstall/jre/lib/i686 /tmp/OraInstall/jre/lib/i586   
193chmod u-w /tmp/OraInstall/jre/bin/i686 /tmp/OraInstall/jre/lib/i686   
194Now restart runInstaller.   
195  
196If you are not running on a 586 or AMD machine, try to link jre to java and see if this solves your problem.   
197  
198l Do not cd to /mnt/cdrom to run ./runInstaller!   
199If you do so, the installation will fail because you won't be able to change the CDs.   
200  
201l If you forgot to set the DISPLAY environment variable (e.g. export DISPLAY=oracleserver:0.0) , or if you forgot to give the remote console - your Oracle Server - authority to display X information on your desktop PC (e.g. xhost +oracleserver ), you will get the following error:   
202Xlib: connection to ":0.0" refused by server   
203Xlib: Client is not authorized to connect to Server   
204In this case, I always had to kill runInstaller which was still running in the background! If you don't do this, runInstaller will not completely come up any more and you will not see any error messages that runInstaller is having problems.   
205You might also want to clean up /tmp/OraInstall (9.0.1):   
206rm -rf /tmp/OraInstall   
207  
208l When runInstaller starts to configure the tools ("Configuration Tools"), the "Oracle Net Configuration Assistant" will sometimes hang. Simply stop the Assistant and restart it, or continue the installation. When the rest of the installation is finished, do a "Retry" for "Oracle Net Configuration Assistant". This always worked for me.   
209  
210l When the system stops to respond during the Oracle installation, in particular during the database creation, then it is probably because you don't have enough RAM or enough swap space. I noticed that the whole system will not respond (or "hang") for several minutes when I did not have enough swap space. If this happens, simply wait until the system starts to respond again.   
211  
212l The Oracle installation also runs make etc. In a production environment you might not have compilers and other development packages installed. Therefore make sure you have temporarily the following packages installed: gcc, cpp, egcs, egcs-c++, glibc-devel, kernel-headers. (I'm not sure though if all of these packages have to be on the system during the Oracle installation.)   
213  
214l If for any reason the Oracle installation didn't finish successfully, you might want to clean up the following files and directories before you restart over again:   
215rm -rf /etc/oraInst.loc /etc/oratab /tmp/OraInstall   
216/tmp/<otheroracleownedfiles>   
217$ORACLE_BASE/*   
218  
21915,Startup and Shutdown of Oracle 9i Database   
220  
221sqlplus:   
222  
223svrmgrl is not supported any more. You can now do everything with sqlplus.   
224  
225E.g., to startup the database, execute the following commands:   
226dba$ sqlplus /nolog   
227SQL&gt; connect / as sysdba   
228SQL&gt; startup   
229  
230The slash connects you to the schema owned by SYS. So in this example we are saying that we want to connect to the schema owned by SYS with the privilege SYSDBA. SYSDBA gives you the following privileges:   
231sysoper privileges WITH ADMIN OPTION   
232create database   
233recover database until   
234  
235$ORACLE_HOME/bin/dbstart and $ORACLE_HOME/bin/dbshut :   
236  
237You can also use $ORACLE_HOME/bin/dbstart to startup the database, and $ORACLE_HOME/bin/dbshut to shutdown the database. You can place $ORACLE_HOME/bin/dbstart into the /etc/rc.d/rc.local boot script to automatically bring up the database at system boot time. To get $ORACLE_HOME/bin/dbstart and $ORACLE_HOME/bin/dbshut working, you need to change the third field for your Oracle SID in /etc/oratab from "N" to "Y".   
238  
239E.g. for the Oracle SID "test" I changed the line in /etc/oratab from   
240test:/opt/oracle/product/9.2.0:N   
241to read   
242test:/opt/oracle/product/9.2.0:Y   
243  
244For 9.2.0, I also had to copy the init file for my SID "test" from /opt/oracle/admin/test/pfile to $ORACLE_HOME/dbs to get dbstart and dbshut working:   
245cp /opt/oracle/admin/test/pfile/inittest.ora.642002224936 $ORACLE_HOME/dbs/inittest.ora   
246But first check if your init file already exists in $ORACLE_HOME/dbs.</otheroracleownedfiles></anotherfilesystem></anotherfilesystem></anotherfilesystem></anotherfilesystem></anotherfilesystem></anotherfilesystem>
Published At
Categories with 数据库类
comments powered by Disqus