AIX HACMP Oracle 双机集群实施步骤 | 周末送免费资料
一、实现目标
1、阵列硬盘分为两组分别实现 RAID5,并分别归属于两台小型机作为datavg
2、两台小型机分别运行两个不同的数据库服务,数据存放在datavg上,两机实现双机互备
3、当有任一台小机故障时,另一台小机将自动接管故障机的数据库应用,以保证服务的持续高可用性
4、双机热备切换描述:现有A、B二台机器。A机同时安装有Weblogic和Oracle,B机同时安装有Oracle和Weblogic。A机是Weblogic主机、B机是Oracle主机、A机是Oracle从机、B是weblogic从机。正常情况下是A主机和B主机提供服务。当A主机出现故障,Weblogic服务从A主机切换到B从机,与B主机一起提供服务。当A主机故障解除后,Weblogic服务从B从机切换到A主机,由A主机和B主机提供服务。当B主机出现故障,Oracle服务从B主机切换到A从机,与A主机一起提供服务。当B主机故障解除后,Oracle服务从A从机切换到B主机,由A主机和B主机提供服务。
二、硬件配置:
三、项目实施:
1、硬件连接
2、操作系统及配置
2.1、安装 HACMP 所需扩展软件包,列表如下:
bos.adt.libm
bos.adt..syscalls
bos.clvm.enh
bos.data
rsct.basic.hacmp
rsct.basic.rte
rsct.basic.sp
rsct.compat.basic.hacmp
rsct.compat.basic.rte
rsct.compat.basic.sp
rsct.compat.clients.hacmp
rsct.compat.clients.hacmp
rsct.compat.clients.rte
rsct.compat.clients.sp
2.2、安装 oracle 所需扩展软件包,列表如下:(可以和上面的包一起装)
bos.cifs_fs.rte
bos.adt.prof
# smit install
2.3、串口心跳
2.3.1、串口心跳测试(使用串口线传输心跳信号)
B802# lsdev -C | greptty
tty0Avaliable 01-S1-00-00 Asynchronous Terminal
B801# stty< /dev/tty0 B801 机等待从 TTY0 输入信息
B802# stty> /dev/tty0 B802 机向 TTY0 输入信息
B802# stty< /dev/tty0 上述过程反向测试
B801# stty> /dev/tty0
2.4、网络地址配置:
B801 服务器:
en0:192.168.100.101/24 boot IP
en0:192.168.99.101/24 standby IP
B801# smittcpip
B801# hostname B801
B802 服务器:
en0:192.168.100.102/24 boot IP
en0:192.168.99.102/24 standby IP
B802# smittcpip
B802# hostname B802
2.5、datavg配置(可仅在主机上进行,完成后 import 到备机即可)
B801# smitssaraid查看阵列中物理盘的属性
-> List SSA physical disk
-> List HotSpare/Candidate/system disk
B801# smitssaraid
-> Change use of an SSA phydical disk
B801# smitssaraid选择 raid 成员创建两个 Array(hdisk)
-> Add an SSA Array
B801# lspv列出生成的两个物理卷pv(hdisk)
B801# smit vg 建 datavg801 和 datavg802,各含一个hdisk,PP大小 64M
B801#lsvg -o 查看两卷组均已varyon.
B801# smitchvg
分别定义两个datavg的 active automatically 属性为 No
关键点:
Volume grouop name 分别设为 datavg801 和 datavg802Activate volume group automatically 设为 no(表示此处不要做(由集群软件控制))
B801#varyoffvg datavg801 在 B801 机上卸载两激活卷组
B801# varyoffvg datavg802 以便备机能将 VG 信息进行importvg
B802#cfgmgr B802 机重认设备
B802#importvg -y datavg801 hdisk? B802 机重认设备
B802#importvg -y datavg802 hdisk? B802 机重认设备
B802# lsvg -o 查看两卷组均已varyon
B802# smitchvg
分别定义两datavg的 active automatically 属性为 no
关键点:
Volume grouop name 分别设为 datavg801 和 datavg802
Activate volume group automatically 设为 no(表示此处不要做(由集群软件控制))
B802# varyoffvg datavg801 将所有卷组在所有机器上varyoff
B802# varyoffvg datavg802 以便交由 HA 软件控制varyonvg/varyoff
2.6、应用系统启动脚本配置
B801# touch /etc/801dbstart 生成 B801 服务器数据库启动脚本
B801# touch /etc/801dbstop 生成 B801 服务器数据库停止脚本
B801# touch /etc/802dbstart 生成 B802 服务器数据库启动脚本
B801# touch /etc/802dbstop 生成 B802 服务器数据库停止脚本
B801# chmod +x /etc/80*
B802# touch /etc/801dbstart
B802# touch /etc/801dbstop
B802# touch /etc/802dbstart
B802# touch /etc/802dbstop
B802# chmod +x /etc/80*
3、HACMP 安装及配置
3.1、安装 HACMP5.3
除HAtivoli/Haview;两类软件包外,安装其他所有 HA 软件包
# smitty install
3.2、双机网络地址配置
B801# vi /etc/hosts(最好三个都不同)
192.168.100.104 B802_service
192.168.100.103 B802_service
192.168.99.102 B802_standby
192.168.99.101 B802_standby
192.168.100.102 B802_boot
192.168.100.101 B802_boot B801
B802# vi /etc/hosts
192.168.100.104 B802_service
192.168.100.103 B802_service
192.168.99.102 B802_standby
192.168.99.101 B802_standby
192.168.100.102 B802_boot
192.168.100.101 B802_boot B802
3.3、双机信任关系配置
B801# vi /.rhosts
B802_service
B801_service
B802_standby
B801_standby
B802_boot
B801_boot
B801# cp /.rhosts /etc/hosts.equiv
B801# cp /.rhosts /usr/es/sbin/cluster/netmon.cf
B802 机同上设置
3.4、HA 服务配置
B801# cat /etc/inittab确定inittab文件末行已加入启动 HA 服务
clcomdES:2:once:startsrc -s clcomdES> /dev/console 2>&1
B801# lssrc -s clcomdES确定 HA 服务当前为 ACTIVE 状态
B801#startsrc -s clcomdES否则以命令启动 HA 服务
B802 机同上设置(后续 HA 配置则可仅在单台主机如B801 上进行)
3.5、cluster 配置
3.5.1、配置 cluster 逻辑名
B801#smit hacmp --Etxtended Configuration--Extended Topology
--configgure an HA cluster --Add a hacmpcluster
配置 cluster 名称
关键点:
Cluster name 自己定
3.5.2、配置 cluster 节点
B801#smit hacmp --Initization --Add node
指定 cluster 名称,并定义NewNode(选择两个 boot 地址)
关键点:
New Nodes 选择 B801_boot 和 B802_boot
B801#smit hacmp--Extended Configuration --Extended Topology
--configure HA node --Add a node to HAcluster
分别定义两个 node name 为两机机器名,及各自的communication Path 为自己的 boot IP
关键点:Node name 设为 B801,对应communication path 为
B801_boot;Node name 设为 B802,则对应communication path 为
B802_boot。
3.5.3、配置 cluster 中网络类型
B801#smit hacmp --Extended Configuration--Extended Topology --configure HA networks --show HA networks
确定系统中已有两种网络类型:net_ether_01(系统自定 IP 网络,其中包含bootIP和standbyIP的网段);net_rs232_01(系统自定串口心跳网络)或 net_hdiskb_01(系统自定磁盘心跳网络),并将 net_ether_01属性 enable IP address takeover via IP aliases 定义为 NO
关键点:
Enable IP address takeover via IP Aliases 设为 NO
B801#smit hacmp --Extended configuration--Extended Topology
--configure HAnetworks --add a network to the HA cluster
若上步中无 net_ether_01 和net_rs232_01 信息,则需手动指定添加两种网络类型:IP 网络类型 ether;rs232 (串口心跳网络)或diskhb(磁盘心跳网络)
关键点:(串口心跳 rs232 和磁盘diskhb只要配其中一个就行了)
a..选择#pre-defined IP-based Network Types 下几行的 ether
b.Enable IP address takeover via IP Aliases 设为 NO
c.选择#pre-defined IP-serial Device Types 下几行的 ers232(串口心跳)
d.选择#pre-definedIP-serial Device Types 下几行的diskhb(磁盘心跳)
3.5.4、配置不同类型网络中的具体接口或设备
B801#smit hacmp --Extended Configuration--Extended Topology
--configure communication --Add--Predefined --Interfaces
关键点:
a.IP Label/Address 设为 B801_boot
Node Name 设为 B801
b.IP Label/Address 设为 B801_standby
Node Name 设为 B801
c.IP Label/Address 设为 B802_boot
Node Name 设为 B801
d.IP Label/Address 设为 B802_standby
Node Name 设为 B801
B801#smit hacmp --Extended Configuration--Extended Topology
--configurecommunication/devices --Add --Predefined --devices(配串口(或者配磁盘心跳))
a.选择net_ether_01;B802 tty0 /dev/tty0
b.选择net_diskhb_01;Device Name 设为 diskhb_B801;Device
Path 设为/dev/hdisk9;Node Name 设为B801;Device Name 设为diskhb_B802;Device Path 设为/dev/hdisk9;Node Name 设为 B802。
3.5.5、配置 HA 应用
B801#smit hacmp --ExtendedConfiguration--Extended
Resources--ResourcesConfiguration --Application--servers—add
app server定义两机各自不同的 APP 名,及各自的服务启停脚本
关键点:
a.Server Name 设为 application_B801;Start Script 设为
/etc/801dbstart;StopScript 设为/etc/801dbstop
b.Server Name 设为 application_B802;Start Script 设为
/etc/802dbstart;StopScript 设为/etc/802dbstop
3.5.6、配置 cluster 服务 IP
B801#smit hacmp--Extended Configuration --Extended Resources
--Resources Configure --IP lables/Addresses--add a service IP
--configurable --net_ethernet_01
定义两机的 IPlables/Addresses 为各自机器的 service IP
关键点:
a.IP Label/Address 设为 B801_service
b.IP Label/Address 设为 B801_service
3.5.7、配置 cluster 资源组
B801#smit hacmp --Extended Configuration--Extended Resources
--Resources Group Configure --Add a resource group
关键点:
a.Resource Group Name 设为 resource_B801;Participating Nodes 设为 B801 B802(注意 801,802 前后顺序)
b.Resource Group Name 设为 resource_B802;Participating Nodes 设为 B802 B801(注意 801,802 前后顺序)
3.5.8、配置 cluster 资源组的资源
B801#smit hacmp --ExtendedConfiguration--Extended Resources
--Resources Group Configure --Changeattributes --resource_B801
分别确定两 Resources Group的 service IP/Address,ApplicationServers和各自所属 VGs
关键点:
a.Service IPLabel/Address 设为 B801_service;Application
Servers 设为 application_B801;Volume Groups 设为 datavg801
b.Service IPLabel/Address 设为 B802_service;Application
Servers 设为 application_B802;Volume Groups 设为 datavg802
3.5.9、同步及校验 cluster
B801#smit hacmp --ExtendedConfiguration--Verification and synchronization
将 HA 配置信息同步到从机如B802 上,并进行校验
关键点:
Automatically correct errors found during 设为 Yes.
3.5.10、启停 HA
B801#smit clstart (now)
B802#smit clstart (now)
两机上同时启动 HA 服务
关键点:
Start now,on system restart or boot 设为 now
B801#lssrc -g cluster
B802#lssrc -g cluster
两机上同时查看 HA 服务是否正常(至少得有clstrmgrES有的有clsmuxpdES)
B801#ifconfig -a
B802#ifconfig -a
两机上同时查看bootIP已切换为serviceIP
B801#lsvg -o
B802#lsvg -o
两机上同时查看datavg已varyon
B801#smit clstop
B802#smit clstop
两机上同时停止 HA 服务
关键点:
Stop now,on system restart or boot 设为 now
Shutdown mode 设为 graceful(停节点但不接管)或 Force(停节点但不释放资源)或 Takeover(停节点,释放资源,且可以接管)
Stop HA 的 3 种模式:
Graceful:停节点,释放资源,活动节点不接管
Force:停节点,不释放资源
Takeover:停节点,释放资源,活动节点接管资源
B801#lssrc -g cluster
B802#lssrc -g cluster
两机上同时查看 HA 服务是否已停
B801#ifconfig -a
B802#ifconfig -a
两机上同时查看serviceIP已切换为bootIP
B801#lsvg -o
B802#lsvg -o
两机上同时查看datavg已varyoff
3.5.11、HA 测试
A.两机clstart(now),可见 datavg801 和 datavg802 已在两机上分别varyon,然后各自拔掉bootIP/service IP 网卡的网线,可见serviceIP切换到本机的standbyIP网卡上,两datavg不受影响
B.接好上一步中拔掉的网线,在 B801 机上clstop(now)并确定参数takeover,则 B801 机的serviceIP会切换回bootIP,且 datavg801 在 B801机上自动varyoff,随后 B802 机的standbyIP网卡自动接管 B801 机的serviceIP,同时 datavg801 在 B802 机上被自动varyon,此时来那个datavg均在 B802 上被varyon
C.在 B801 机上重新clstart(now),则 B801 机会把自己的serviceIP从B802 机上收回, B801 机的bootIP切换为 serviceIP,datavg80 被重新varyon到 B801 上,同时 B802 机的standbyIP网卡恢复standbyIP
D.在 B802 上再进行上述两步测试
上述测试正常,clstop(now)关闭两机的 HA 服务,以便进行后续配置
4、oracle 安装及配置(两台服务器上均需进行)
4.1、oracle 安装环境检查
4.1.1、mem>1G
#lsattr -El mem0
4.1.2、swap>mem*1.2
#lsps -a
4.1.3、/tmp>400M
#df -k(df -m 或df -g 都可)
4.1.4、Hard Disk Space: 4G(安装所需空间)+3G(安装源文件)
#df -k
4.2、AIX 扩展软件包及补丁需求
#lslpp -l bos.adt.lib
#lslpp -l bos.adt.libm
#lslpp -l bos.perf.libbperfstat
#lslpp -l bos.perf.libperfstat
#lslpp -l bos.perf.proctools
#instfix -ik IY58143
#instfix -ik IY59386
#instfix -ik IY60930
#instfix -ik IY66513
#instfix -ik IY70159
#instfix -ik IY68989
4.3、其他参数限制
#smit system--change/show characteristics of OS
关键点:
Maximum numberof PROCESSES allowed per user 设为 2048
#smitaio--change/show characteristics of AIO
关键点:
STATE to beconfigured at system restart 设为avaliable(更改异步 IO(在oracle 中必须打开(AIX6 默认打开))
4.4、增加用户和组
#smit group --add group --oinstall/dba
#smit user --add user --oracle
#passwd oracle
关键点:
User Name 设为 oracle
Primary Group 设为dba,
haguserSoft file size设为-1
soft cputime,soft data segment 设为-1
soft stack size设为-1
soft core file size 设为-1
注:软限(-1 表示没有限制)
4.5、修改环境变量
4.7、以 oracle 用户重新登录并开始安装 oracle
$su - root
#/oracle/Disk1/rootpre/rootpre.sh(完毕后关闭当前窗口)
$cd /oracle/Disk1
$./runInstaller
4.8、建立裸设备并创建实例(可仅在主机上,完成后 import 到备机即可)
B801#varyonvg datavg801
B801#varyonvg datavg802
B801#mklv -y lv_ora1_spfile datavg801 1
B801#mklv -y lv_ora1_ctrl01 datavg801 1
B801#mklv -y lv_ora1_ctrl02 datavg801 1
B801#mklv -y lv_ora1_ctrl03 datavg801 1
B801#mklv -y lv_ora1_redo01 datavg801 1
B801#mklv -y lv_ora1_redo02 datavg801 1
B801#mklv -y lv_ora1_redo03 datavg801 1
B801#mklv -y lv_ora1_system datavg801 10
B801#mklv -y lv_ora1_sysaux datavg801 10
B801#mklv -y lv_ora1_undo01 datavg801 10
B801#mklv -y lv_ora1_temp01datavg801 10
B801#mklv -y lv_ora1_user01 datavg801 20
B801#mklv -y lv_ora2_spfile datavg801 1
B801#mklv -y lv_ora2_ctrl01 datavg801 1
B801#mklv -y lv_ora2_ctrl02 datavg801 1
B801#mklv -y lv_ora2_ctrl03 datavg801 1
B801#mklv -y lv_ora2_redo01 datavg801 1
B801#mklv -y lv_ora2_redo02 datavg801 1
B801#mklv -y lv_ora2_redo03 datavg801 1
B801#mklv -y lv_ora2_system datavg802 10
B801#mklv -y lv_ora2_sysaux datavg802 10
B801#mklv -y lv_ora2_undo01 datavg802 10
B801#mklv -y lv_ora2_temp01 datavg802 10
B801#mklv -y lv_ora2_user01 datavg802 20
B801#hown oracle /dev/*lv*
B801#varyoffvg datavg801
B801#varyoffvg datavg802
B802#importvg -y datavg801 hdisk?
B802#importvg -y datavg802 hdisk?
B802#chown oracle /dev/*lv*
B802#smitty chvg
Datavg801 和 datavg802 在 B802 上经importvg后,属性恢复为默认设置,应重新定义两数据 VG 的 active automativally属性为 NO
关键点:
a.Volume group name 设为 datavg801Active volume group automativally设为 no
b.Volume group name 设为 datavg802Active volume group automativally设为 no
B802#varyoffvg datavg801 在 B802 上卸载 datavg801并在 801 上激活
B801#varyoffvg datavg801 以便后续分别在两机上各自建立不同实例
在 B801/B802 上分别以 oracle 用户身份开始创建实例ora101 和 ora102,
实例 ora101 的所有数据库文件都建立在逻辑卷裸设备 rlv_ora1_xxxxx 上,实
例 ora102 所有数据库文件都建立在逻辑卷裸设备 rlv_ora2_xxxxx 上。
在两机上分别执行 DBCA
关键点
A.Create adatabase
B.generalpurpose
C.globaldatabase name 设为 ora101 或 ora102 SID 设为 ora101 或 ora102
D.configure thedatabase with enterprise manager 不选
E.use the samepasswd for all accounts
F.Raw Devices
G.specify flashrecovery area;选 enable archiving 编辑 editarchive mode parameters 中
archive log file format 中%t_%s_%r.arc 存储位置自己写
H.chracter sets 选择 choosefrom the list of character sets:ZHS16GBKI.connection mode 选 dedicatedserver mode
J.sizing设 serverparameter filename 为/dev/rlv_ora1_spfile(或/dev/rlv_ora2_spfile)
K.controlfile
File Name File Drectory
rlv_ora1_ctrl01 /dev/
rlv_ora1_ctrl02 /dev/
rlv_ora1_ctrl03 /dev/
Datafiles
File Name File Drectory
rlv_ora1_system /dev/
rlv_ora1_undo01 /dev/
rlv_ora1_sysaux /dev/
rlv_ora1_user01 /dev/
rlv_ora1_temp01 /dev/
Redo Log Group
1
File Name File Drectory
rlv_ora1_redo01 /dev/
2
File Name File Drectory
rlv_ora1_redo02 /dev/
3
File Name File Drectory
rlv_ora1_redo03 /dev/
L.createdatabase 选中
4.9、复制本机共享文件到备机
B801$cp $ORACLE_HOME/dbs/initora101.ora
B802:/$ORACLE_HOME/dbs/ 复制 B801 机的initora101.ora 到B802 机的相同路径下。
B802$cd $ORACLE_BASE/admin
B802$mkdir -p ora101/adump
B802$mkdir -p ora101/bdump
B802$mkdir -p ora101/cdump
B802$mkdir -p ora101/udump
B802$mkdir -p ora101/dpdump
B802$mkdir -p ora101/pfile
在 B802 机的$ORACLE_BASE/admin下创建 ora101 实例目录及子目录B802$cp $ORACLE_HOME/dbs/initora102.ora B801:/$ORACLE_HOME/dbs/备机同上操作
B801$cd $ORACLE_BASE/admin
B801$mkdir -p ora102/admin
B801$mkdir -p ora102/adump
B801$mkdir -p ora102/bdump
B801$mkdir -p ora102/cdump
B801$mkdir -p ora102/udump
B801$mkdir -p ora102/dpdump
B801$mkdir -p ora102/pfile
4.10、两机上配置 oracle 监听进程 listener
4.11、两机上配置tnsnames.ora
4.12、修改数据库的ORACLE的SGA和PGA的值
服务器的CPU是8个4.2GHZ CPU,128GB内存,共可使用内存为32G,以平时运行所使用内存为总内存的80%计算内存为25.6G,操作系统预留1G,weblogic服务预留4.6G,oracle服务可使用内存共20G
SQL> show parameter spfile;
SQL> show parameter sga
SQL> show parameter pga
spfile文件一般在windows的$ORACLE_HOME/dbs/目录下
SQL> create pfile from spfile;
刚创建的pfile文件一般在windows的$ORACLE_HOME/database/目录下,init$ORACLE_SID.ora
修改init$ORACLE_SID.ora文件中的*.pga_aggregate_target=7340032(字节:7G*1024*1024)
和*.sga_target= 1690304512(字节13G*1024*1024)的值然后
SQL> create spfile from pfile;
在关闭数据库之前最好备份一些数据库,如果SGA大小配置不当,会遇到各种不能打开数据的问题。
关闭数据库:
SQL>shutdown immediate
启动数据库
SQL>startup
检查sga和pga的值
SQL> show parameter sga
SQL> show parameter pga
修改成功!
4.13、两机上配置启停脚本
4.14、测试 B801 单机双实例是否能正常手工启停
4.15、测试 B802 单机双实例是否能正常手工启停
4.16、启用 HA 接管数据库资源,并再次进行 HA 测试,测试 HA 切换时能否正常接管和启停数据库。
以上资料来自社区会员wangweiww分享,点击阅读原文可下载word版文档
长按二维码关注公众号