一、系统概况
1、硬件情况:
IBM P650一台,Power 4+处理器四颗,4G内存,36G硬盘两块
IBM P630一台,Power 4处理器两颗,2G内存,18G硬盘两块
IBM T40一台,36G×6
其中,P650作为主机,P630作为辅机,服务器上的两块硬盘都做成RAID 1,磁盘阵列T40上的六块硬盘做成RAID 10。
2、软件情况:
*作系统采用IBM AIX 5.1.0 64-bit
双机软件:使用IBM HACMP CASCADE 4.4.0.0双机软件
数据库:Oracle 9.2.0 for IBM AIX EE 64-bit
前台应用软件:海信****软件
3、安装前,*作系统及双机环境已经搭建完毕。
二、安装数据库及HA实现过程
1、安装前准备
在AIX上安装Oracle和其它*作系统上的安装区别不大,步骤简单介绍如下:
I. 检查系统环境
Requirement 检查命令
Memory 不低于512MB $ /usr/sbin/lsattr ?E ?l sys0 ?a realmem
Swap Space 建议为2GB $ /usr/sbin/lsps -a
Disk Space Software 3.5GBSeed Database 1GB
OS Version AIX 5.1 $ oslevel ?r
OS Patch Bos.adt.baseBos.adt.libBos.adt.libmBos.perf.perfstatBos.pert.libperfstat $ lslpp ?l
Java Patch JDK 1.3.1-build 20020316JRE 1.1.8-build 20020313
Language Patch 简体中文 UTF8.zh-cn
Other 具体请参考文档 A96167-01.pdf
II. 配置系统Kernel Parameter
安装Oracle9i AIX不需要额外配置Kernel Parameter。
III. 创建Mount Point
Oracle9i的安装至少需要两个Mount Point:
一个用于Oracle软件,本例中定义为:/opt/oracle
至少一个存放Oracle数据:本例中定义为:/dcdb
IV. 创建相关UNIX用户和组
利用smit工具,创建:
组dba,具有管理员权限,uid和gid都是1001
组oinstall,普通权限,udi和gid都是1002
用户oracle,属于dba和oinstall组,uid为999,用户目录为/opt/oracle
相关设置在P650和P630上的保持一致,并将目录/opt/oracle和/dcdb授权给oracle:
$ chown oracle.dba /opt/oracle
$ chown oracle.dba /dcdb
V. 设定Oracle用户环境变量
编辑Oracle用户的.profile文件,定义如下的环境变量:
ORACLE_BASE = /opt/oracle
ORACLE_HOME = $ORACLE_BASE/product/9.2.0
ORACLE_SID = hidc (P650上) / hidcbak (P630上)
ORACLE_TERM = vt100
DISPLAY = 192.168.10.122:0.0 (P650上)/ 192.168.10.124:0.0 (P630上)
ORACLE_NLS33 = $ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH = $ORACLE_HOME/lib: $ORACLE_HOME/network/lib:
LIBPATH = $ORACLE_HOME/lib
JAVA_HOME = /usr/java130
PATH = $PATH:$ORACLE_HOME/bin:/usr/local/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM
export ORACLE_NLS33 LD_LIBRARY_PATH LIBPATH PATH DISPLAY JAVA_HOME
umask 022
2、安装Oracle软件及建库
I. 放入第一张光盘,并以root用户身份Mount CDROM:
$ mount ?rv cdrfs /dev/cd0 /cdrom
II. 以root身份进入/cdrom目录,执行:
$ sh rootpre.sh
$ xhost +
III. 切换到Oracle用户,运行Oracle安装程序runInstaller:
$ su ? oracle
# sh /cdrom/runInstaller.sh
IV. 依次输入“oinstall”,选择“Oracle 9i Database”,数据库类型选择“custom”,“不创建数据库”。
V. 在安装的最后,以root身份执行/opt/oracle/product/9.2.0/root.sh
VI. 检查各个安装log文件,确认安装成功
VII. 以oracle身份执行dbca,开始建立数据库。(在P650上)
选择“create a database”,选择“New Database”,在“Global Database Name”和“SID”输入“hidc”,在字符集中选择“zhs16gbk”,将所有的控制文件、数据文件、日志文件以及SPFILE文件的存放位置指定到磁盘阵列上。设定各个表空间的大小及其它参数,并选择保存建库脚本和现在建库,建立数据库hidc。
VIII. 重复上述步骤VII,在P630上建立数据库hidcbak。
3、配置双机HA
在这里,我们认为HACMP的双机HA已经成功配置。
I. 在两台机器的/opt/oracle目录下面,建立.rhosts文件,添加如下内容:
192.168.10.192 oracle # p650上
192.168.10.194 oracle # p630上
编辑/etc/hosts.lpd文件,加入一行:
192.168.10.194 # p650上
192.168.10.192 # p630上
编辑/etc/hosts.equiv文件,加入:
192.168.10.192
192.168.10.194
在两台机器上执行:
$ rlogin 192.168.10.192
和
$ rlogin 192.168.10.194
确认rcp和rlogin时不需要口令。
II. 参照如下内容,编辑两台机器上的listener.ora和tnsnames.ora:
LISTENER.ORA文件内容如下:
# LISTENER.ORA Network Configuration File:
# /opt/oracle/product/9.2.0/network/admin/listener.ora
# Generated by Oracle Configuration tools:
LISTENER_MAIN =
( DESCRIPTION_LIST =
(DESCRIPTION =
( ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP ) (HOST = 192.168.10.192 ) (PORT = 1521 )))
( ADDRESS_LIST =
( ADDRESS =
( PROTOCOL = IPC) ( KEY = EXTPROC )))
) )
SID_LIST_LISTENER_MAIN =
( SID_LIST =
( SID_DESC =
( SID_NAME = PLSExtProc ) (ORCLE_HOME = /opt/oracle/product/9.2.0 )
( PROGRAM = extporc ))
( SID_DESC =
( SID_NAME = hidc ) (ORCLE_HOME = /opt/oracle/product/9.2.0 )
) )
LISTENER_BAK =
( DESCRIPTION_LIST =
(DESCRIPTION =
( ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP ) (HOST = 192.168.10.194 ) (PORT = 1522 )))
( ADDRESS_LIST =
( ADDRESS =
( PROTOCOL = IPC) ( KEY = EXTPROC )))
) )
SID_LIST_LISTENER_MAIN =
( SID_LIST =
( SID_DESC =
( SID_NAME = PLSExtProc ) (ORCLE_HOME = /opt/oracle/product/9.2.0 )
( PROGRAM = extporc ))
( SID_DESC =
( SID_NAME = hidcbak ) (ORCLE_HOME = /opt/oracle/product/9.2.0 )
) )
TNSNAMES.ORA文件内容如下:
# TNSNAMES.ORA Network Configuration File:
# /opt/oracle/product/9.2.0/network/admin/tnsnames.ora
# Generated by Oracle Configuration tools:
HIDC =
(DESCRIPTION =
( ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP ) (HOST = 192.168.10.192 ) (PORT = 1521 )))
( CONNECT_DATA = ( SERVICE_NAME = hidc))
)
HIDCBAK =
(DESCRIPTION =
( ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP ) (HOST = 192.168.10.194 ) (PORT = 1522 )))
( CONNECT_DATA = ( SERVICE_NAME = hidcbak))
)
III. Oracle数据的关闭和启动由IBM AIX HACMP的启动和关闭脚本负责,其位置为:
/usr/dbapp/dbstart.sh
和
/usr/dbapp/dbstop.sh
其中,dbstop和dbstart脚本由IBM HACMP提供,分别负责数据库的关闭和启动。在两台机器上,还需要分别手工建立两个脚本dbstartmain.sh / dbstopmain.sh 和 dbstartbak.sh / dbstopbak.sh。各个脚本内容分别如下:
DBSTART.SH:
# Generated by aiko 2003-4-18
# Start Oracle Database on P650: /usr/dbapp/dbstart.sh
#! /bin/sh
su ? oracle ? c start /usr/dbapp/dbstartmain.sh
DBSTOP.SH:
# Generated by aiko 2003-4-18
# Start Oracle Database on P650: /usr/dbapp/dbstop.sh
#! /bin/sh
su ? oracle ? c start /usr/dbapp/dbstopmain.sh
DBSTARTMAIN.SH:
# Generated by aiko 2003-4-18
# Start Oracle Database on P650: /usr/dbapp/dbstartmain.sh
#! /bin/sh
expo