RedHatAS4U5安装Oracle9204

来源:互联网 发布:网络攻防小组 编辑:程序博客网 时间:2024/05/16 08:27
RHEL4U5(RedHatAS4U5)安装Oracle9204

第1步,安装RedHat Linux AS4U5

现在大多发行版的Linux安装比较容易了,在安装的时候选择软件包要记得把“原有的软件开发”选上,里面有gcc2.9.6版,安装Oracle会用到,而RedHat默认的是gcc3.4.4版,安装Oracle的时候编译好像有问题。

第2步,安装Oracle前的准备

1.首先要检查安装oracle时系统需要的包:

[root@myhost ~]# rpm -qa gcc make binutils openmotif setarch
setarch-1.6-1
gcc-3.4.6-8
make-3.80-6.EL4
openmotif-2.2.3-10.1.el4
binutils-2.15.92.0.2-22

[root@myhost ~]# rpm -qa | grep compat
compat-libcom_err-1.0-5
compat-db-4.1.25-9
compat-libstdc++-33-3.2.3-47.3
compat-libgcc-296-2.96-132.7.2
compat-gcc-32-3.2.3-47.3
compat-libstdc++-296-2.96-132.7.2
compat-gcc-32-c++-3.2.3-47.3
java-1.4.2-gcj-compat-1.4.2.0-27jpp

[root@myhost ~]# rpm -qa | grep xorg-x11-deprecated
xorg-x11-deprecated-libs-6.8.2-1.EL.18
xorg-x11-deprecated-libs-devel-6.8.2-1.EL.18

[root@myhost ~]# rpm -qa | grep gnome-libs
gnome-libs-devel-1.4.1.2.90-44.1
gnome-libs-1.4.1.2.90-44.1

由于rpm包之间有依赖关系,有安装顺序,我总结的安装顺序为:
#(5CD第3张盘)
rpm -ivh freetype-devel-2.1.9-5.el4.i386.rpm
rpm -ivh fontconfig-devel-2.2.3-7.i386.rpm
rpm -ivh xorg-x11-devel-6.8.2-1.EL.18.i386.rpm
rpm -ivh libjpeg-devel-6b-33.i386.rpm
rpm -ivh libtiff-devel-3.6.1-12.i386.rpm
rpm -ivh libungif-devel-4.1.3-1.el4.2.i386.rpm
rpm -ivh alsa-lib-devel-1.0.6-5.RHEL4.i386.rpm
rpm -ivh audiofile-devel-0.2.6-1.el4.1.i386.rpm
rpm -ivh esound-devel-0.2.35-2.i386.rpm
rpm -ivh xorg-x11-deprecated-libs-devel-6.8.2-1.EL.18.i386.rpm
rpm -ivh libaio-0.3.102-1.i386.rpm
rpm -ivh libaio-devel-0.3.103-3.i386.rpm
rpm -ivh openmotif-2.2.3-10.1.el4.i386.rpm
#(5CD第4张盘)
rpm -ivh nss_db-compat-2.2-29.i386.rpm
rpm -ivh glib-devel-1.2.10-15.i386.rpm
rpm -ivh gtk+-devel-1.2.10-36.i386.rpm
rpm -ivh imlib-devel-1.9.13-23.i386.rpm
rpm -ivh ORBit-devel-0.5.17-14.i386.rpm
rpm -ivh gnome-libs-devel-1.4.1.2.90-44.1.i386.rpm

安装完上面的包后,还需要安装两个包:compat-oracle-rhel4-1.0-3 和 compat-libcwait-2.0-1,这两个包由oracle提供,在p4198954_40_LINUX.zip这个补丁中,解开安装即可:
#Oracle Patch
unzip p4198954_40_LINUX.zip
rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm
rpm -ivh compat-libcwait-2.1-1.i386.rpm

2.创建Oracle用户和帐号

groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
passwd oracle
创建用户安装和维护Oracle的组和用户。用户为oracle,组为oinstall和dba。同时更改用户口令。

3.配置 Linux 的内核参数

vi /etc/sysctl.conf
#For Oracle
kernel.shmmax = 2147483648
kernel.shmmni=4096
kernel.shmall=2097152
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000

修改/etc/sysctl.conf文件。其中的几个参数的含义是:

共享内存

SHMMAX 参数定义共享内存段的最大大小(以字节为单位)。Oracle SGA 由共享内存组成,且错误设置 SHMMAX 可能会限制 SGA 的大小。在设置 SHMMAX 时,切记SGA的大小应该适合于一个共享内存段。SHMMAX 设置不足可能会导致以下问题:
ORA-27123:unable to attach to shared memory segment

可以通过执行以下命令来确定SHMMAX的值:
# cat /proc/sys/kernel/shmmax
33554432

SHMMAX 的默认值为 32MB。通常,这个值对于配置 Oracle SGA而言太小了。一般为物理内存的一半,在32位的linux系统中共享内存不得超过4*1024*1024*1024-1=4294967295内存,如果想加大shmmax,得编译oracle共享内存类库。

SHMMNI 这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的缺省值是 4096。该值足以满足需要,因此通常无需更改。
可以通过执行以下命令来确定 SHMMNI 的值:

# cat /proc/sys/kernel/shmmni
4096

SHMALL共享内存内核参数。该参数控制系统一次可以使用的共享内存总量(以页为单位)。简言之,该参数的值始终应至少为:
ceil(SHMMAX/PAGE_SIZE)

SHMALL 的默认大小为 2097152,并可以使用以下命令进行查询:
# cat /proc/sys/kernel/shmall
2097152

SHMALL 的默认设置足以满足 Oracle9安装的需要。

(注意:i386 平台上的 Red Hat Linux 中的页面大小为 4,096 字节。但可以使用 bigpages,它支持配置更大的内存页面大小。)

sem信号

可以使用以下命令查看:
# cat /proc/sys/kernel/sem
250 32000 32 128

4个参数依次是:
SEMMSL 内核参数用于控制每个信号集合的最大信号数。
Oracle 建议将 SEMMSL 设置为 init.ora 文件(适用于 Linux 系统上所有数据库)中的最大 PROCESS 实例参数设置再加上 10。此外,Oracle 建议将 SEMMSL 设置为不小于 100。

SEMMNS 内核参数用于控制整个 Linux 系统中的信号(而非信号集)的最大数量。
Oracle 建议将 SEMMNS 设置为系统上每个数据库的 PROCESSES 实例参数设置之和,加上最大的 PROCESSES 的两倍,最后为系统上的每个 Oracle 数据库加上 10。

SEMOPM 内核参数用于控制每个 semop 系统调用可以执行的信号操作数。
semop 系统调用(函数)能够使用一个 semop 系统调用完成多个信号的操作。一个信号集可以拥有每个信号集中最大数量的 SEMMSL,因此建议将 SEMOPM 设置为等于 SEMMSL。
Oracle 建议将 SEMOPM 设置为不小于 100。

SEMMNI 内核参数用于控制整个 Linux 系统中信号集的最大数量。Oracle 建议将 SEMMNI 设置为不小于 100。
使用以下计算式确定可以在 Linux 系统上分配的信号的最大数量。它将是以下两者中较小的一个值:
SEMMNS — 或 — (SEMMSL * SEMMNI) 。

文件句柄file-max

配置 Red Hat Linux 服务器时,必须确保最大文件句柄数足够大。文件句柄的设置表示您在 Linux 系统上可以打开的文件数。
使用以下命令来确定整个系统中文件句柄的最大数量:
# cat /proc/sys/fs/file-max
32768

Oracle 建议将整个系统的文件句柄值至少设置为 65536。
可以通过使用以下命令查询文件句柄的当前使用情况:
# cat /proc/sys/fs/file-nr
613 95 32768

file-nr 文件显示了三个参数:分配的文件句柄总数、当前使用的文件句柄数以及可以分配的最大文件句柄数。

保存退出执行以下命令使配置马上生效
sysctl -p

ip_local_port_range表示端口的范围,为指定的内容。

4.设置 oracle 对文件的要求

AS3 之后的内核用hugetlb取代bigpages,为了在AS4上使用hugetlbfs,我们需要修改memlock的默认值。hugetlb是一个新的基于内存的文件系统,该文件系能更好地支持基于共享内存的数据库。

vi /etc/security/limits.conf
#For Oracle
* soft nproc 2047
* hard nproc 16384
* soft nofile 4096
* hard nofile 65535

5.准备 Oracle 安装文件目录

mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01/app/oracle /u02/oradata
chmod -R 775 /u01/app/oracle /u02/oradata

创建Oracle 安装目录并修改所属者为 oracle, 所属组为oinstall

6.设置Oracle用户的环境变量

在~/.bash_profile文件中加入如下内容:
#For Oracle
export LD_ASSUME_KERNEL=2.4.19
#这个环境变量在打了Oracle提供的两个rpm后可以在安装的时候不用,可是运行netca,dbca等终端工具的时候还是需要这个环境变量来手工降低内核版本号
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=cedu
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
#export DISPLAY=192.168.1.141:0.0
#远程安装时候使用

#CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
#CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
#export CLASSPATH

#export LANG=en_US
#export DBCA_RAW_CONFIG=$ORACLE_BASE/DBCA_RAW_CONFIG

把以上参数写入用户相对应的配置文件使启动时生效.
如:. ~/.bash_profile

第3步 正式安装oracle

1.安装oracle

避免乱码,首先export LANG=en_US,然后就可以开始安装了。
从oracle网站下载oracle9204安装文件:
ship_9204_linux_disk1.cpio.gz
ship_9204_linux_disk2.cpio.gz
ship_9204_linux_disk3.cpio.gz
使用以下命令将9204的三张盘内容释放到此目录
zcat ship_9204_linux_disk1.cpio.gz |cpio -idvm
zcat ship_9204_linux_disk2.cpio.gz |cpio -idvm
zcat ship_9204_linux_disk3.cpio.gz |cpio -idvm
注销以oracle用户登录,在解压生成的第一张盘中执行:
export LANG=en_US
./runInstaller
则出现安装界面向导,进行选择安装,最好选择不创建数据库安装.
安装过程中提示以root身份执行/tmp/orainstRoot.sh时新开终端:
su - root
cd /tmp
sh orainstRoot.sh

安装到最后提示以root身份执行$ORACLE_HOME/root.sh时新开终端:
su - root
cd $ORACLE_HOME
sh root.sh
如果出现需要 libncurses.so.4类库时说明系统中没有安装ncurses4-5.0-9.i386.rpm这个包,下载安装即可.

由于一开始安装的是服务器端,里面没有Proc等开发工具,所以还要再来一次安装,选择客户端,把Proc安装进去。如果不要开发工具的话可以不用装客户端。

安装结束选择不进行配置,结束安装.

2.打补丁

oracle的补丁需要一个叫OPatch的工具,这个工具在metalink最新的包是叫做p2617419_10102_GENERIC.zip,搜索2617419可以得到。
unzip p2617419_10102_GENERIC.zip
mv ./OPatch $ORACLE_HOME
在.bash_profile中加入PATH=$PATH:$ORACLE_HOME/OPatch就可以了。

对一些工具进行修正
#su - oracle

$ unzip p3238244_9204_LINUX.zip
$ cd 3238244
$ opatch apply
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install
$ agentctl start

3.建库

$dbca

会正常出现图形界面,然后可以选择创建数据库。
如果在最后一步莫名其妙的界面消失.在命令行出现如下错误:
/oracle/product/9.2.0.1/bin/dbca: line 124: 27348 Killed $JRE_DIR/bin/jre -DORACLE_HOME=
$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH
oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
要解决这个问题:
$vi $ORACLE_HOME/bin/dbca
#将下面列出的除第3 行外的其余行注释掉.

#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……
#fi

建库的过程中,如果遇到ora-29087 则参照下面解决:
ORA-29807: specified operator does not exist
This is a known issue (bug 2925665). You can click on the "Ignore" button to continue.
Once DBCA has completed database creation, remember to run the 'prvtxml.plb'
script from $ORACLE_HOME/rdbms/admin independently, as the user SYS.
It is also advised to run the 'utlrp.sql' script to ensure that there are no
invalid objects in the database at this time.
忽略,等库建立完成后,执行prvtxml.plb与utlrp.sql即可,即:
$sqlplus /nolog
sql>conn / as sysdba
sql>@$ORACLE_HOME/rdbms/admin/prvtxml.plb
sql>@$ORACLE_HOME/rdbms/admin/utlrp.sql

出现ora-01430, 好像是安装指针指到 oracle spatial。
9.2.0.4用dbca建库的bug,选了spatial选项,如果不用空间数据库,就不要安装spatial选项.
先ignore
建好库后
$cd $ORACLE_HOME/rdbms/admin
$sqlplus
sql>@utlrp.sql

现在数据库创建完毕.

原创粉丝点击