在Redhat9上安装Oracle 9(修改后的完整版)

Redhat9上安装Oracle 9.2

Redhat9.0是一个非常好的Linux发行版本,具有良好的中文支持和丰富的应用软件,令包括笔者在内的好多Linux用家爱不释手。但由于Redhat9.0采用的GCC版本比较高,造成了一定的兼容性问题。使得包括Oracle9.2和IBM DB2等大型数据库软件在Redhat9.0上不能顺利安装。

 

在安装之前有几个地方需要注意的:

你的交换分区最好有一个G左右那么大,第二你的硬盘分区最好也要有足够大的空间。

查看内存命令:grep MemTotal /proc/meminfo

查看交换命令:/sbin/swapon -s

如果交换区不足,可以用以下操作实现:

dd if=/dev/zero of=/swapfile bs=1024 count=65536(建立 /swapfile 档案,单位为 KB,所以这是 64MB)

mkswap /swapfile(将该档案空间格式化为 swap)

swapon /swapfile(立即启用新的 swap 档案)

修改 /etc/fstab 加入下面这一行

/swapfile swap swap defaults 0 0

安装前的准备工作

建立一个用户和组,Oracle 往往要求建立两个组,一个负责安装,另一个负责管理,但很多老资格的DBA都认为建立一个组就足够了。以root用户运行下列命令:

groupadd dba

useradd oracle -g dba

passwd oracle

 

Oracle安装的位置应遵守OFA( Optimal Flexible Architecture )规范,但在我的机器上,由于空间有限,所以将ORACLE_HOME设定为/soft/oracle,并要确保oracle用户对这个目录可写。

如果/soft/oracle目录不存在,则用mkdir创建。然后进入到soft的前一层目录,执行:

chown –R oracle.dba soft

chmod –R 755 soft

 

安装和运行Oracle需要配置内核参数,我的电脑具有512M内存。在 /etc/sysctl.conf 文件中增加如下内容:[1]

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.shmall = 2097152

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

配置Oracle 的环境变量如下:

export DISPLAY="127.0.0.1:0.0"

export LD_ASSUME_KERNEL=2.4.1

export ORACLE_BASE=/opt/oracle[2]

export ORACLE_HOME=/soft/oracle

export ORACLE_SID=or9i

export ORACLE_TERM=xterm

export NLS_LANG=american_america.ZHS16GBK

export LD_LIBRARY_PATH=/soft/oracle/lib:$LD_LIBRARY_PATH

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export PATH=$ORACLE_HOME/bin:$PATH

最好将上边的环境变量写入/home/oracle/.bash_profile 中,使得oracle 每次登录时都带有这些环境变量。

 

oracle安装盘放到Redhat的硬盘上:

如果需要在硬盘上安装,则需要把oracle安装盘的内容放在Redhat上

windows中下载oracle安装盘(为.cpio.gz文件);

设置Redhat的网络:在系统设置->网络中设置静态设置的IP地址(与window相似),然后激活。

Redhat中安装telnet及ftp:在添加/删除应用程序中的FTP服务品中增加FTP服务,在网络服务器中增加TELNET服务,然后确认在服务(系统设置->服务器设置->服务)中启动:telnet、vsftpd、xinetd服务.

window下通过ftp上传到Redhat(如/mnt/oracle).

 

准备oracle的安装文件:

/mnt/oracle中执行:

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

将生成三个文件夹:Disk1、Disk2、Disk3

 

查找是否已安装下列软件包[3]:用命令rpm –qa | grep compat(或其它对应名)

compat-gcc-7.3-2.96.118.i386.rpm(存在)

cpp-3.2.2-5.i386.rpm(存在)

glibc-devel-2.3.2-11.9.i386.rpm(存在)

compat-libgcj-7.3-2.96.118.i386.rpm(2)

compat-libgcj-devel-7.3-2.96.118.i386.rpm(2)

nss_db-compat-2.2-20.i386.rpm(2)

gcc-3.2.2-5.i386.rpm(2)

binutils-2.13.90.0.18-9.i386.rpm(1)

glibc-kernheaders-2.4-8.10.i386.rpm(存在)

如果有软件包不存在,则需要安装:

假设compat-libgcj-7.3-2.96.118.i386.rpm不存在,则需要:

解压缩Redhat的安装盘.ISO文件(只需要解压缩1、2即可,因为上述文件都在第一张或第二张盘文件中)

ftp上传对应文件(/mnt/oracle/rpms)

执行:rpm –ivh compat-libgcj-7.3-2.96.118.i386.rpm,安装对应软件包.

 

解决安装时中文不能正确显示的问题:

新建目录/usr/share/fonts/TrueType

windows拷贝simsun.ttf(simsun.ttc in windows,so change it's name to simsun.ttf)及其他你想要得字体文件到新建的目录/usr/share/fonts/TrueType

ttmkfdir -d /usr/share/fonts/TrueType/ -o/usr/share/fonts/TrueType/fonts.dir

ttmkfdir -d /usr/share/fonts/TrueType/ -o /usr/share/fonts/TrueType/fonts.scale

运行这两个命令来产生fonts.dir fonts.scale这两个文件

chkfontpath --add /usr/share/fonts/TrueType 运行这个命令,把字体路径加入 X 字体服务器的路径中,其实就是加入了/etc/X11/fs/config这个文件中.

重起xwindow

Disk1/stage/Components/oracle.swd.jre/1.3.1.0.0/1/DataFiles/Expanded/jre/linux/lib/font.properties.zh中的-tlc-song-都替换成-misc-simsun-(:%s/-tlc-song-/-misc-simsun-)

 

下面,就可以安装了

解补丁包p3006854_9204_LINUX.zip

# unzip p3006854_9204_LINUX.zip

p3006854_9204_LINUX.zip补丁

# cd 3006854

# sh  rhel3_pre_install.sh

xhost +

su – oracle

/mnt/oracle/Disk1下执行./runInstaller,将出现与window下相似的界面。

以下是截取某网站的,由于本人装的是客户端,所以无法判断是否已全部解决问题,而且这儿是英文的,如果是上面的步骤,则将是中文显示。

将出现下面的界面(图一)

                           图一

点击Next 键,进入下一步,直至出现图二

                        图二

输入Unix 的组名"dba",下一步后,根据提示,需要打开一个新窗口,执行

su - root

/tmp/orainstRoot.sh

一直按"next "键即可。

 

解决Net Configuration时的乱码问题:

/soft/oracle/bin/netca中,修改JREDIR=/home/oracle/jre/1.3.1(请确认有无此目录)

 

 

以下内容有可能不需要:

 

oracle9204补丁:p3006854_9204_LINUX.zipp3119415_9204_LINUX.zipp2617419_210_GENERIC.zip;在安装oracle9204前必须打p3006854_9204_LINUX.zip补丁,p3119415_9204_LINUX.zipp2617419_210_GENERIC.zipagent的补丁,如果不打这两个补丁agent就没法正常启动(http://chinaunix.net/jh/19/597500.html)

 

 

agent补丁以修正agent不能正常启动的bug (还是oracle 用户身份)
先停止oracle的一些后台服务

$ sqlplus “sys/as sysdba”  ---
提示输入oracle sys用户的密码,直接回车就可以

SQL>shutdown  immediate
SQL>lsnrctl stop
$ unzip p3238244_9204_LINUX.zip
$ cp p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/Opatch
$ export PATH=$PATH:/sbin
$ cd ../../ 3238244
$ opatch apply
$ cd $ORACLE_HOME/network/lib
$ make –f ins_oemagent.mk install
$ sqlplus “sys/as sysdba”  --
提示输入密码回车略过

SQL>startup
SQL>exit
$ lsnrctl start 
运行 $ agentctl start 测试agent代理能否正常工作

$ agentctl start 
如果数据库不能正常启动请执行

$ dbca
把旧库删除再创建一个新库

七、安装好后打/u01/app/oracle/product/9.2.0/network/admin/sqlnet.ora文件添加

SQLNET.AUTHENTICATION_SERVICE=(NTS)
只要在本地主机上运行sqlplus以数据库系统管理员登录都必须输入密码才可进入oracle数据库系统。

参考网址:

http://www.puschitz.com/InstallingOracle9i.shtml#OracleInstallationErrors

http://tech.163.com/05/0914/15/1TKEHHUF00091589_2.html

http://www.chinalinuxpub.com/read.php?wid=600


[1] 当分配给linux时,内存不足512M,也可以这样设置。

[2] 如果不设置ORACLE_BASE,则将出现错误:You do not have sufficent privileges to write to the specified
path;
出现在组件Database Configuration Assistant 9.2.0.1.0 中。不能继续安装该组件

[3] 如果某些软件包不存在,在安装时将报有关:ins_net_client.mk错误.

阅读更多
个人分类: linux
上一篇找了三天的BUG
下一篇跟我一起写 Makefile(转载)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭