oracle双机热备:AIX5L上Oracle双机的实现疯狂代码:http:/CrazyCoder.cn/DataBase/Article17604.html 、系统概况 1、硬件情况: IBMP650台Power4+处理器4颗4G内存36G硬盘两块 IBMP630台Power4处理器两颗2G内存18G硬盘两块 IBMT40台36G×6 其中P650作为主机P630作为辅机服务器上两块硬盘都做成RAID1磁盘阵列T40上6块硬盘做成RAID10 2、软件Software情况: *作系统采用IBMAIX5.1.064-bit 双机软件Software:使用IBMHACMPCASCADE4.4.0.0双机软件Software 数据库:Oracle9.2.0forIBMAIXEE64-bit 前台应用软件Software:海信****软件Software 3、安装前*作系统及双机环境已经搭建完毕 2、安装数据库及HA实现过程 1、安装前准备 在AIX上安装Oracle和其它*作系统上安装区别不大步骤简单介绍如下: I.检查系统环境 Requirement检查命令 Memory不低于512MB$/usr/sbin/lsattr–E–lsys0–arealmem SwapSpace建议为2GB$/usr/sbin/lsps-a DiskSpaceSoftware3.5GBSeedDatabase1GB OSVersionAIX5.1$oslevel–r OSPatchBos.adt.baseBos.adt.libBos.adt.libmBos.perf.perfstatBos.pert.libperfstat$lslpp–l JavaPatchJDK1.3.1-build20020316JRE1.1.8-build20020313 LanguagePatch简体中文UTF8.zh-cn Other具体请参考文档A96167-01.pdf II.配置系统KernelParameter 安装Oracle9iAIX不需要额外配置KernelParameter III.创建MountPo Oracle9i安装至少需要两个MountPo: 个用于Oracle软件Software本例中定义为:/opt/oracle 至少个存放Oracle数据:本例中定义为:/dcdb IV.创建相关UNIX用户和组 利用smit工具创建: 组dba具有管理员权限uid和gid都是1001 组o普通权限udi和gid都是1002 用户oracle属于dba和o组uid为999用户目录为/opt/oracle 相关设置在P650和P630上保持致并将目录/opt/oracle和/dcdb授权给oracle: $chownoracle.dba/opt/oracle $chownoracle.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 exportORACLE_BASEORACLE_HOMEORACLE_SIDORACLE_TERM exportORACLE_NLS33LD_LIBRARY_PATHLIBPATHPATHDISPLAYJAVA_HOME umask022 2、安装Oracle软件Software及建库 I.放入第张光盘并以root用户身份MountCDROM: $mount–rvcdrfs/dev/cd0/cdrom II.以root身份进入/cdrom目录执行: $shrootpre.sh $xhost+ III.切换到Oracle用户运行Oracle安装runInstaller: $su–oracle #sh/cdrom/runInstaller.sh IV.依次输入“o”选择“Oracle9iDatabase”数据库类型选择“custom”“不创建数据库” V.在安装最后以root身份执行/opt/oracle/product/9.2.0/root.sh VI.检查各个安装log文件确认安装成功 VII.以oracle身份执行dbca开始建立数据库(在P650上) 选择“createadatabase”选择“NewDatabase”在“GlobalDatabaseName”和“SID”输入“hidc”在集中选择“zhs16gbk”将所有控制文件、数据文件、日志文件以及SPFILE文件存放位置指定到磁盘阵列上设定各个表空间大小及其它参数并选择保存建库脚本和现在建库建立数据库hidc VIII.重复上述步骤VII在P630上建立数据库hidcbak 3、配置双机HA 在这里我们认为HACMP双机HA已经成功配置 I.在两台机器/opt/oracle目录下面建立.rhosts文件添加如下内容: 192.168.10.192oracle#p650上 192.168.10.194oracle#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 在两台机器上执行: $rlogin192.168.10.192 和 $rlogin192.168.10.194 确认rcp和rlogin时不需要口令 II.参照如下内容编辑两台机器上listener.ora和tnsnames.ora: LISTENER.ORA文件内容如下: #LISTENER.ORANetworkConfigurationFile: #/opt/oracle/product/9.2.0/network/admin/listener.ora #GeneratedbyOracleConfigurationtools: 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.ORANetworkConfigurationFile: #/opt/oracle/product/9.2.0/network/admin/tnsnames.ora #GeneratedbyOracleConfigurationtools: 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数据关闭和启动由IBMAIXHACMP启动和关闭脚本负责其位置为: /usr/dbapp/dbstart.sh 和 /usr/dbapp/dbstop.sh 其中dbstop和dbstart脚本由IBMHACMP提供分别负责数据库关闭和启动在两台机器上还需要分别手工建立两个脚本dbstart.sh/dbstop.sh和dbstartbak.sh/dbstopbak.sh各个脚本内容分别如下: DBSTART.SH: #Generatedbyaiko2003-4-18 #StartOracleDatabase_disibledevent= /opt/oracle/product/9.2.0/bin/sqlplus/nolog connect/assysdba startup exit EOF lsnrctlstartlistener_ DBSTOPMAIN.SH: #Generatedbyaiko2003-4-18 #StartOracleDatabase_disibledevent= lsnrctlstoplistener_ /opt/oracle/product/9.2.0/bin/sqlplus/nolog connect/assysdba shutdownimmediate EOF DBSTART.SH: #Generatedbyaiko2003-4-18 #StartOracleDatabase_disibledevent= /opt/oracle/product/9.2.0/bin/sqlplus/nolog connect/assysdba startup exit EOF lsnrctlstartlistener_bak DBSTOPBAK.SH: #Generatedbyaiko2003-4-18 #StartOracleDatabase_disi