Nov
28
[原]在红旗DC 4.1上安装Oracle 9i(9204)
在红旗DC 4.1上安装Oracle 9i是很久以前已经测试过了,刚好碰到有个项目又遇到同样的情况,也就在这里把安装的一些步骤描述一下:
1、准备
Oracle 9i版本比较多,一般用得最多的是9204版本,其中包括x86、x86_64和IA64等,这里主要以x86来说明。其他的版本可能需要不同的补丁,这部分在最后备注里面再做说明。
x86版本的Oracle 9i,在安装前需要先安装p3006854_9204_LINUX.zip补丁,或安装红旗DC 4.1 for x86第一张光盘上的oracle9i_support-1.0-2Ax.i386.rpm包。
除此以外,x86的版本还需要把gcc版本降低:
恢复gcc版本,使用:
一般Oracle数据库都和HA或负载均衡软件结合在一起,所以,我把数据库建立在独立的共享分区上
# fdisk /dev/sdb
n --建立新的分区
p --建立主分区
1 --建立第一个主分区
w --更新分区表
# mkfs.ext3 /dev/sdb1
# mkdir /oradata
# chown -R oracle:oinstall /oradata
# mount /dev/sdb1 /oradata
2、运行Oracle Navigator
红旗DC 4.1已经包含了一个非常方便的配置工具oranavi,我们可以不需要手动的为Oracle配置环境变量,而直接利用他为我们配置妥当。
运行oranavi应该使用root用户,而不是oracle用户。另外,安装oracle 是以oracle用户的身份进行的,所以,我们需要运行下面的命令:
xhost 是用来控制X server访问权限的,这样做是为了让oracle用户能够访问Xserver。
启动Oralce Navigator
选择“安装Oracle数据库”
我使用的是光盘安装,选择光盘,如果你使用的下载版本,需要先解压,然后选择硬盘目录。见附录
确认安装的版本
输入Oracle的安装组、管理组和用户名(默认即可)
输入Oracle安装用户的密码和用户主目录
设置Oracle的环境变量,特别留意SID值(非常重要)
为方便Apache连接到Oracle,为Apache添加连接
点击确认,正式开始安装
3、正式开始安装
因为Oracle的安装程序对中文支持不好,我们建议使用英文的安装方式进行:
选择存放安装程序的路径
输入安装或升级Oracle使用的用户组(参考上面建立的信息,留空则则只能使用root更新)
下面会提示你切换到另一个窗口下,使用root权限运行一个脚本,然后再切换到当前窗口下继续
# /tmp/orainstRoot.sh
Creating Oracle Inventory pointer file (/etc/oraInst.loc)
Changing groupname of /opt/oracle/oraInventory to oinstall.
输入来源路径和安装路径
增加需要支持的语言,点击Product Languages
增加简体中文和繁体中文,确认后,继续安装
选择安装Oracle 9i DataBase 9.2.0.4
选择安装企业版
选择安装为通用数据库
输入初始数据库名称和SID名称
输入存放数据库的地方
选择默认字符集
重新检查一次是否有缺漏,没有问题的话,按“Install”安装
拷贝数据
拷贝完文件后,还需要使用root管理员运行一个脚本
建立数据库
给数据库管理员设置密码
由于9204的程序有点问题,监测到Agent服务的时候会出错
暂时忽略错误后,即安装完毕,退出安装界面
4、安装补丁
从上面的安装过程可以看到,Agent服务的启动是有问题的,所以我们必须为他增加一个p3238244_9204_LINUX.zip的补丁。
首先,我们需要先安装一个补丁的安装工具
停止Oracle服务
安装p3238244_9204_LINUX.zip补丁
补丁修复完成,需要relinked一个.mk文件。
到此,整个Oracle 9i 9204数据库已经安装完毕
5、测试
下面我们为数据库进行必要的简单测试
◎测试数据库启动和关闭
成功!
◎测试lsnrctl服务启动和关闭
成功!
◎测试Agent服务的启动和关闭
成功!
◎Apache服务的启动和关闭
成功!
到此,安装和测试都完成,Oracle 9i的安装也结束了。
6、附录
◎安装程序显示的都是“方格□”
这是由于Oracle的安装程序对中文支持不好,我们使用英文的安装方式即可,在安装前运行
◎如果在使用oranavi工具安装中出现问题,下次该如何继续?
千万不要多次使用oranavi工具引导Oracle的安装程序,这样会导致Oracle用户下的环境配置混乱,正确的方法是:
也就是直接切换到Oracle用户,直接运行安装程序即可。
◎安装完毕后,不能启动数据库
Oracle用户的环境变量中ORACLE_SID是否正确,和需要启动的数据库实例是否一致?
◎如何使用dbstart和dbshut直接启动和关闭数据库
这个我们需要修改/etc/oratab文件,默认是不能使用dbstart和dbshut控制数据库的,但在很多时候,特别是HA控制脚本里面,我们经常会修改它
◎我使用的是下载的文件,都是cpio文件,该如何安装
通常从Oracle网站下载回来的都是:ship_9204_linux_disk1.cpio.gz、ship_9204_linux_disk2.cpio.gz、ship_9204_linux_disk3.cpio.gz
我们可以使用
生成三个文件夹Disk1,Disk2,Disk3,进入安装即可。
当然,我们也可以把他们刻录为光盘
这样就和用光盘安装一样了。
7、错误
出现这样的错误,一般有两个原因:一是网卡没有使用固定IP的方式,而使用了DHCP获得;二是在双网卡的环境下,两个网卡配置了同样的网段。
解决的方法:一、给网卡配置一个固定的IP;二、给两个网卡配置不同的IP段,如一个是192.168网段,另一个是10网段,并在/etc/hosts文件中增加ip和机器名的对应,然后重新运行安装程序。
出现这样的错误,通常是由于您使用的Oracle版本太低,需要再安装后增加一个p3119415_9204_LINUX.zip补丁
安装完补丁就可以了。
1、准备
Oracle 9i版本比较多,一般用得最多的是9204版本,其中包括x86、x86_64和IA64等,这里主要以x86来说明。其他的版本可能需要不同的补丁,这部分在最后备注里面再做说明。
x86版本的Oracle 9i,在安装前需要先安装p3006854_9204_LINUX.zip补丁,或安装红旗DC 4.1 for x86第一张光盘上的oracle9i_support-1.0-2Ax.i386.rpm包。
# rpm -ivh /mnt/cdrom/Asianux/RPMS/oracle9i_support-1.0-2AX.i386.rpm
除此以外,x86的版本还需要把gcc版本降低:
# chgcc.sh -v 296
恢复gcc版本,使用:
# chgcc.sh -v 323
一般Oracle数据库都和HA或负载均衡软件结合在一起,所以,我把数据库建立在独立的共享分区上
# fdisk /dev/sdb
n --建立新的分区
p --建立主分区
1 --建立第一个主分区
w --更新分区表
# mkfs.ext3 /dev/sdb1
# mkdir /oradata
# chown -R oracle:oinstall /oradata
# mount /dev/sdb1 /oradata
2、运行Oracle Navigator
红旗DC 4.1已经包含了一个非常方便的配置工具oranavi,我们可以不需要手动的为Oracle配置环境变量,而直接利用他为我们配置妥当。
运行oranavi应该使用root用户,而不是oracle用户。另外,安装oracle 是以oracle用户的身份进行的,所以,我们需要运行下面的命令:
#xhost +
xhost 是用来控制X server访问权限的,这样做是为了让oracle用户能够访问Xserver。
启动Oralce Navigator
# oranavi
选择“安装Oracle数据库”
我使用的是光盘安装,选择光盘,如果你使用的下载版本,需要先解压,然后选择硬盘目录。见附录
确认安装的版本
输入Oracle的安装组、管理组和用户名(默认即可)
输入Oracle安装用户的密码和用户主目录
设置Oracle的环境变量,特别留意SID值(非常重要)
为方便Apache连接到Oracle,为Apache添加连接
点击确认,正式开始安装
3、正式开始安装
因为Oracle的安装程序对中文支持不好,我们建议使用英文的安装方式进行:
选择存放安装程序的路径
输入安装或升级Oracle使用的用户组(参考上面建立的信息,留空则则只能使用root更新)
下面会提示你切换到另一个窗口下,使用root权限运行一个脚本,然后再切换到当前窗口下继续
# /tmp/orainstRoot.sh
Creating Oracle Inventory pointer file (/etc/oraInst.loc)
Changing groupname of /opt/oracle/oraInventory to oinstall.
输入来源路径和安装路径
增加需要支持的语言,点击Product Languages
增加简体中文和繁体中文,确认后,继续安装
选择安装Oracle 9i DataBase 9.2.0.4
选择安装企业版
选择安装为通用数据库
输入初始数据库名称和SID名称
引用
初始SID可以使用环境文件里面已经配置过的
# env|grep -i SID
ORACLE_SID=orcl
# env|grep -i SID
ORACLE_SID=orcl
输入存放数据库的地方
引用
使用我们在准备安装使用建立的共享分区/oradata
选择默认字符集
重新检查一次是否有缺漏,没有问题的话,按“Install”安装
拷贝数据
拷贝完文件后,还需要使用root管理员运行一个脚本
# /opt/oracle/product/9.2.0/root.sh
Running Oracle9 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/oracle/product/9.2.0
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Running Oracle9 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/oracle/product/9.2.0
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
建立数据库
给数据库管理员设置密码
由于9204的程序有点问题,监测到Agent服务的时候会出错
引用
可以通过一个p3238244_9204_LINUX.zip补丁,可以解决问题,见后
暂时忽略错误后,即安装完毕,退出安装界面
4、安装补丁
从上面的安装过程可以看到,Agent服务的启动是有问题的,所以我们必须为他增加一个p3238244_9204_LINUX.zip的补丁。
首先,我们需要先安装一个补丁的安装工具
#su - oracle
$ cp /home/oracle/p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin
$ cp /home/oracle/p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin
停止Oracle服务
安装p3238244_9204_LINUX.zip补丁
$ cp /home/oracle/p3238244_9204_LINUX.zip /tmp
$ unzip p3238244_9204_LINUX.zip
$ cd 3238244
$ opatch apply
$ unzip p3238244_9204_LINUX.zip
$ cd 3238244
$ opatch apply
补丁修复完成,需要relinked一个.mk文件。
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install
$ make -f ins_oemagent.mk install
到此,整个Oracle 9i 9204数据库已经安装完毕
5、测试
下面我们为数据库进行必要的简单测试
◎测试数据库启动和关闭
引用
# su - oracle
[oracle@db01 oracle]$ sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on 星期日 11月 27 19:21:02 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL>
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
[oracle@db01 oracle]$ sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on 星期日 11月 27 19:21:02 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL>
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
成功!
◎测试lsnrctl服务启动和关闭
引用
[oracle@db01 oracle]$ lsnrctl start
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 27-11月-2005 19:24:28
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
启动/opt/oracle/product/9.2.0/bin/tnslsnr:请稍候...
TNSLSNR for Linux: Version 9.2.0.4.0 - Production
系统参数文件为/opt/oracle/product/9.2.0/network/admin/listener.ora
写入/opt/oracle/product/9.2.0/network/log/listener.log的日志信息
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db01)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for Linux: Version 9.2.0.4.0 - Production
启动日期 27-11月-2005 19:24:28
正常运行时间 0 天 0 小时 0 分 0 秒
跟踪级别 off
安全性 OFF
SNMP OFF
监听器参数文件 /opt/oracle/product/9.2.0/network/admin/listener.ora
监听器日志文件 /opt/oracle/product/9.2.0/network/log/listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db01)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "test" 包含 1 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
[oracle@db01 oracle]$ lsnrctl stop
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 27-11月-2005 19:25:00
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
命令执行成功
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 27-11月-2005 19:24:28
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
启动/opt/oracle/product/9.2.0/bin/tnslsnr:请稍候...
TNSLSNR for Linux: Version 9.2.0.4.0 - Production
系统参数文件为/opt/oracle/product/9.2.0/network/admin/listener.ora
写入/opt/oracle/product/9.2.0/network/log/listener.log的日志信息
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db01)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for Linux: Version 9.2.0.4.0 - Production
启动日期 27-11月-2005 19:24:28
正常运行时间 0 天 0 小时 0 分 0 秒
跟踪级别 off
安全性 OFF
SNMP OFF
监听器参数文件 /opt/oracle/product/9.2.0/network/admin/listener.ora
监听器日志文件 /opt/oracle/product/9.2.0/network/log/listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db01)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "test" 包含 1 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
[oracle@db01 oracle]$ lsnrctl stop
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 27-11月-2005 19:25:00
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
命令执行成功
成功!
◎测试Agent服务的启动和关闭
引用
[oracle@db01 oracle]$ agentctl start
DBSNMP for Linux: Version 9.2.0.4.0 - Production on 27-11月-2005 19:26:03
Copyright (c) 2003 Oracle Corporation. All rights reserved.
正在启动 Oracle Intelligent Agent....
代理已启动
[oracle@db01 oracle]$ agentctl stop
DBSNMP for Linux: Version 9.2.0.4.0 - Production on 27-11月-2005 19:26:39
Copyright (c) 2003 Oracle Corporation. All rights reserved.
关闭代理
DBSNMP for Linux: Version 9.2.0.4.0 - Production on 27-11月-2005 19:26:03
Copyright (c) 2003 Oracle Corporation. All rights reserved.
正在启动 Oracle Intelligent Agent....
代理已启动
[oracle@db01 oracle]$ agentctl stop
DBSNMP for Linux: Version 9.2.0.4.0 - Production on 27-11月-2005 19:26:39
Copyright (c) 2003 Oracle Corporation. All rights reserved.
关闭代理
成功!
◎Apache服务的启动和关闭
引用
启动:
cd $ORACLE_HOME/Apache/Apache/bin
$ ./startJServ.sh
$/opt/Oracle/product/9.0.1/Apache/Apache/bin/apachectl start: httpd started
访问http://192.168.228.81:7777/
出现Oracle Web Server的话,表明是正常的。
关闭:
$cd $ORACLE_HOME/Apache/Apache/bin
$./stopJServ.sh
$/opt/Oracle/product/9.0.2/Apache/Apache/bin/apachectl stop: httpd stopped
cd $ORACLE_HOME/Apache/Apache/bin
$ ./startJServ.sh
$/opt/Oracle/product/9.0.1/Apache/Apache/bin/apachectl start: httpd started
访问http://192.168.228.81:7777/
出现Oracle Web Server的话,表明是正常的。
关闭:
$cd $ORACLE_HOME/Apache/Apache/bin
$./stopJServ.sh
$/opt/Oracle/product/9.0.2/Apache/Apache/bin/apachectl stop: httpd stopped
成功!
到此,安装和测试都完成,Oracle 9i的安装也结束了。
6、附录
◎安装程序显示的都是“方格□”
这是由于Oracle的安装程序对中文支持不好,我们使用英文的安装方式即可,在安装前运行
#su - oracle
$export LANGUAGE=en_US
$export LANG=en_US
$export LANGUAGE=en_US
$export LANG=en_US
◎如果在使用oranavi工具安装中出现问题,下次该如何继续?
千万不要多次使用oranavi工具引导Oracle的安装程序,这样会导致Oracle用户下的环境配置混乱,正确的方法是:
#su - oracle
$export LANGUAGE=en_US
$export LANG=en_US
$/mnt/cdrom/runInstall &
$export LANGUAGE=en_US
$export LANG=en_US
$/mnt/cdrom/runInstall &
也就是直接切换到Oracle用户,直接运行安装程序即可。
◎安装完毕后,不能启动数据库
Oracle用户的环境变量中ORACLE_SID是否正确,和需要启动的数据库实例是否一致?
引用
[oracle@db01 oracle]$ env|grep -i sid
ORACLE_SID=orcl
ORACLE_SID=orcl
◎如何使用dbstart和dbshut直接启动和关闭数据库
这个我们需要修改/etc/oratab文件,默认是不能使用dbstart和dbshut控制数据库的,但在很多时候,特别是HA控制脚本里面,我们经常会修改它
[oracle@db01 oracle]$ sed -i -e "/$ORACLE_SID/{ s/:N/:Y/ }" /etc/oratab
◎我使用的是下载的文件,都是cpio文件,该如何安装
通常从Oracle网站下载回来的都是:ship_9204_linux_disk1.cpio.gz、ship_9204_linux_disk2.cpio.gz、ship_9204_linux_disk3.cpio.gz
我们可以使用
zcat ship_9204_linux_disk1.cpio.gz|cpio -idmv
zcat ship_9204_linux_disk2.cpio.gz|cpio -idmv
zcat ship_9204_linux_disk3.cpio.gz|cpio -idmv
zcat ship_9204_linux_disk2.cpio.gz|cpio -idmv
zcat ship_9204_linux_disk3.cpio.gz|cpio -idmv
生成三个文件夹Disk1,Disk2,Disk3,进入安装即可。
当然,我们也可以把他们刻录为光盘
mkisofs -r Disk1 | cdrecord -v --eject dev=0,0,0 speed=15 -
mkisofs -r Disk2 | cdrecord -v --eject dev=0,0,0 speed=15 -
mkisofs -r Disk3 | cdrecord -v --eject dev=0,0,0 speed=15 -
mkisofs -r Disk2 | cdrecord -v --eject dev=0,0,0 speed=15 -
mkisofs -r Disk3 | cdrecord -v --eject dev=0,0,0 speed=15 -
这样就和用光盘安装一样了。
7、错误
Thrown when the IP address of a host cannot be determined.
出现这样的错误,一般有两个原因:一是网卡没有使用固定IP的方式,而使用了DHCP获得;二是在双网卡的环境下,两个网卡配置了同样的网段。
解决的方法:一、给网卡配置一个固定的IP;二、给两个网卡配置不同的IP段,如一个是192.168网段,另一个是10网段,并在/etc/hosts文件中增加ip和机器名的对应,然后重新运行安装程序。
不能启动lsnrctl service
出现这样的错误,通常是由于您使用的Oracle版本太低,需要再安装后增加一个p3119415_9204_LINUX.zip补丁
$ su - oracle
$ cp p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin
$ unzip p3119415_9204_LINUX.zip
$ cd 3119415
$ opatch apply
$ cp p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin
$ unzip p3119415_9204_LINUX.zip
$ cd 3119415
$ opatch apply
安装完补丁就可以了。