1.确保RPM开发包,使用下面命令查看是否已安装这些包
rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils
2.Oracle官方网站下载Oracle9i安装文件为:Linux9i_Disk1.cpio.gz,Linux9i_Disk2.cpio.gz,Linux9i_Disk3.cpio.gz
三个文件,进行解压,
zcat Linux9i_Disk1.cpio.gz | cpio -idmv
zcat Linux9i_Disk2.cpio.gz | cpio -idmv
zcat Linux9i_Disk3.cpio.gz | cpio -idmv
然后有Disk1 Disk2 Disk3三个目录
3.设置内核参数
vi /etc/sysctl.conf,加入下面参数
kernel.shmmax=4294967295 内存512M
计算方法为:kernel:shmmax=1024*1024*RAM(M)/2
或者
编辑/etc/sysctl.conf
kernel.shmmax=4294967295
以上为512MB内存,所以设置这个数值。可根据实际情况设置。
这个shmmax是定义共享内存段的最大尺寸参数shmmax建议的设定值为物理内存的一半
执行sysctl -p生效
4.修改oracle用户能够打开的文件总数
vi /etc/security/limits.conf
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
4.建立数据目录和用户
以root的身份,使用groupadd命令增加dba组;
#groupadd dba
对于Oracle9i,还需要增加oinstall组,用来分配在数据仓库中安装软件的权限
#groupadd oinstall
对于oracle9i,使用oinstall和dba组作为默认组创建oracle账号
#useradd -g oinstall -G dba oracle
设置Oracle账号的口令
#passwd oracle
为Oracle建立的相应目录
#mkdir /opt/oracle
#mkdir /opt/oracle/product
#mkdir /opt/oracle/product/9.2.0
为使Oracle账号在安装期间使用这些安装位置,必须具有适当的权限。将安装位置的所有权限更改为Oracle账号。
#chown -R oracle.oinstall /opt/oracle
#mkdir /var/opt/oracle
#chown oracle.dba /var/opt/oracle
#chmod 755 /var/opt/oracle
5.使用oracle账号的.bash_profile插入下列环境变量
vi .bash_profile 设置变量
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=ora9
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
(1)export TNS_ADMIN=$ORACLE_HOME/network/admin
这样设置不会频频遭遇监听报错
重新用oracle用户登录,环境就可以生效
6.安装oracle
1.进入Disk1,然后执行:
./runInstaller
如果出现乱码,是中文不能正常显示,使用oracle用户登录,执行命令:
$export LANG=en
(1),在建立Oracle Inventory时候 ,出现提示框:
please execute the /tmp/orainstRoot.sh script now .....
安装程序已准备一个建立Oracle Inventory所用的orainsRoot.sh脚本,放在目录/tmp下,不过这个脚本需要有root身份才能执行,我们可以 再开启一个终端窗口来执行该脚本,
$su - root
#/tmp/orainstRoot.sh
执行完毕后再回到对话框单击Continue按钮继续
(2)当进行到61%时出现一个关于ins_oemagent错误,选择ignore,安装完后修复
(3) 当进行到84%时出现一个关于ins_ctx错误
编辑$ORACLE_HOME/ctx/lib/env_ctx.mk文件,
将参数$(LDLIBFLAG)dl加到文件结尾处的"INSO_LINK="字段中,修改为:
INSO_LINK=-L$(CTXLIB)$ (LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca处。
单击 Retry按钮继续安装
(4)在安装程序复制完成后,提示要求以root身份执行$ORACLE_HOME/root.sh脚本程序,我们单击OK按钮,开启一个终端窗口来执行该脚本
$su - root
#/oracle/product/9.2.0/root.sh
其中,程序会询问bin目录的位置,直接按下Enter键即可,回到安装程序,单击Ok按钮
安装完成后,
我们修复第二个错误
使用oracle用户
$cd $ORACLE_HOME/network/lib
$make -f ins_net_client.mk install
编辑$ORACLE_HOME/ctx/lib/ins_ctx文件
在大概第13-14行处
修改 $(LINK) $(CTXHXOBJ) $(INSO_LINK)
为
$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)
7.在创建库的时候,执行dbca时候出现错误
$./dbca
SIGSEGV 11* segmentation violation
stackbase=0x453da000, stackpointer=0x453d9d5c
Full thread dump:
"AWT-EventQueue-0" (TID:0x411d1e20, sys_thread_t:0x453d9e0c,
state:R) prio=5 *current thread*
java.lang.Object.wait(Object.java)
java.awt.EventQueue.getNextEvent(EventQueue.java:126)
需要执行以下操作:
$ su - root
# touch /etc/rac_on
编辑vi $ORACLE_HOME/bin/dbca
需要修改下面的
if [ -f /etc/rac_on ]; then
Run DBCA
JRE_DIR/bin/jre -native -DORACLE_HOME=$OH ...
else
Run DBCA
$JRE_DIR/bin/jre -DORACLE_HOME=$OH...
在 # $JRE_DIR/bin/jre -DORACLE_HOME=$OH 中加-native,修改后为:
if [ -f /etc/rac_on ]; then
Run DBCA
JRE_DIR/bin/jre -native -DORACLE_HOME=$OH ...
else
Run DBCA
$JRE_DIR/bin/jre -native -DORACLE_HOME=$OH...
8.启动数据库、监听程序
启动数据库
$Sqlplus “ / as sysdba”
SQL>startup
关闭数据库
SQL>shutdown
启动监听程序
lsnrctl