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.zip,p3119415_9204_LINUX.zip,p2617419_210_GENERIC.zip;在安装oracle9204前必须打p3006854_9204_LINUX.zip补丁,p3119415_9204_LINUX.zip和p2617419_210_GENERIC.zip是agent的补丁,如果不打这两个补丁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 specifiedpath; 出现在组件Database Configuration Assistant 9.2.0.1.0 中。不能继续安装该组件
[3] 如果某些软件包不存在,在安装时将报有关:ins_net_client.mk错误.
