Linux下Oracle 8.1.7的安装方式
syjt
|
1#
syjt 发表于 2003-08-18 10:09
Linux下Oracle 8.1.7的安装方式
关于本文
1、本文参考了网上各位的心得,在此表示感谢; 2、本人在RH7英文版+CII400+512M RAM、RH7.3英文版+P4 2.4G+1G RAM、RH9中文版+P4 2.4G+1G RAM下安装成功; 3、本文中提到的各位软件请各位自行下载。 一、安装glibc 2.1包 RedHat7.0(以上)安装的是glibc2.2。Oracle 8I不能使用glibc 2.2进行编译,而需要glibc2.1的SDK。 1、以root帐号登录 2、隐藏/usr/bin 目录下的gcc,cc,ld,避免被Oracle installer使用 3、隐藏/usr/lib目录下的libc.so,libdl.so,libm.so和libpthread.so文件,避免被Oracle installer使用 命令见下 cd / tar zxvf /install/glibc/i386-glibc-2.1-linux.tar.gz cd /usr/bin mkdir savedbyjohnny cd /usr/bin mv gcc cc ld savedbyjohnny cd /usr/bin ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc cd /usr/bin ln -s gcc cc cd /usr/bin ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld cd /usr/lib mkdir savedbyjohnny cd /usr/lib mv libc.so libdl.so libm.so libpthread.so savedbyjohnny cd /usr/lib mv libc.a libdl.a libm.a libpthread.a savedbyjohnny 二、创建dba组,oracle帐号 以root帐号登录,开启一个terminal窗口 1、创建dba组 groupadd -g 600 dba 2、创建oracle帐号 useradd -g dba -u 60001 oracle passwd oracle (设置oralce帐号的密码) 三、设置oracle用户环境 用root身份修改/etc/profile最后加入如下环境变量的设置行: (使用oracle帐号登录,则编辑/home/oracle/.bash_profile) ORACLE_BASE=/oracle; export ORACLE_BASE #根据oracle要安装到的相应目录有所不同 ORACLE_HOME=$ORACLE_BASE/product/8.1.7; export ORACLE_HOME #根据oracle的版本有所不同 LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH ORACLE_SID=orasid; export ORACLE_SID ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33 NLS_LANG=american_america.zhs16gbk;export NLS_LANG NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";export NLS_DATE_FORMAT #统一oracle的日期格式,可不写 CLASSPATH=.ORACLE_HOME/jdbc/lib/classes111.zip;export CLASSPATH JAVA_HOME=/usr;export JAVA_HOME JRE=$JAVA_HOME/jdk1.3.1/jre;export JRE LD_ASSUME_KERNEL=2.2.5; export LD_ASSUME_KERNEL #如果在P4机器上无法启动 java installer ,请加入这一项 PATH=$JAVA_HOME/jdk1.3.1/binORACLE_HOME/binPATH;export PATH #Oracle 8i和9i使用光盘mount点/runInstaller进行安装,它是用Java编写的图形界面,对中文处理有问题, #所以应在进入X-Window前确保语言(LANG)和地域(LC_ALL,LC_TYPE,…)环境变量不是中文。 LANG=C;export LANG LC_ALL=C;export LC_ALL ORACLE_TERM=ansi;export ORACLE_TERM #仅用于oracle 8 其中,zhs16gbk是简体中文的代码。也是数据库的字符集。oracle for linux/unix默认的中文字符集是zhs16cgb231280,而zhs16gbk则兼容它。 american_america是区域代码,关系不大。 Log out,重新以oracle帐号登录,键入env指令查看刚才设置的环境变量。 四、安装Oracle 8i 数据库软件 1、用oracle帐号登录,进入Xwindows,开启terminal窗口 2、进入oracle安装程序存放的目录 3、./runInstaller 此时若有出错,显示信息为 Xlib: connection to “:0.0” refused by server Xlib: Client is not authorized to connect to server 说明xhost没有配置 设置xhost 开启一个新的terminal窗口 su - (输入root密码) xhost + 保留此窗口 4、在oracle用户窗口下继续安装 在出现的基于JAVA的Oracle installer界面上,点击Next。 5、在File Locations界面上,检查Destination Path为$ORACLE_HOME ,点击Next 6、在Unix Group Name窗口中,键入"oracle",点击Next; 7、一个窗口会弹出,要求以root身份运行$ORACLE_HOME/orainstRoot.sh 8、切换到第3步保留的root用户窗口(若没有则新开一个,su - ) cd $ORACLE_HOME ./orainstRoot.sh 9、返回刚才弹出的窗口,点击Retry。 10、在出现的"Available products"窗口上选择"Oracle8I enterprise edition8.1.7.0.1",点击Next。 按照提示信息往下走,直到最后的Summary窗口上,点击Install,正式开始安装。 11、在文件被拷贝和联接后,弹出一个要求运行root.sh的窗口 切换到root用户窗口, 注意,Root.sh里有两处错误: RMF=/bin/rm - f 修改为 RMF="/bin/rm -f" RUID=`/usr/bin/id|$AWK -F( '{print $2}'|$AWK -F) '{print $1}` 修改为 RUID=`/usr/bin/id|$AWK -F( '{print $2}'|$AWK -F) '{print $1}'` 12、./root.sh 在询问local bin directory时按下Enter键 13、返回要求运行root.sh的窗口上,点击OK 14、Oracle Net8 Configuration和Oracle Database Configuration Assistants启动, 安装Net8和创建数据库。 这时,请停止这两项并退出安装。 15、安装oracle glibc补丁 以oracle用户开启一个新的terminal窗口 cd $ORACLE_HOME tar xfz /opt/oracle/glibc-2.1.3-stubs.tar.gz ./setup_stubs.sh cd /bin relink all 16、修改 /bin/df (可省略,若17、18无法进行则做此修改,否则可省略) Oracle 8.1.7 无法处理品 LVM 长分区名。 当我们创建一个新的DB的时候,程序dbassist会使用/bin/df命令检查是否有足够的空间。 如果有长分区名,实际的空间会列在下一行,而这将会导致dbassist崩溃。 做如下修改: mv /bin/df /bin/df.orig cat << EOF > /bin/df #!/bin/sh /bin/df.orig -P \$@ EOF chmod +x /bin/df 数据库创建完成的,可以用以下命令恢复df命令: mv /bin/df.orig /bin/df 17、运行Net8 Configuration Assistant netca 按提示做。 18、运行Database Configuration Assistant(创建数据库) dbassit 按提示创建。 19、实现机器启动/关闭/重启后ORACLE数据库和Listener的自启动/关闭/重启 创建文件/etc/rc.d/init.d/oracle # /etc/rc.d/init.d/oracle #!/bin/sh # # Startup script for Oracle # # chkconfig: 345 79 11 # description: Oracle. # processname: oracle # pidfile: /var/run/oracle.pid # # Source function library. . /etc/rc.d/init.d/functions ORA_HOME=/oracle/product/8.1.7 ORA_USER=oracle # See how we were called. case "$1" in start) echo -n "Starting Oracle Database Server: " daemon --user=$ORA_USER $ORA_HOME/bin/dbstart success "Starting Oracle Database Server: " echo echo -n "Starting Oracle TNS Listener: " daemon --user=$ORA_USER $ORA_HOME/bin/lsnrctl start >> /dev/null success "Starting Oracle TNS Listener: " echo touch /var/lock/subsys/oracle ;; stop) echo -n "Stopping Oracle Database Server: " daemon --user=$ORA_USER $ORA_HOME/bin/dbshut success "Stopping Oracle Database Server: " echo echo -n "Stopping Oracle TNS Listener: " daemon --user=$ORA_USER $ORA_HOME/bin/lsnrctl stop >> /dev/null success "Stopping Oracle TNS Listener: " echo rm -f /var/lock/subsys/oracle rm -f /var/run/oracle.pid ;; restart) $0 stop sleep 2 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 加入可执行权限 chown root.root /etc/rc.d/init.d/oracle chmod +x /etc/rc.d/init.d/oracle 20、启动加入如下连接 ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc2.d/S99oracle ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S99oracle ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc4.d/S99oracle 21、关闭加入如下连接 ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc0.d/K01oracle 22、重启加入如下连接 ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc6.d/K01oracle 23、恢复以前的glibc 命令如下 cd /usr/bin rm ?f gcc cc ld cd /usr/bin mv ./savedbyjohnny/* . cd /usr/bin rmdir savedbyjohnny cd /usr/lib mv ./savedbyjohnny/* . cd /usr/bin rmdir savedbyjohnny 备注:步骤21和步骤22最好不要用,根据我的观察,此程序调用的是 shutdown normal , 而此命令需要等待所有与数据库的连接断开后才会关闭数据库,否则一直等待下去。 如果加入21/22的连接,在你关闭/重启系统的时候,如果有一个数据库连接没断开, 则可能等上1个小时也不会关闭数据库,更可能导致系统死机! |