Installation of Oracle 9i (R2) on SUSE Linux 9.1, 9.2, 9.3 and 10.1
This paper (HOWTO) describes step-by-step installation of Oracle 9i database software on SUSE LINUX 9.1, 9.2, 9.3 and 10.1.
This paper covers following steps:
Pre-Instalation Tasks
Download & Install
Post-Instalation Tasks
Common Installation Errors
#
#
#
Pre-Instalation Tasks
1. Create oracle User Account
Login as root and create te user oracle which belongs to dba group.
su -
# groupadd dba
# useradd -g dba oracle
# mkdir /home/oracle
# chown oracle:dba /home/oracle
# passwd oracle
2. Setting System parameters
Edit the /etc/sysctl.conf and add following lines:
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.msgmnb = 65536
kernel.msgmni = 2878
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
Note: You need execute "sysctl -p" command or reboot system to apply above settings.
Edit the /etc/security/limits.conf file and add following lines:
* - nproc 16384
* - nofile 16384
3. Setting Oracle Enviroment
Edit the /home/oracle/.bash_profile file and add following lines:
Settings for SuSE 9.1, 9.2 and 9.3 only. For SuSE 10.1 use the next settings.
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/920
ORACLE_SID=MY_ORACLE
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_ASSUME_KERNEL=2.4.1
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH LD_ASSUME_KERNEL
Settings for SuSE 10.1 only. For SeSE 9.1, 9.2 and 9.3 use the above settings. Note setting of LD_ASSUME_KERNEL in 10.1 will cause incorrect functionality of OS.
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/920
ORACLE_SID=MY_ORACLE
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH
Save the .bash_profile and execute following commands for load new enviroment:
cd /home/oracle
. .bash_profile
4. Create base directory for Oracle
Login as root and create base directory for Oracle ($ORACLE_BASE).
su -
# cd /opt
# mkdir oracle
# chown oracle:dba oracle
Download & Install
1. Download and install required .rpm packages
Some additional packages are required for succesful instalation of Oracle software. To check wheter required packages are installed on your operating system use following command:
rpm -q gcc glibc-devel libstdc++ libstdc++-devel cpp
If some package is not installed download it from SUSE ftp server or direct from 9.1, 9.2, 9.3 locations or install it from installation media.
Download the gcc_old-2.95.3-175.2.i586.rpm package.
Install the required packages using the rpm command:
# rpm -ivh gcc-3.3.4-11.i586.rpm \
glibc-devel-2.3.3-118.i586.rpm \
libstdc++-3.3.4-11.i586.rpm \
libstdc++-devel-3.3.4-11.i586.rpm \
cpp-3.3.4-11.i586.rpm \
compat-2004.9.6-2.i586.rpm \
gcc_old-2.95.3-175.2.i586.rpm
If all required packages were installed succesfuly then login as root and switch the GCC3 compiler binary with GCC2 compiler binary as following:
su -
# cd /usr/bin
# mv ./gcc ./gcc3
# mv /opt/gcc295/bin/gcc ./gcc
2. Download the Java Runtime Enviroment (j2re-1_3_1_15-linux-i586.bin) from the Sun website. Keep in mind you need to download j2re1.
3.1_11 or higher (Note: Install JRE 1.3.1_1x version only).
Login as root and make the the file executable and then execute it. When the JRE is exracted move the "jre1.3.1_15" di rectory to "/opt" directory.
# chmod +x j2re-1_3_1_15-linux-i586.bin
# ./j2re-1_3_1_15-linux-i586.bin
# mv jre1.3.1_15 /opt/
3. Download the Oracle 9i (9.2.0.4) software from Oracle website.
Extract the files using following command:
gunzip ship_9204_linux_disk1.cpio.gz
gunzip ship_9204_linux_disk2.cpio.gz
gunzip ship_9204_linux_disk3.cpio.gz
cpio -idmv < ship_9204_linux_disk1.cpio
cpio -idmv < ship_9204_linux_disk2.cpio
cpio -idmv < ship_9204_linux_disk3.cpio
When all archives were extracted you've got three directories Disk1, Disk2 and Disk3.
Edit the Disk1/install/linux/oraparam.ini and modify JRE_LOCATION variable and set path to our JRE installation from Step 2.
JRE_LOCATION=/opt/jre1.3.1_15
4. Start the Oracle software installation process.
Now the system is prepared for Oracle software installation. To start the installation process execute the following commands:
cd Disk1
./runInstaller
When network configuration assistant and database configuration assistant has failed during startup then do following steps:
cd /opt/oracle/920
rm JRE
ln -s /opt/jre1.3.1_15 JRE
su -
# cd /opt/oracle/920/JRE/bin
# ln -s java jre
# cd i386/native_threads
# ln -s java jre
Click on "Retry" button.
Post-Instalation Tasks
1. Switch back the GCC binaries
su -
# cd /usr/bin
# mv ./gcc ./gcc296
# mv ./gcc3 ./gcc
2. Change of JRE path in Oracle Universal Installer
Edit the $ORACLE_BASE/oui/oraparam.ini file and modify the value of JRE_LOCATION to /opt/jre1.3.1_15
3. (Optional) You may consider to use rlwrap for comfortable work with sqlplus. RPM package for
SuSE (x86) distribution you can download here.
su -
# rpm -ivh rlwrap-0.24-suse.i586.rpm
# exit
echo "alias sqlplus='rlwrap sqlplus'" >> /home/oracle/.bash_profile
. /home/oracle/.bash_profile
Common Installation Errors
Unable to load native library: /tmp/OraInstall2005-01-08_11-11-34AM/jre/lib/i386/libjava.so: symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference Solution: Install new JRE 1.3.1 version. Edit the Disk1/install/linux/oraparam.ini and set path to new JRE for JRE_LOCATION variable. For more information see Download & Install section.
Error in invoking target install of makefile /opt/oracle/920/ctx/lib/ins_ctx.mk
Error in invoking target install of makefile /opt/oracle/920/precomp/lib/ins_precomp.mk
Error in invoking target install of makefile /opt/oracle/920/plsql/lib/ins_plsql.mk
Error in invoking ntcontab.o of makfile /opt/oracle/920/network/lib/ins_net_client.mk Solution: Install the gcc_old-2.95.3-175.2.i586.rpm (gcc 2.95) package and change the GCC binaries. For more information see Download & Install section.
Starting Oracle Intelligent Agent.../opt/oracle/920/bin/dbsnmpwd: line 156: 2861 Segmentation fault nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/920/bin/dbsnmpwd: line 156: 2873 Segmentation fault nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/920/bin/dbsnmpwd: line 156: 2884 Segmentation fault nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/opt/oracle/920/bin/dbsnmpwd: line 156: 2895 Segmentation fault nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
Solution: Download and apply patch nr.: 3238244 from https://www.wendangku.net/doc/f15940259.html,.
Exception in thread "main" https://www.wendangku.net/doc/f15940259.html,ng.InternalError: Can't connect to X11 window server using 'localhost:0.0' as the value of the DISPLAY variable.
Solution: Execute "export DISPLAY=:0.0" (as oracle user) and "xhost +" as user who has opened X session (for example logged in KDE, GNOME, etc.). If the value is other than 127.0.0.1 or localhost you should "xhost +" on client machine.
一、ORA-27125:unable to create shared memory segment异常解决
运行dbca ,创建实例。不过,在这里一个比较令人头疼的问题。图形化创建实例总是报告: ORA-27125:unable to create shared memory segment. 检查核心参数,没有发现问题。后来经过网络上的交流得知:Linux 2.6内核有个特性:Huge TLB支持。该特性默认条件下是激活的。
相关解释:
By default only root has permission to allocate shared memory with this option (SHM_HUGETLB) and Oracle 10g defaults using it, so Oracle fails to allocate the SGA.This capability is supposed to be able to controlled with the setcaps program (CAP_IPC_LOCK), but I couldn't get it to work properly. The solution is either to set DISABLE_HUGETLBFS=1 before you start Oracle or to recompile the kernel without CONFIG_HUGETLB_PAGE and CONFIG_HUGETLBFS configuration parameters.
要解决该问题,在Oracle用户下执行$export DISABLE_HUGETLBFS=1(初稿这里有误) 注(2004年9月19日):本文最初描述的有问题,一般来说执行如下的操作比较稳妥:
linux: # cd $ORACLE_HOME/bin
linux: # mv oracle oracle.bin
cat >oracle <<"EOF"
#!/bin/bash
dbca
export DISABLE_HUGETLBFS=1
exec $ORACLE_HOME/bin/oracle.bin $@
EOF
linux: # chmod +x oracle
这是因为类似dbca这样的Java应用不能把DISABLE_HUGETLBFS=1传递给oracle执行程序。具体信息可参考URL:http://www.gesinet.it/oracle/hugetlb.html还有下面的参考URL.
然后再次运行dbca 。如果遇到问题的话,最好是定制库,最后选择"生成脚本" (当然,可以自己写脚本建库,不过用图形工具方便一些) 。运行脚本创建实例。不出意外的话,这次应该没有问题了。
安装数据库只是学习Oracle 10g的一个序曲。别等待,开始探索10g 的众多特性吧!