admin 管理员组

文章数量: 1184232


2024年4月15日发(作者:sql数据库修复资料)

1.HACMP配置

Hosts文件主机,备机/etc/hosts如下:

主机:10.60.3.1(BootIP)

备机:10.60.3.2(BootIP)

/usr/es/sbin/cluster/etc/rhosts文件如下:

1.1配置HACMP脚本

在配置HACMP的过程中设定了两个资源组,分别为appa和appb,其中appa的

脚本为:

Start Script:/usr/es/sbin/cluster/script/

Stop Script: /usr/es/sbin/cluster/script/

资源组appb的脚本如下:

Start Script:/usr/es/sbin/cluster/script/

Stop Script:/usr/es/sbin/cluster/script/

1.2配置HACMP监控

在HACMP的监控中设定了两个监控事件分别为mona,monb,其中mona的脚本为:

/usr/es/sbin/cluster/script/

Cleanup Method为:/usr/es/sbin/cluster/script/

Restart Method为:/usr/es/sbin/cluster/script/

其中时间间隔以及稳定时间建议值如图所示:

monb的脚本为:

/usr/es/sbin/cluster/script/

其中时间间隔以及稳定时间建议值如图所示:

2.HADR配置

2.1HADR准备工作

1. 安装DB2,更新补丁,版本和主服务器一致

2. 创建相同的实例erpdbprd,服务端口:50000

/usr/opt/db2_08_01/instance/db2icrt -a server -w 64 -p db2c_erpdbprd -u

erpfusr erpdbprd

3. 更新DBM参数:db2 update dbm cfg using TP_MON_NAME CICS

4. 设置DB2的环境变量

db2set DB2_PINNED_BP=YES

db2set AUTOSTART=NO

db2set DB2_HASH_JOIN=ON

db2set DB2COUNTRY=86

db2set DB2COMM=TCPIP

db2set DB2CODEPAGE=1386

db2set DB2AUTOSTART=NO

db2set DB2_SKIPINSERTED=ON

db2set DB2_EVALUNCOMMITTED=ON

db2set DB2_HADR_BUF_SIZE= N*LOGBUFSZ (N>2)

5. 恢复DB2数据库,并处于Rollforward Pending状态

db2 restore db dberp from /dberpbackup to /dberp

db2 rollforward db erpdb to end of logs

通过db2 get db cfg for dberp|grep -i rollforward查看数据库状态,结果是

database(rollforward pending)

2.2HADR配置工作

1. 在erpdb_prd和erpdb_stb上配置HADR服务和侦听端口

用vi编辑/etc/services文件(需要切换到root用户),加入下面两行:

DB2_HADR_1 55001/tcp

DB2_HADR_2 55001/tcp

2. 在ERPDB_PRD上修改主数据库(ERPDB_PRD - DBERP)的配置参数:

UPDATE DB CFG FOR DBERP USING LOGINDEXBUILD ON

UPDATE DB CFG FOR DBERP USING INDEXREC RESTART

UPDATE DB CFG FOR DBERP USING HADR_LOCAL_HOST erpdb_prd

UPDATE DB CFG FOR DBERP USING HADR_LOCAL_SVC DB2_HADR_1

UPDATE DB CFG FOR DBERP USING HADR_REMOTE_HOST erpdb_stb

UPDATE DB CFG FOR DBERP USING HADR_REMOTE_SVC DB2_HADR_2

UPDATE DB CFG FOR DBERP USING HADR_REMOTE_INST erpdbprd

UPDATE DB CFG FOR DBERP USING HADR_SYNCMODE NEARSYNC

UPDATE DB CFG FOR DBERP USING HADR_TIMEOUT 25

3. 在erpdb_stb上修改备用数据库(erpdb_stb - DBERP)的配置参数:

UPDATE DB CFG FOR DBERP USING LOGINDEXBUILD ON

UPDATE DB CFG FOR DBERP USING INDEXREC RESTART

UPDATE DB CFG FOR DBERP USING HADR_LOCAL_HOST erpdb_stb

UPDATE DB CFG FOR DBERP USING HADR_LOCAL_SVC DB2_HADR_2

UPDATE DB CFG FOR DBERP USING HADR_REMOTE_HOST erpdb_prd

UPDATE DB CFG FOR DBERP USING HADR_REMOTE_SVC DB2_HADR_1

UPDATE DB CFG FOR DBERP USING HADR_REMOTE_INST erpdbprd

UPDATE DB CFG FOR DBERP USING HADR_SYNCMODE NEARSYNC

UPDATE DB CFG FOR DBERP USING HADR_TIMEOUT 25

2.3HADR启动

1. 停止应用

2. 启动备机HADR

#su – erpdbadm

$db2start

$db2 start hadr on db dberp as standby

3. 检查HADR是否是standby状态

$db2pd –hadr –db dberp

4. 启动主机HADR

$db2start

$db2 start hadr on db dberp as primary

5. 检查HADR是否是peer状态,建议在peer状态后才可以启动HACMP

$db2pd –hadr –db dberp

6. 启动备机HACMP

在erpdb_stb机器上,执行# smitty clstart

7. 启动主机HACMP

在erpdb_prd机器上,执行# smitty clstart

检查主机HACMP的状态,看serviceIP是否已经工作

2.4 HADR停止

在停止DB2 HADR之前,需要保证Hadr Primary运行在主机之上,同时Hadr

Standby运行在备机之上。如下图:

Hadr Primary运行在主机之上:

Hadr Standby运行在备机之上:

然后,在主机和备机之上分别运行smitty clstop的命令:

命令成功完成后,检查双机的状态:

则表示HACMP正常停止,并且HADR仍在工作,然后在Hadr Standby和Primary

上分别输入:

db2 deactivate db dberp

db2 stop hadr on db dberp

3.Hadr滚动升级过程

3.1DB2滚动升级(备份服务器erpdb_stb软件升级)

1. 升级erpdb_stb上的DB2,安装DB2的FIXPACK

#su – erpdbadm

$db2 deactivate db dberp

$db2 stop hadr on db dberp

$db2 force applications all

$db2 terminate

$db2 stop

$db2licd -end

$exit

#su – dasusr1

$db2admin stop

$exit

#/usr/opt/db2_08_01/bin/db2fmcu –d

#/usr/opt/db2_08_01/bin/db2fm –D –i dausr1

#/usr/sbin/slibclean

#cd /mnt/db2ptf

#./installFixPak –a -y

#/usr/opt/db2_08_01/instance/dasupdt dasusr1

#/usr/opt/db2_08_01/instance/db2iupdt erpdbadm

#su – erpdbadm

$db2start

$db2 START HADR ON DATABASE DBERP AS STANDBY

$db2pd –hadr –db dberp

检查数据库的HADR能够同步数据,处于Peer的状态。

3.2HADR切换过程(备份服务器接管主服务器)

停止应用

在进行HADR的切换之前必须要满足两个条件:

1. 主机和备机的Hadr必须处于Peer的状态,并且PrimaryFile和StandByFile

相同

2. 主机和备机的HACMP状态处于可工作状态(lssrc –g cluster)

以上两个条件缺一不可。

主机上停止hacmp:smitty clstop(takeover),通过HACMP的takeover接管,将

DB2服务切换到HADR备机,主机HADR服务停止

在备机察看serviceIP是否已经工作,如图,ServiceIP已经切换至备机

察看备机Hadr的状态为Primary disconnected

3.3主服务器DB2升级

1. 升级erpdb_prd的DB2,安装DB2的FIXPACK

#su – erpdbadm

$db2 force applications all

$db2 terminate

$db2 stop

$db2licd -end

$exit

#su – dasusr1

$db2admin stop

$exit

#/usr/opt/db2_08_01/bin/db2fmcu –d

#/usr/opt/db2_08_01/bin/db2fm –D –i dasur1

#/usr/sbin/slibclean

#cd /mnt/db2ptf

#./installFixPak –a -y

#/usr/opt/db2_08_01/instance/dasupdt dasusr1

#/usr/opt/db2_08_01/instance/db2iupdt erpdbadm

#su – erpdbadm

$db2start

$db2 ACTIVATE DATABASE DBERP

$db2 START HADR ON DATABASE DBERP AS STANDBY

$db2pd –hadr –db dberp,HADR处于Peer状态。

3.4主服务器启动HACMP

在erpdb_prd机器上,执行# smitty clstart

3.5切换回主服务器进行正常的生产(可选)

在进行HADR的切换之前必须要满足两个条件:

1. 主机和备机的Hadr必须处于Peer的状态,并且PrimaryFile和StandByFile

相同

2. 主机和备机的HACMP状态处于可工作状态(lssrc –g cluster)

以上两个条件缺一不可。

在备份服务器发出:smitty clstop的命令,如下,选择Takeover的选项。

在主服务器检查serviceIP是否已经正常工作:

在主机上,检查Hadr的状态:Primary Peer

4.故障发生后的恢复方法

在故障发生后,需要进行Hadr的恢复工作,故障大致可以分为以下几类应用:

1. 主机系统故障

2. 主机应用故障

3. 备机系统故障

4. 备机应用故障

在以上4类的故障中,Hadr会通过故障切换来保证应用的正常生产。我们需要做的

工作不外乎以下的几个步骤:

1. 恢复现有的服务器能够正常工作。

2. 从现有的正常生产的系统进行online的备份,然后将备份在恢复后的服务器上

进行数据库的restore。

3. 启动restore后的数据库至hadr standby状态,察看主备机的Hadr状态是否

peer。

4. 检查现有的系统的Hacmp是否已经正常工作,否则,正常启动HACMP。

5. 仿照正常的滚动升级的步骤,进行Hadr的切换(如果有需要的话)。

5. 附录:HADR在HACMP中的脚本

#!/bin/ksh

route add 0 10.60.2.254

set -x

LOGFILE=/tmp/

banner appastart

echo "---start at time `date`---" >>${LOGFILE}

echo "`banner appastart`" >>${LOGFILE}

hostname=`hostname`

echo "---Start `hostname` begin at `date`---" >>${LOGFILE}

if [[ $hostname = "erpdb_prd" ]]

then

#Check if instance is started on 10.60.4.1, if not then start it

echo "Check if instance is started on 10.60.4.1, if not then start

it" >>${LOGFILE}

instancestatus=`su - erpdbadm -c db2gcf -s|grep -i state |awk '{print $4}'`

if [[ $instancestatus = "Available" ]]

then

echo "--------db2 is started------ " >>${LOGFILE}

else

su - erpdbadm -c db2start

echo "---------db2start at time `date`-------" >>${LOGFILE}

if [ $? -ne 0 ]

then

echo "Start db2 instance failure " >>${LOGFILE}

exit 0

fi

fi

#check if standby is alive

echo "check if standby is alive" >>${LOGFILE}

ping -c 1 10.60.4.2 > /dev/null

if [ $? -eq 0 ]

then

#10.60.4.2 is alive

echo "#10.60.4.2 is alive" >>${LOGFILE}

instancestatus=`rsh 10.60.4.2 su - erpdbadm -c db2gcf -s|grep -i state |awk

'{print $4}'`

if [[ $instancestatus = "Available" ]]

then

checkStandby=`rsh 10.60.4.2 ps -ef|grep db2hadrs|grep DBERP|wc -l`

if [ $checkStandby -eq 1 ]

then

# Standby is started, then start primary on 10.60.4.1

echo "scenario (3):Standby is started, then start primary on

10.60.4.1" >>${LOGFILE}

su - erpdbadm -c "db2 start hadr on database dberp as primary"

su - erpdbadm -c "db2 activate database dberp"

su - erpdbadm -c "db2 connect to dberp"

su - erpdbadm -c "db2 bind /usr/opt/db2_08_01/bnd/@

blocking all grant public"

su - erpdbadm -c "db2 bind /usr/opt/db2_08_01/bnd/@

blocking all grant public"

su - erpdbadm -c "db2 bind /usr/opt/db2_08_01/bnd/

blocking all grant public"

su - erpdbadm -c "db2rbind dberp -l all"

su - erpdbadm -c "db2 connect reset"

#Start CICS

#restart cics region

echo "----CICS start ... at time `date` ------" >>${LOGFILE}

sleep 5

/usr/es/sbin/cluster/script/

fi

#If 10.60.4.2 is primary , then takeover it

echo "#If 10.60.4.2 is primary , then takeover it" >>${LOGFILE}

checkStandby=`rsh 10.60.4.2 ps -ef|grep db2hadrp|grep DBERP|wc -l`

if [ $checkStandby -eq 1 ]

then

# Standby is started, then start primary on 10.60.4.1

echo "scenario (4): Standby is not started, then start standby on

10.60.4.1" >>${LOGFILE}

su - erpdbadm -c "db2 start hadr on database dberp as standby"

# wait for peer status

while :

do

hadrStatus=`su - erpdbadm -c db2pd -db dberp -hadr|grep Peer|awk '{print

$2}'`

echo $hadrStatus >> /tmp/

if [[ $hadrStatus = "Peer" ]]

then

break

fi

sleep 5

done

echo "scenario (4): Standby is started, then takeover it on

10.60.4.1" >>${LOGFILE}

su - erpdbadm -c "db2 takeover hadr on database dberp "

su - erpdbadm -c "db2 activate database dberp"

su - erpdbadm -c "db2 connect to dberp"

su - erpdbadm -c "db2 bind /usr/opt/db2_08_01/bnd/@

blocking all grant public"

su - erpdbadm -c "db2 bind /usr/opt/db2_08_01/bnd/@

blocking all grant public"

su - erpdbadm -c "db2 bind /usr/opt/db2_08_01/bnd/

blocking all grant public"

su - erpdbadm -c "db2rbind dberp -l all"

su - erpdbadm -c "db2 connect reset"

#Start CICS

#restart cics region

echo "----CICS start ... at time `date` ------" >>${LOGFILE}

sleep 5

/usr/es/sbin/cluster/script/

fi

#check hadr standby is running on 10.60.4.1,then takeover hadr on 10.60.4.1

echo "#check hadr standby is running on 10.60.4.1,then takeover hadr on

10.60.4.1" >>${LOGFILE}

checkStandby=`ps -ef|grep db2hadrs|grep DBERP|wc -l`

if [ $checkStandby -eq 1 ]

then

# Standby is started on 10.60.4.1, then takeover hadr on 10.60.4.1

echo "scenario (5): Standby is started on 10.60.4.1, then takeover hadr by

force on 10.60.4.1" >>${LOGFILE}

su - erpdbadm -c "db2 takeover hadr on database dberp by force"

su - erpdbadm -c "db2 activate database dberp"

#Start CICS

#restart cics region

echo "----CICS start ... at time `date` ------" >>${LOGFILE}

sleep 5

/usr/es/sbin/cluster/script/

fi

else

#Instance is not started on 10.60.4.2 , so needn't start HADR on 10.60.4.1 or

takeover hadr on 10.60.4.1

echo "Instance is not started on 10.60.4.2, so needn't start HADR on

10.60.4.1 or takeover hadr on 10.60.4.1" >>${LOGFILE}

#check hadr standby is running on 10.60.4.1,then takeover hadr on 10.60.4.1

checkStandby=`ps -ef|grep db2hadrs|grep DBERP|wc -l`

if [ $checkStandby -eq 1 ]

then

# Standby is started on 10.60.4.1, then takeover hadr on 10.60.4.1

echo "scenario (2): Standby is started on 10.60.4.1 , then takeover hadr by

force on 10.60.4.1" >>${LOGFILE}

su - erpdbadm -c "db2 takeover hadr on database dberp by force"

su - erpdbadm -c "db2 activate database dberp"

#Start CICS

#restart cics region

echo "----CICS start ... at time `date` ------" >>${LOGFILE}

sleep 5

/usr/es/sbin/cluster/script/

fi

#end check hadr standby is running on 10.60.4.1

exit 0

fi

else

#10.60.4.2 is not alive, so needn't start HADR on 10.60.4.1 or takeover hadr on

10.60.4.1

echo "10.60.4.2 is not alive, so needn't start HADR on 10.60.4.1 or takeover

hadr on 10.60.4.1" >>${LOGFILE}

#Check hadr standby is running on 10.60.4.1, then takeover hadr on 10.60.4.1

checkStandby=`ps -ef|grep db2hadrs|grep DBERP|wc -l`

if [ $checkStandby -eq 1 ]

then

# Standby is started on 10.60.4.1, then takeover hadr on 10.60.4.1

echo "Scenario (1): Standby is started on 10.60.4.1, then takeover hadr by

force on 10.60.4.1" >>${LOGFILE}

su - erpdbadm -c "db2 takeover hadr on database dberp by force"

su - erpdbadm -c "db2 activate database dberp"

#Start CICS

#restart cics region

echo "----CICS start ... at time `date` ------" >>${LOGFILE}

sleep 5

/usr/es/sbin/cluster/script/

fi

#end check hadr standby is running on 10.60.4.1

exit 0

fi

else

#Hostname is 10.60.4.2

#Check if instance is started on 10.60.4.2, if not then start it

echo "---------run on 10.60.4.2 at time `date`----------" >>${LOGFILE}

echo "Check if instance is started on 10.60.4.2, if not then start it"

instancestatus=`su - erpdbadm -c db2gcf -s|grep -i state |awk '{print $4}'`

if [[ $instancestatus = "Available" ]]

then

echo "----db2 is started----" >>${LOGFILE}

else

su - erpdbadm -c db2start

echo "---------db2start at time `date`-------" >>${LOGFILE}

if [ $? -ne 0 ]

then

echo "Start db2 instance failure " >>${LOGFILE}

exit 0

fi

fi

#If database on 10.60.4.2 is not started as standby, then start it as standby

checkStandby=`ps -ef|grep db2hadrs|grep DBERP|wc -l`

if [ $checkStandby -eq 0 ]

then

su - erpdbadm -c db2 start hadr on database dberp as standby

echo "---------start hadr as standby at time `date`-------" >>${LOGFILE}

fi

#Start 10.60.4.1 on 10.60.4.2

ping -c 1 10.60.4.1 > /dev/null

if [ $? -eq 0 ]

then

rsh 10.60.4.1 su - erpdbadm -c db2gcf -s

instancestatus=`rsh 10.60.4.1 su - erpdbadm -c db2gcf -s|grep -i state |awk

'{print $4}'`

if [[ $instancestatus = "Available" ]]

then

checkStandby=`rsh 10.60.4.1 ps -ef|grep db2hadrp|grep DBERP|wc -l`

if [ $checkStandby -eq 1 ]

then

# primary on 10.60.4.1 is fine, so change standby to primary on 10.60.4.2

echo "scenario (9): primary on 10.60.4.1 is fine, so change standby to

primary on 10.60.4.2" >>${LOGFILE}

su - erpdbadm -c db2 takeover hadr on database dberp

else

echo "scenario (8): primary on 10.60.4.1 is not fine, so takeover by force on

10.60.4.2 by force" >>${LOGFILE}

su - erpdbadm -c db2 takeover hadr on database dberp by force

fi

else

#intance on 10.60.4.1 is not alive, so takeover HADR by force

echo "scenario (7): intance on 10.60.4.1 is not alive, so takeover HADR by

force" >>${LOGFILE}

su - erpdbadm -c db2 takeover hadr on database dberp by force

fi

else

#10.60.4.1 is not alive, so takeover HADR by force

echo "scenario (6): 10.60.4.1 is not alive, so takeover HADR by

force" >>${LOGFILE}

su - erpdbadm -c db2 takeover hadr on database dberp by force

su - erpdbadm -c "db2 activate database dberp"

fi

#Start CICS

#restart cics region

echo "----CICS start ... at time `date` ------" >>${LOGFILE}

sleep 5

/usr/es/sbin/cluster/script/

fi

echo "--- finished on `hostname` at `date`---" >>${LOGFILE}

exit 0

#!/bin/ksh

set -x

banner appastop

LOGFILE=/tmp/

hostname=`hostname`

echo "--- start on `hostname` at `date`---" >>${LOGFILE}

#Stop CICS

#/usr/es/sbin/cluster/script/stopCICS

if [[ $hostname = "erpdb_prd" ]]

then

#check if standby is alive

ping -c 1 10.60.4.2 > /dev/null

if [ $? -eq 0 ]

then

#10.60.4.2 is alive

instancestatus=`rsh 10.60.4.2 su - erpdbadm -c db2gcf -s|grep -i state |awk

'{print $4}'`

if [[ $instancestatus = "Available" ]]

then

checkStandby=`rsh 10.60.4.2 ps -ef|grep db2hadrs|grep DBERP|wc -l`

if [ $checkStandby -eq 1 ]

then

# Standby is started, do nothing on primary

echo "scenario (2): Standby is started, do nothing on

primary" >>${LOGFILE}

exit 0

else

echo "scenario (3): stop db2 at time `date`" >>${LOGFILE}

su - erpdbadm -c db2gcf -k

fi

else

#Instance is not started on 10.60.4.2 , so needn't to consider takeover

echo "scenario (1): stop db2 at time `date`" >>${LOGFILE}

su - erpdbadm -c db2gcf -k

fi

else

#10.60.4.2 is not alive, so needn't to consider takeover

echo "scenario (4): stop db2 at time `date`" >>${LOGFILE}

su - erpdbadm -c db2gcf -k

fi

else

#Stop 10.60.4.1 on 10.60.4.2

#Do nothing on 10.60.4.2

echo "scenario (5): standby is not ok,nothing to do" >>${LOGFILE}

echo ok

#kill db2 process on 10.60.4.2

#su - erpdbadm -c db2gcf -k

fi

echo "--- finished on `hostname` at `date`---" >>${LOGFILE}

echo " " >>${LOGFILE}

exit 0

#!/bin/ksh

route add 0 10.60.2.254

set -x

banner appbstart

LOGFILE=/tmp/

hostname=`hostname`

echo "--- start on `hostname` at `date`---" >>${LOGFILE}

if [[ $hostname = "erpdb_stb" ]]

then

#Check if instance is started on 10.60.4.2, if not then start it

instancestatus=`su - erpdbadm -c db2gcf -s|grep -i state |awk '{print $4}'`

if [[ $instancestatus = "Available" ]]

then

echo "----db2 is started----" >>${LOGFILE}

else

echo "-------start db2 at time `date`----" >>${LOGFILE}

su - erpdbadm -c db2start

if [ $? -ne 0 ]

then

echo "Start db2 instance failure " >>${LOGFILE}

exit 1

fi

fi

echo "-----scenario (1): start hadr as standby at time `date`-----" >>${LOGFILE}

su - erpdbadm -c db2 start hadr on database dberp as standby

else

#Start 10.60.4.2 on 10.60.4.1

echo "-----scenario (2): nothing to do at time `date`-----" >>${LOGFILE}

#Do nothing on 10.60.4.1

exit 0

fi

echo "--- finished on `hostname` at `date`---" >>${LOGFILE}

echo " " >>${LOGFILE}

exit 0

#!/bin/ksh

set -x

banner appbstop

LOGFILE=/tmp/

hostname=`hostname`

echo "--- start on `hostname` at `date`---" >>${LOGFILE}

echo "--- finished on `hostname` at `date`---" >>${LOGFILE}

echo " " >>${LOGFILE}

exit 0

#! /bin/ksh

LOGFILE=/tmp/

echo " run at `date`">>${LOGFILE}

#Check instance status

su - erpdbadm -c db2gcf -s -i erpdbadm

rc=$?

if [ $rc -ne 0 ]

then

echo "DB2 instance error">>${LOGFILE}

exit $rc

fi

#Check database status

su - erpdbadm -c db2 connect to dberp

rc=$?

if [ $rc -ne 0 ]

then

echo "DB2 database error">>${LOGFILE}

exit $rc

fi

su - erpdbadm -c db2 disconnect current

#Check HADR status, write to logfile

echo "HADR status:`su - erpdbadm -c db2pd -db dberp -hadr|grep Peer|awk

'{print $2}'`" >>${LOGFILE}

echo "return code:$rc">>${LOGFILE}

exit $rc

#! /bin/ksh

su - erpdbadm -c db2gcf -s -i erpdbadm

流程图

Appastart

程序开始

判断机器名

是否为

Erpdb_prd

Y

判断db2启

N

启动db2

Y

N

程序结束

判断db2启

动是否成功

Y

判断stb机

是否存活

Y

判断stb数

据库实例是

否启动

Y

判断stb是

否hadrs

(4)

N

Y

(3)

启动成

primary并

且启动应用

程序结束

N

N

App接管

判断prd是

否hadrs

Y

(2)

Takeover

by force并

且启动应用

Sys接管

N

(6)

程序结束N

判断db2启

动是否成功

Y

判断stb是

否hadrs

Y

判断prd是

否存活

Y

判断prd数

据库实例是

否启动

Y

判断prd是

否hadrp

(9)

Y

程序结束Takeover

正常启

动或升

N

程序结束

判断stb是

否hadrp

Y

(4)

启动成

standby并

且等待peer

N

正常启

动或升

Takeover

并且启动应

程序结束

启动应用

N

(7)

N

App接管

N

启动成

hadrs

N

判断db2启

N

启动db2

Y

N

App接管

Takeover

by force

Takeover

by force

Sys接管

判断prd是

否hadrs

Y

(1)

Takeover

by force并

且启动应用

(8)

Takeover

by force

N

判断prd是

否hadrs

Y

(5)

Takeover

by force并

且启动应用

N

App接管

程序结束


本文标签: 状态 切换 备机