Oracle9i Installation on RHEL3

(0 comments)

安装前准备

Oracle 官方网站下载的cpio.zip格式压缩文件,以下命令解压缩:

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

创建Oracle管理员用户和组:

groupadd dba
groupadd oinstall
useradd -g oinstall -G dba oracle
passwd oracle

创建安装Oracle数据库系统的目录,如下所示:

mkdir -p /opt/oracle/ora9
chown -R oracle.oinstall /opt/oracle

添加用户环境变量到oracle(DBA) 用户的.bash_profile,内容如下:

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/ora9
export ORACLE_TERM=xterm
export ORACLE_SID=intbol
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN;
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export DISPLAY=$HOSTNAME:0.0

RedHat AS 3.0 和 Fedora Core 2 以上版本,需要修改添加两个环境变量。

export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native

设置LD_ASSUME_KERNEL这个参数实际上是为了避免Linux上的NPTL(Native POSIX Thread Library)和Oracle应用不兼容的问题. 设定 LD_ASSUME_KERNEL为2.4.19表示使用旧有的”Linuxthreads with floating stacks”。

Fedora Core 5开始不再支持LD_ASSUME_KERNEL=2.4.19这个参数,如果设置会有问题。

修改 /etc/sysctl.conf 文件,增加如下设置:

# Set kernel parameter for Oracle
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

执行命令 sysctl -p 使修改参数生效。

设置 oracle 系统限制,编辑/etc/security/limits.conf,添加以下内容:

oracle    soft      nofile      65536
oracle    hard      nofile      65536
oracle    soft      nproc       16384
oracle    hard      nproc       16384

安装系统时选择开发包和 X,以下是在RedHat AS 3.0上执行的结果,一般需要安装所有compat包。

# rpm -q gcc make binutils openmotif setarch glibc glibc-headers glibc-devel
gcc-3.2.3-20
make-3.79.1-17
binutils-2.14.90.0.4-26
openmotif-2.2.2-16
setarch-1.3-1
glibc-2.3.2-95.3
glibc-headers-2.3.2-95.3
glibc-devel-2.3.2-95.3

# rpm -qa | grep compat
compat-db-4.0.14-5
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-gcc-7.3-2.96.122

RedHat EL4下载Patch 4198954并安装RPM包:

cd 4198954
rpm -Uvh compat-oracle-rhel4-1*
rpm -Uvh compat-libcwait-2*

Fedora Core 3 以上版本必须安装 Fedora Core 2 以下的 compat-gcc 版本。

rpm -e compat-gcc
rpm -ivh compat-gcc-7.3-2.96.x.i386.rpm

Fedora Core 4 还需要安装以下软件包:

compat-libgcc-296-2.96-132.fc4
compat-libstdc++-33-3.2.3-47.fc4
compat-libstdc++-296-2.96-132.fc4

Fedora Core 5 版本因更新太多,很难成功安装Oracle 9i,建议使用Oracle 10g。

RedHat AS 3.0 和 Fedora Core 3 以上必须更改默认 gcc 的版本。(see Oracle Note:252217.1 for more information)

cd /usr/bin
mv gcc gcc323
ln -s gcc296 gcc
mv g++ g++323
ln -s g++296 g++

安装数据库软件

由于 ORACLE 安装界面中文支持不好,建议将 LC_ALL 改为英文。远程安装时需要将 DISPLAY 改为本机。

# su - oracle
$ export LC_ALL=en_US

Oracle 默认只能在它“认证”过的操作系统上安装,如果操作系统没有经过认证,添加参数 '-ignoreSysPrereqs'。

$ ./runInstaller
The base directory: /opt/oracle/oraInventory
Unix Group Name: oinstall
Destination
  Name: OUIHOME
  Path: /opt/oracle/ora9
Available Product: Oracle9i Database 9.2.0.4.0
Installation Types: Enterprise Edition
Database Configuration: Software Only

如果安装时选择 General Porposal 将会创建数据库,需要提供类似下面的信息。

Global Database Name: oraservername.mydomain.com
SID: test
Database File Location: /opt/oracle/oradata
Database Character Set: Use Unicode(AL32UTF8)

后续清理工作

Switch back the GCC binaries:

cd /usr/bin
rm gcc
mv gcc323 gcc
rm g++
mv g++323 g++

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.

Cleanup tmp file:

rm -rf /tmp/OraInstall*

常见问题

Question.1

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

Answer.1

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.

Question.2

Error message:

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 

Answer.2

Install the compat-gcc-7.3-2.96.126.i386.rpm (gcc 2.96) package and change the GCC binaries. For more information see Download & Install section.

Question.3

Solution: Install the compat-gcc-7.3-2.96.126.i386.rpm (gcc 2.96) package and change the GCC binaries. 
For more information see Download & Install section. 

Answer.3

Modify /etc/selinux/config and change value of SELINUX to “disabled” and reboot computer.

安装补丁

首先,必须安装 OPatch 补丁工具,补丁包的名称为 p2617419_210_GENERIC.zip。将补丁包解压缩到 oracle 用户目录:

unzip p2617419_210_GENERIC.zip -d /home/oracle

Opatch 需要使用 /sbin 目录下的命令,将这条命令加入 oracle 用户的 profile 中。

export PATH=$PATH:/sbin:/home/oracle/Opatch

现在,可以用 opatch 命令来管理补丁:

安装补丁:

 opatch apply

<warning>安装任何补丁都必须用 oracle 用户来执行。</warning>

RedHat AS 3.0 中执行 agentctl start 启动 Oracle 代理时,系统报错 segment fault。解决这个问题需要 p3238244_9204_LINUX.zip 补丁包。

  • 将补丁应用到安装代码中:
    $ unzip p3238244_9204_LINUX.zip
    $ cd 3238244
    $ opatch apply
  • 重新编译 dbsnmp 程序:
    $ cd $ORACLE_HOME/network/lib 
    $ make -f ins_oemagent.mk install

升级补丁集

补丁集是Oracle公司每隔一段时间发布的一系列补丁集合,安装升级补丁集是十分容易的,但稍有疏漏就可能造成不可挽回的损失,所以必须小心。

  • 升级数据库前必需完整备份数据库,最好将数据库停止做冷备份。
  • 关闭数据库实例和数据库监听进程。
  • 对于业务系统,如果不是必须,就不要打补丁。

下载并解压缩补丁集,以oracle用户执行./runinstaller 升级数据库管理系统。安装时注意修改Destination(OUIHOME)为正确的名称(通常是OUIHome),下面的Path会自动更新。

升级数据库管理系统成功后,还需要升级数据库。因此如果是全新安装,建议先升级数据库系统,在升级数据库。

  1. 启动数据库到升级模式,运行补丁脚本。
    SQL> STARTUP MIGRATE
    SQL> SPOOL patch.log
    SQL> @?/rdbms/admin/catpatch.sql
    SQL> SPOOL OFF
  2. 在 patch.log 中查看是否有错误,如果有,则修复错误后再执行上述操作。
  3. 重新编译并且检查PL/SQL包。
    SQL> @?/rdbms/admin/utlrp.sql
  4. 升级 mod_plsql(可选)。
    $ cd $ORACLE_HOME/Apache/modplsql/patch
    $ sqlplus " / as sysdba"
    SQL> @@owa_patch.sql
    Check owa_patch_sid.log file for any errors. 
    SQL> @?/rdbms/admin/utlrp.sql
  5. 升级结束后,将数据库以普通模式重新启动。
    SQL> SHUTDOWN IMMEDIATE
    SQL> STARTUP
  6. 查询数据库版本信息。
    SQL> select * from v$version;

补丁集9.2.0.7使用10g的OUI和JRE 1.4.2,因此解决了很多图形命令行的问题,不需要再打GCC补丁和替换JRE。

解决GCC问题的另外一种方法

RedHat 3.0 AS 安装前必须打修复 GCC 的补丁 p3006854_9204_linux.zip,安装补丁前前必须将 GCC 的版本降为 2.96。这个补丁用于修复 JRE 中 libjava.so 与新版本 GCC 不兼容的地方,另外一种解决方法是直接替换 JRE,JRE 版本要求 j2re1.3.1_11 或更高版本,但只能安装 JRE 1.3.1_1x。

chmod +x j2re-1_3_1_15-linux-i586.bin
./j2re-1_3_1_15-linux-i586.bin

mv jre1.3.1_15 /opt/

J2RE二进制版本中使用tail +286命令跳过二进制文件的前286行,Fedora Core 5中不允许这种简写方式。必需将命令替换成tail -n +286,修改会导致文件checksum不通过,注释掉checksum功能。注意:修改二进制文件时不要改变行数。

编辑配置文件 Disk1/install/linux/oraparam.ini,修改 JRE_LOCATION 路径。

JRE_LOCATION=/opt/jre1.3.1_15

如果安装时选择创建数据库,在网络和数据库配置时启动出错,因为 Oracle 安装的是自带的 JRE,同样也需要替换安装好的 JRE。

$ cd /opt/oracle/ora9
$ rm JRE
$ ln -s /opt/jre1.3.1_15 JRE
$ su -
# cd JRE/bin
# ln -s java jre
# cd i386/native_threads
# ln -s java jre 

修改 oemapp 脚本中的 JRE 设置,新版本的 JRE 并不支持 '-nojit' 选项。

#PATH=/opt/oracle/ora9/jre/1.1.8/bin:$PATH
PATH=/opt/oracle/ora9/JRE/bin:$PATH

    #JRE="jre $JRENATIVEOPTION -nojit $ORACLE_OEM_JAVAMX $TRACE"
    JRE="jre $JRENATIVEOPTION $ORACLE_OEM_JAVAMX $TRACE"
Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required