查看原文
其他

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.6、创建 oracle 文件系统及处理 oracle 安装文件


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文档(可能需要社区金币)


长按下图二维码关注

也可以直接搜索公众号名称“AIX专家俱乐部”或微信号“AIXChina”关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存