anikikong
作者anikikong2018-07-03 10:57
数据库运维工程师, 中国民生银行

实战DB2 purescale集群HADR环境联机升级修订包(下)

字数 56121阅读 2602评论 4赞 5

承接上篇


清单 29. 查看实例级别

$ db2pd -rustatus 
 
ROLLING UPDATE STATUS:  Disk Value                                         Memory Value                                      

   Record Type        = INSTANCE 
   ID                 = 0 
   Code Level         = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     Not Applicable
   Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     Not Applicable
   State              = [NONE] 
   Last updated       = 2013/08/16:16:17:40 
 
 
   Record Type        = MEMBER 
   ID                 = 0 
   Code Level         = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   CECL               = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   CEAL               = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   Section Level      = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   Last updated       = 2013/08/16:16:17:31 
 
siteam1: db2pd -rustatus -localhost ... completed ok
 
   Record Type        = MEMBER 
   ID                 = 1 
   Code Level         = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   CECL               = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   CEAL               = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   Section Level      = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     
   Last updated       = 2013/08/16:17:03:49 
 
siteam2: db2pd -rustatus -localhost ... completed ok

   Record Type        = CF 
   ID                 = 128 
   Code Level         = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     Not Applicable
   Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     Not Applicable
   Last updated       = 2013/08/16:16:17:31 
 
   Record Type        = CF 
   ID                 = 129 
   Code Level         = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     Not Applicable
   Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)     Not Applicable
   Last updated       = 2013/08/16:16:41:00


当前实例的所有级别都运行在10.5.0.0上。首先升级Secondary CF节点:

**清单 30. 更新secondary cf节点**

./installFixPack -p /opt/IBM/db2/V10.5FP1 -I db2sdin1 -online -l /tmp/installFixPack.log -t /tmp/installFixPack.trc

Db2 installation is being initialized.

Db2 pureScale online update evaluation:

Hostname:siteaf2
Instance name:db2sdin1
Target Installation path:/opt/IBM/db2/V10.5FP1
Target Code level = Version:10 Release:5 Modification:0 Fixpack:1
Target Architecture level = Version:10 Release:5 Modification:0 Fixpack:1

TSA version installed on this host : 3.2.2.5
TSA version present on the media : 3.2.2.5
TSA version after update : 3.2.2.5

GPFS version installed on the host: 3.5.0.7
GPFS version present on the media : 3.5.0.7
GPFS version after update : 3.5.0.7

Total number of tasks to be performed: 6
Total estimated time for all tasks to be performed: 1954 second(s)

Task #1 start
Description: Installing Db2 database product binaries
Estimated time 1485 second(s)
Task #1 end

Task #2 start
Description: Stopping the cluster caching facility (CF) on the local host
Estimated time 10 second(s)
Task #2 end

Task #3 start
Description: Stopping the instance on the local host
Estimated time 10 second(s)
Task #3 end

Task #4 start
Description: Updating the Db2 database manager instance configuration
Estimated time 429 second(s)
Task #4 end

Task #5 start
Description: Starting the instance on the local host
Estimated time 10 second(s)
Task #5 end

Task #6 start
Description: Starting the cluster caching facility on the local host
Estimated time 10 second(s)
Task #6 end

The execution completed successfully.

For more information see the Db2 installation log at
"/tmp/installFixPack.log".



Secondary CF在升级过程中被重启,但是并不会影响当前数据库提供服务。成员节点的数据库连接不会被中断。

**清单 31. 查看实例状态**

$ db2instance -list
ID TYPE STATE HOME_HOST CURRENT_HOST ALERT PARTITION_NUMBER LOGICAL_PORT NETNAME


0 MEMBER STARTED siteam1 siteam1 NO 0 0 siteam1-ib0,siteam1-ib1
1 MEMBER STARTED siteam2 siteam2 NO 0 0 siteam2-ib0,siteam2-ib1
128 CF PRIMARY siteaf1 siteaf1 NO - 0 siteaf1-ib0,siteaf1-ib1
129 CF PEER siteaf2 siteaf2 NO - 0 siteaf2-ib0,siteaf2-ib1

HOSTNAME STATE INSTANCE_STOPPED ALERT


siteam2 ACTIVE NO NO
siteaf2 ACTIVE NO NO
siteaf1 ACTIVE NO NO
siteam1 ACTIVE NO NO


HADR在此过程中也一直正常工作。
**清单 32. 查看HADR状态**

$ db2pd -d TESTDB -hadr

Database Member 0 -- Database TESTDB -- Standby -- Up 1 days 00:30:53 -- Date 2013-08-30-16.58.05.994930

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 0
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam1
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 0
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/29/2013 16:27:27.104436 (1377764847)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 12
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000000

LOG_HADR_WAIT_ACCUMULATED(seconds) = 4.862

              LOG_HADR_WAIT_COUNT = 1728763

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000016.LOG, 13923, 1723836850
        STANDBY_LOG_FILE,PAGE,POS = S0000016.LOG, 13923, 1723836850
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000016.LOG, 13923, 1723836850
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/30/2013 16:22:54.000000 (1377850974)
                 STANDBY_LOG_TIME = 08/30/2013 16:22:54.000000 (1377850974)
          STANDBY_REPLAY_LOG_TIME = 08/30/2013 16:22:54.000000 (1377850974)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 1
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam2
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 1
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/29/2013 16:27:26.979070 (1377764846)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 6
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000001

LOG_HADR_WAIT_ACCUMULATED(seconds) = 8.906

              LOG_HADR_WAIT_COUNT = 784697

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000011.LOG, 338, 1122280325
        STANDBY_LOG_FILE,PAGE,POS = S0000011.LOG, 338, 1122280325
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000011.LOG, 338, 1122280325
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
                 STANDBY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
          STANDBY_REPLAY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N

**清单 33. 查看实例级别**

$ db2pd -rustatus

ROLLING UPDATE STATUS: Disk Value Memory Value

Record Type = INSTANCE
ID = 0
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
State = [NONE]
Last updated = 2013/08/16:16:17:40

Record Type = MEMBER
ID = 0
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CECL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CEAL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Section Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Last updated = 2013/08/16:16:17:31

siteam1: db2pd -rustatus -localhost ... completed ok

Record Type = MEMBER
ID = 1
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CECL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CEAL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Section Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Last updated = 2013/08/16:17:03:49

siteam2: db2pd -rustatus -localhost ... completed ok

Record Type = CF
ID = 128
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
Last updated = 2013/08/16:16:17:31

Record Type = CF
ID = 129
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Last updated = 2013/08/30:16:54:25


CF节点129的体系结构级别(Architecture Level)和代码级别(Code Level)都已经升级到了10.5.0.1。下面升级Primary CF节点(这里与升级备集群的顺序稍有差别,是先升级完所有CF之后再升级成员节点)。

**清单 34. 更新Primary CF节点**

ssh siteaf1 /home/DVD/v10.5fp1/server/installFixPack -p /opt/IBM/db2/V10.5FP1 -I db2sdin1 -online -l /tmp/installFixPack.log -t /tmp/installFixPack.trc

Db2 installation is being initialized.

Db2 pureScale online update evaluation:

Hostname:siteaf1
Instance name:db2sdin1
Target Installation path:/opt/IBM/db2/V10.5FP1
Target Code level = Version:10 Release:5 Modification:0 Fixpack:1
Target Architecture level = Version:10 Release:5 Modification:0 Fixpack:1

TSA version installed on this host : 3.2.2.5
TSA version present on the media : 3.2.2.5
TSA version after update : 3.2.2.5

GPFS version installed on the host: 3.5.0.7
GPFS version present on the media : 3.5.0.7
GPFS version after update : 3.5.0.7

Total number of tasks to be performed: 6
Total estimated time for all tasks to be performed: 1954 second(s)

Task #1 start
Description: Installing Db2 database product binaries
Estimated time 1485 second(s)
Task #1 end

Task #2 start
Description: Stopping the cluster caching facility (CF) on the local host
Estimated time 10 second(s)
Task #2 end

Task #3 start
Description: Stopping the instance on the local host
Estimated time 10 second(s)
Task #3 end

Task #4 start
Description: Updating the Db2 database manager instance configuration
Estimated time 429 second(s)
Task #4 end

Task #5 start
Description: Starting the instance on the local host
Estimated time 10 second(s)
Task #5 end

Task #6 start
Description: Starting the cluster caching facility on the local host
Estimated time 10 second(s)
Task #6 end

The execution completed successfully.


与更新备集群的时候一样,更新Primary CF节点会重启该节点实例,所以CF角色会发生转变。
**清单 35. 查看实例状态**

su - db2sdin1 -c "ssh siteam1 '. ~/sqllib/db2profile;db2instance -list'"

ID TYPE STATE HOME_HOST CURRENT_HOST ALERT PARTITION_NUMBER LOGICAL_PORT NETNAME


0 MEMBER STARTED siteam1 siteam1 NO 0 0 siteam1-ib0,siteam1-ib1
1 MEMBER STARTED siteam2 siteam2 NO 0 0 siteam2-ib0,siteam2-ib1
128 CF PEER siteaf1 siteaf1 NO - 0 siteaf1-ib0,siteaf1-ib1
129 CF PRIMARY siteaf2 siteaf2 NO - 0 siteaf2-ib0,siteaf2-ib1

HOSTNAME STATE INSTANCE_STOPPED ALERT


siteam2 ACTIVE NO NO
siteaf2 ACTIVE NO NO
siteaf1 ACTIVE NO NO
siteam1 ACTIVE NO NO


但是这种角色转变是联机的,不会影响数据库服务,同样也不会影响到HADR。

**清单 36. 查看HADR状态**

su - db2sdin1 -c "ssh sitebm1 '. ~/sqllib/db2profile;db2pd -d TESTDB -hadr'"

Database Member 0 -- Database TESTDB -- Standby -- Up 1 days 01:10:04 -- Date 2013-08-30-17.37.16.710497

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 0
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam1
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 0
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/29/2013 16:27:27.104436 (1377764847)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 8
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000000

LOG_HADR_WAIT_ACCUMULATED(seconds) = 4.862

              LOG_HADR_WAIT_COUNT = 1728763

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000016.LOG, 13923, 1723836850
        STANDBY_LOG_FILE,PAGE,POS = S0000016.LOG, 13923, 1723836850
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000016.LOG, 13923, 1723836850
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/30/2013 16:22:54.000000 (1377850974)
                 STANDBY_LOG_TIME = 08/30/2013 16:22:54.000000 (1377850974)
          STANDBY_REPLAY_LOG_TIME = 08/30/2013 16:22:54.000000 (1377850974)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 1
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam2
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 1
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/29/2013 16:27:26.979070 (1377764846)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 0
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000001

LOG_HADR_WAIT_ACCUMULATED(seconds) = 8.906

              LOG_HADR_WAIT_COUNT = 784697

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000011.LOG, 338, 1122280325
        STANDBY_LOG_FILE,PAGE,POS = S0000011.LOG, 338, 1122280325
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000011.LOG, 338, 1122280325
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
                 STANDBY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
          STANDBY_REPLAY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N
上述报告中能看到HADR状态正常。

**清单 37. 查看实例级别**

su - db2sdin1 -c "ssh siteam1 '. ~/sqllib/db2profile;db2pd -rustatus'"

ROLLING UPDATE STATUS: Disk Value Memory Value

Record Type = INSTANCE
ID = 0
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
State = [NONE]
Last updated = 2013/08/16:16:17:40

Record Type = MEMBER
ID = 0
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CECL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CEAL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Section Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Last updated = 2013/08/16:16:17:31

siteam1: db2pd -rustatus -localhost ... completed ok

Record Type = MEMBER
ID = 1
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CECL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CEAL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Section Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Last updated = 2013/08/30:17:48:02

siteam2: db2pd -rustatus -localhost ... completed ok

Record Type = CF
ID = 128
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Last updated = 2013/08/30:17:09:00

Record Type = CF
ID = 129
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Last updated = 2013/08/30:16:54:25


至此在整个主集群里面,两个CF的体系结构级别(Architecture Level)和代码级别(Code Level)都已经升级到了10.5.0.1。下面开始升级主集群的成员服务器。

**清单 38. 更新member 1节点**

./installFixPack -p /opt/IBM/db2/V10.5FP1 -I db2sdin1 -online -l /tmp/installFixPack.log -t /tmp/installFixPack.trc

Db2 installation is being initialized.

Db2 pureScale online update evaluation:

Hostname:siteam2
Instance name:db2sdin1
Target Installation path:/opt/IBM/db2/V10.5FP1
Target Code level = Version:10 Release:5 Modification:0 Fixpack:1
Target Architecture level = Version:10 Release:5 Modification:0 Fixpack:1

TSA version installed on this host : 3.2.2.5
TSA version present on the media : 3.2.2.5
TSA version after update : 3.2.2.5

GPFS version installed on the host: 3.5.0.7
GPFS version present on the media : 3.5.0.7
GPFS version after update : 3.5.0.7

Tasks needed for performing Fixpack update :

1 : Installing Db2 database product binaries
2 : Stopping the Db2 member on the local host
3 : Stopping the instance on the local host
4 : Updating the Db2 database manager instance configuration
5 : Starting the instance on the local host
6 : Starting the Db2 member on the local host

Execution of tasks begin :

TASK #1 :
Installing Db2 database product binaries : Success

TASK #2 :
Stopping the Db2 member on the local host : Success

TASK #3 :
Stopping the instance on the local host : Success

TASK #4 :
Updating the Db2 database manager instance configuration : Success

TASK #5 :
Starting the instance on the local host : Success

TASK #6 :
Starting the Db2 member on the local host : Success

Fri Aug 30 18:06:03 BEIST 2013

在成员节点升级的过程中,实例会被重启。所以当前节点的应用会被断掉。如果客户端启用了工作负载均衡或者客户端偏好设置的功能,那么应用会自动感知到集群其他健康的成员节点,断掉的连接会重新连接到其他成员节点上去。此成员节点的HADR也会收到影响,与此相关的高可用性功能会触发,从而满足HADR的不间断同步。在升级的过程中,查看HADR状态。

**清单 39. 查看更新过程中HADR状态**

su - db2sdin1 -c "ssh sitebm1 '. ~/sqllib/db2profile;db2pd -d TESTDB -hadr'"

Database Member 0 -- Database TESTDB -- Standby -- Up 1 days 01:41:39 -- Date 2013-08-30-18.08.51.380558

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 0
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam1
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 0
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/29/2013 16:27:27.104436 (1377764847)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 7
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000000

LOG_HADR_WAIT_ACCUMULATED(seconds) = 4.862

              LOG_HADR_WAIT_COUNT = 1729053

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000016.LOG, 13972, 1724037938
        STANDBY_LOG_FILE,PAGE,POS = S0000016.LOG, 13972, 1724037938
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000016.LOG, 13972, 1724037938
   STANDBY_RECV_REPLAY_GAP(bytes) = 29
                 PRIMARY_LOG_TIME = 08/30/2013 18:08:13.000000 (1377857293)
                 STANDBY_LOG_TIME = 08/30/2013 18:08:13.000000 (1377857293)
          STANDBY_REPLAY_LOG_TIME = 08/30/2013 18:08:13.000000 (1377857293)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 1
                       HADR_STATE = REMOTE_CATCHUP
                       HADR_FLAGS = ASSISTED_REMOTE_CATCHUP
              PRIMARY_MEMBER_HOST = siteam1
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 0
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/30/2013 17:59:50.558115 (1377856790)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 1
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000000

LOG_HADR_WAIT_ACCUMULATED(seconds) = 0.000

              LOG_HADR_WAIT_COUNT = 0

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000012.LOG, 0, 1222800001
        STANDBY_LOG_FILE,PAGE,POS = S0000012.LOG, 0, 1222800001
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000012.LOG, 0, 1222800001
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
                 STANDBY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
          STANDBY_REPLAY_LOG_TIME = 08/30/2013 14:32:48.000000 (1377844368)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N
从db2pd工具执行结果中可以看到,成员节点0的日志是正常被传送到备集群并同步的。这个节点的HADR状态是PEER。但是成员节点1, 也就是当前被升级的节点,是ASSISTED_REMOTE_CATCHUP状态,简称ARCU。为什么会发生这样的状态呢?这里就要介绍到在pureScale集群下的HADR具备的特殊功能。因为Db2 pureScale集群使用的是GPFS共享文件系统,所有节点的日志都是存放在这个文件系统上的。一旦有节点出现故障,只要GPFS共享文件系统没有故障,其他的健康节点都可以读取到这个出现故障节点所产生的日志,也就能够帮助去恢复日志里面记载的数据,这也就是所谓的成员故障恢复(MCR)。同样的道理,HADR功能也是基于日志传送的,即便当前节点出现故障,其他节点也能够访问到该节点的日志,就可以帮助这个节点传动日志到备集群服务器。所以HADR功能并不会被中断,依旧可以正常运行,只是HADR的状态会变成ARCU状态。在这个状态下,HADR还是可以做普通takeover的。

等到升级完成之后,当前节点实例被重启,HADR能够检测到成员又恢复正常,那么传送日志的任务又会漂移回当前节点,HADR又能够恢复PEER状态。

**清单 40. 查看实例级别**

su - db2sdin1 -c "ssh siteam1 '. ~/sqllib/db2profile;db2pd -rustatus'"

ROLLING UPDATE STATUS: Disk Value Memory Value

Record Type = INSTANCE
ID = 0
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
State = [NONE]
Last updated = 2013/08/16:16:17:40

Record Type = MEMBER
ID = 0
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CECL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
CEAL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Section Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Last updated = 2013/08/16:16:17:31

siteam1: db2pd -rustatus -localhost ... completed ok

Record Type = MEMBER
ID = 1
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CECL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CEAL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Section Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Last updated = 2013/08/30:18:05:28

siteam2: db2pd -rustatus -localhost ... completed ok

Record Type = CF
ID = 128
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Last updated = 2013/08/30:17:09:00

Record Type = CF
ID = 129
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Last updated = 2013/08/30:16:54:25

成员1的CEAL和CECL的值还是10.5.0.0。而磁盘和内存中的体系结构级别(Architecture Level)和代码级别(Code Level)都已经是10.5.0.1。最后升级成员0.

**清单 41. 更新member 0节点**

ssh siteam1 /mnt/DVD/v10.5fp1/server/installFixPack -p /opt/IBM/db2/V10.5FP1 -I db2sdin1 -online -l /tmp/installFixPack.log -t /tmp/installFixPack.trc

Db2 installation is being initialized.

Db2 pureScale online update evaluation:

Hostname:siteam1
Instance name:db2sdin1
Target Installation path:/opt/IBM/db2/V10.5FP1
Target Code level = Version:10 Release:5 Modification:0 Fixpack:1
Target Architecture level = Version:10 Release:5 Modification:0 Fixpack:1

TSA version installed on this host : 3.2.2.5
TSA version present on the media : 3.2.2.5
TSA version after update : 3.2.2.5

GPFS version installed on the host: 3.5.0.7
GPFS version present on the media : 3.5.0.7
GPFS version after update : 3.5.0.7

Total number of tasks to be performed: 6
Total estimated time for all tasks to be performed: 1954 second(s)

Task #1 start
Description: Installing Db2 database product binaries
Estimated time 1485 second(s)
Task #1 end

Task #2 start
Description: Stopping the Db2 member on the local host
Estimated time 10 second(s)
Task #2 end

Task #3 start
Description: Stopping the instance on the local host
Estimated time 10 second(s)
Task #3 end

Task #4 start
Description: Updating the Db2 database manager instance configuration
Estimated time 429 second(s)
Task #4 end

Task #5 start
Description: Starting the instance on the local host
Estimated time 10 second(s)
Task #5 end

Task #6 start
Description: Starting the Db2 member on the local host
Estimated time 10 second(s)
Task #6 end

The execution completed successfully.

For more information see the Db2 installation log at
"/tmp/installFixPack.log".

更新成员0和更新成员1的结果是一样的。更新过程中成员0的HADR状态会变成ARCU的状态,更新完成后又全部恢复正常。
**清单 42. 查看实例状态**

su - db2sdin1 -c "ssh siteam1 '. ~/sqllib/db2profile;db2instance -list'"

ID TYPE STATE HOME_HOST CURRENT_HOST ALERT PARTITION_NUMBER LOGICAL_PORT NETNAME


0 MEMBER STARTED siteam1 siteam1 NO 0 0 siteam1-ib0,siteam1-ib1
1 MEMBER STARTED siteam2 siteam2 NO 0 0 siteam2-ib0,siteam2-ib1
128 CF PEER siteaf1 siteaf1 NO - 0 siteaf1-ib0,siteaf1-ib1
129 CF PRIMARY siteaf2 siteaf2 NO - 0 siteaf2-ib0,siteaf2-ib1

HOSTNAME STATE INSTANCE_STOPPED ALERT


siteam2 ACTIVE NO NO
siteaf2 ACTIVE NO NO
siteaf1 ACTIVE NO NO
siteam1 ACTIVE NO NO

最后查看一下主集群全部升级完成后当前的实例级别。
**清单 43. 查看实例级别**

su - db2sdin1 -c "ssh siteam1 '. ~/sqllib/db2profile;db2pd -rustatus'"

ROLLING UPDATE STATUS: Disk Value Memory Value

Record Type = INSTANCE
ID = 0
Code Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) Not Applicable
State = [NONE]
Last updated = 2013/08/16:16:17:40

Record Type = MEMBER
ID = 0
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CECL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CEAL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Section Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Last updated = 2013/08/30:18:33:55

siteam1: db2pd -rustatus -localhost ... completed ok

Record Type = MEMBER
ID = 1
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CECL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CEAL = V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000) V:10 R:5 M:0 F:0 I:0 SB:0 (0x0A05000000000000)
Section Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Last updated = 2013/08/30:18:05:28

siteam2: db2pd -rustatus -localhost ... completed ok

Record Type = CF
ID = 128
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Last updated = 2013/08/30:17:09:00

Record Type = CF
ID = 129
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Last updated = 2013/08/30:16:54:25

至此HADR主集群的所有节点都已经升级完,只是还没有落实下来。在落实之前,可以先检查一下修订包是否可落实。
**清单 44. 检查可升级状态**

/mnt/DVD/v10.5fp1/server/installFixPack -check_commit -p /opt/IBM/db2/V10.5FP1 -I db2sdin1

DBI1446I The installFixPack command is running.

The pre-commit verification process for an online fix pack update has started....
The checks for the pre-commit verification process have been completed successfully.

If you perform a commit, the new level will be =
Version:10 Release:5 Modification:0 Fixpack:1

The execution completed successfully.

For more information see the Db2 installation log at "/tmp/installFixPack.log.12779524".
DBI1070I Program installFixPack completed successfully. .

结果表明主集群也可以被落实到10.5.0.1版本。

## 落实更新备集群
在主备集群的安装路径都升级到10.5.0.1之后,本着向前兼容的原测,先落实备集群的更新。

**清单 45. 落实更新备集群**

./installFixPack -commit_level -p /opt/IBM/db2/V10.5FP1 -I db2sdin1 -l /tmp/installFixPack.log -t /tmp/installFixPack.trc

DBI1446I The installFixPack command is running.

The execution completed successfully.

For more information see the Db2 installation log at "/tmp/installFixPack.log".
DBI1070I Program installFixPack completed successfully.

落实更新是联机完成的。现在查看更新之后的实例界别。

**清单 46. 查看实例级别**

$ db2pd -rustatus

ROLLING UPDATE STATUS: Disk Value Memory Value

Record Type = INSTANCE
ID = 0
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
State = [NONE]
Last updated = 2013/08/29:14:38:31

Record Type = MEMBER
ID = 0
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CECL = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CEAL = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Section Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
State = [NONE]
Last updated = 2013/08/29:11:53:43

sitebm1: db2pd -rustatus -localhost ... completed ok

Record Type = MEMBER
ID = 1
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CECL = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CEAL = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Section Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
State = [NONE]
Last updated = 2013/08/29:11:33:25

sitebm2: db2pd -rustatus -localhost ... completed ok

Record Type = CF
ID = 128
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
State = [NONE]
Last updated = 2013/08/29:14:19:56

Record Type = CF
ID = 129
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
State = [NONE]
Last updated = 2013/08/29:10:59:30

落实更新之后,所有磁盘的,内存中的CECL和CEAL都升级到了10.5.0.1。升级成功。现在查看落实更新对HADR的影响。

**清单 47. 查看HADR状态**

$ db2pd -d TESTDB -hadr

Database Member 0 -- Database TESTDB -- Standby -- Up 0 days 00:38:53 -- Date 2013-08-29-14.39.15.576815

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 0
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam1
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 0
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/29/2013 14:38:33.766309 (1377758313)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 11
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000000

LOG_HADR_WAIT_ACCUMULATED(seconds) = 4.856

              LOG_HADR_WAIT_COUNT = 1722686

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000016.LOG, 10763, 1710957966
        STANDBY_LOG_FILE,PAGE,POS = S0000016.LOG, 10763, 1710957966
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000016.LOG, 10763, 1710957966
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/29/2013 14:35:30.000000 (1377758130)
                 STANDBY_LOG_TIME = 08/29/2013 14:35:30.000000 (1377758130)
          STANDBY_REPLAY_LOG_TIME = 08/29/2013 14:35:30.000000 (1377758130)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 1
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam2
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 1
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/29/2013 14:38:33.805129 (1377758313)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 13
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000010

LOG_HADR_WAIT_ACCUMULATED(seconds) = 8.904

              LOG_HADR_WAIT_COUNT = 783810

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000010.LOG, 24189, 1117595246
        STANDBY_LOG_FILE,PAGE,POS = S0000010.LOG, 24189, 1117595246
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000010.LOG, 24189, 1117595246
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/26/2013 14:03:22.000000 (1377497002)
                 STANDBY_LOG_TIME = 08/26/2013 14:03:22.000000 (1377497002)
          STANDBY_REPLAY_LOG_TIME = 08/26/2013 14:03:22.000000 (1377497002)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N
HADR功能在此过程中,没有收到影响。Db2 V10.5修订包1的HADR功能也能完美兼容Db2 V10.5 GA版本的日志。这是预期的效果。因为落实更新所需的时间比较短,所以即便是出现不兼容的情况,HADR同步受影响的时间也会比较短。所以这是为什么要在这个阶段落实更新。

最后查看一下备集群的数据库级别。

**清单 48. 检查db2level**

$ db2level
Db21085I This instance or install (instance name, where applicable:
"db2sdin1") uses "64" bits and Db2 code release "SQL10051" with level
identifier "0602010E".
Informational tokens are "Db2 v10.5.0.1", "s130816", "IP23519", and Fix Pack
"1".
Product is installed at "/opt/IBM/db2/V10.5FP1".

产品的安装路径已经指向了新位置"/opt/IBM/db2/V10.5FP1"。实例的级别也是升级到了"Db2 v10.5.0.1"版本。

## 落实更新主集群
备集群的更新已经落实。最后落实主集群的更新,整套HADR环境就算是全部升级完成。

**清单 49. 落实更新主集群**

/mnt/DVD/v10.5fp1/server/installFixPack -commit_level -p /opt/IBM/db2/V10.5FP1 -I db2sdin1 -l /tmp/installFixPack.log -t /tmp/installFixPack.trc

DBI1446I The installFixPack command is running.

The execution completed successfully.

For more information see the Db2 installation log at "/tmp/installFixPack.log".
DBI1070I Program installFixPack completed successfully.

主集群的更新落实也是联机的。在此过程中,数据库服务没有中断。

**清单 50. 查看实例状态**

$ db2instance -list
ID TYPE STATE HOME_HOST CURRENT_HOST ALERT PARTITION_NUMBER LOGICAL_PORT NETNAME


0 MEMBER STARTED siteam1 siteam1 NO 0 0 siteam1-ib0,siteam1-ib1
1 MEMBER STARTED siteam2 siteam2 NO 0 0 siteam2-ib0,siteam2-ib1
128 CF PEER siteaf1 siteaf1 NO - 0 siteaf1-ib0,siteaf1-ib1
129 CF PRIMARY siteaf2 siteaf2 NO - 0 siteaf2-ib0,siteaf2-ib1

HOSTNAME STATE INSTANCE_STOPPED ALERT


siteam2 ACTIVE NO NO
siteaf2 ACTIVE NO NO
siteaf1 ACTIVE NO NO
siteam1 ACTIVE NO NO

HADR状态也没有受到影响。
**清单 51. 查看HADR状态**

su - db2sdin1 -c "ssh sitebm1 '. ~/sqllib/db2profile;db2pd -d TESTDB -hadr'"

Database Member 0 -- Database TESTDB -- Standby -- Up 1 days 02:25:03 -- Date 2013-08-30-18.52.15.179098

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 0
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam1
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 0
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/30/2013 18:49:22.251759 (1377859762)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 9
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000000

LOG_HADR_WAIT_ACCUMULATED(seconds) = 0.000

              LOG_HADR_WAIT_COUNT = 0

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000017.LOG, 0, 1768984001
        STANDBY_LOG_FILE,PAGE,POS = S0000017.LOG, 0, 1768984001
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000017.LOG, 0, 1768984001
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/30/2013 18:08:13.000000 (1377857293)
                 STANDBY_LOG_TIME = 08/30/2013 18:08:13.000000 (1377857293)
          STANDBY_REPLAY_LOG_TIME = 08/30/2013 18:08:13.000000 (1377857293)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N

                        HADR_ROLE = STANDBY
                      REPLAY_TYPE = PHYSICAL
                    HADR_SYNCMODE = ASYNC
                       STANDBY_ID = 0
                    LOG_STREAM_ID = 1
                       HADR_STATE = PEER
                       HADR_FLAGS = 
              PRIMARY_MEMBER_HOST = siteam2
                 PRIMARY_INSTANCE = db2sdin1
                   PRIMARY_MEMBER = 1
              STANDBY_MEMBER_HOST = sitebm1
                 STANDBY_INSTANCE = db2sdin1
                   STANDBY_MEMBER = 0
              HADR_CONNECT_STATUS = CONNECTED
         HADR_CONNECT_STATUS_TIME = 08/30/2013 18:26:52.921479 (1377858412)
      HEARTBEAT_INTERVAL(seconds) = 15
            HADR_TIMEOUT(seconds) = 60
    TIME_SINCE_LAST_RECV(seconds) = 1
         PEER_WAIT_LIMIT(seconds) = 1
       LOG_HADR_WAIT_CUR(seconds) = 0.000
LOG_HADR_WAIT_RECENT_AVG(seconds) = 0.000015

LOG_HADR_WAIT_ACCUMULATED(seconds) = 0.001

              LOG_HADR_WAIT_COUNT = 74

SOCK_SEND_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352
SOCK_RECV_BUF_REQUESTED,ACTUAL(bytes) = 1048576, 1048352

        PRIMARY_LOG_FILE,PAGE,POS = S0000012.LOG, 9, 1222838197
        STANDBY_LOG_FILE,PAGE,POS = S0000012.LOG, 9, 1222838197
              HADR_LOG_GAP(bytes) = 0
 STANDBY_REPLAY_LOG_FILE,PAGE,POS = S0000012.LOG, 9, 1222838197
   STANDBY_RECV_REPLAY_GAP(bytes) = 0
                 PRIMARY_LOG_TIME = 08/30/2013 18:42:02.000000 (1377859322)
                 STANDBY_LOG_TIME = 08/30/2013 18:42:02.000000 (1377859322)
          STANDBY_REPLAY_LOG_TIME = 08/30/2013 18:42:02.000000 (1377859322)
     STANDBY_RECV_BUF_SIZE(pages) = 512
         STANDBY_RECV_BUF_PERCENT = 0
       STANDBY_SPOOL_LIMIT(pages) = 1000000
            STANDBY_SPOOL_PERCENT = 0
             PEER_WINDOW(seconds) = 0
         READS_ON_STANDBY_ENABLED = N

使用db2pd工具验证一下当前落实的更新。

**清单 52. 查看实例级别**

$ su - db2sdin1 -c "ssh siteam1 '. ~/sqllib/db2profile;db2pd -rustatus'"

ROLLING UPDATE STATUS: Disk Value Memory Value

Record Type = INSTANCE
ID = 0
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
State = [NONE]
Last updated = 2013/08/30:18:51:32

Record Type = MEMBER
ID = 0
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CECL = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CEAL = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Section Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
State = [NONE]
Last updated = 2013/08/30:18:47:20

siteam1: db2pd -rustatus -localhost ... completed ok

Record Type = MEMBER
ID = 1
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CECL = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
CEAL = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
Section Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000)
State = [NONE]
Last updated = 2013/08/30:18:05:28

siteam2: db2pd -rustatus -localhost ... completed ok

Record Type = CF
ID = 128
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
State = [NONE]
Last updated = 2013/08/30:17:09:00

Record Type = CF
ID = 129
Code Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
Architecture Level = V:10 R:5 M:0 F:1 I:0 SB:0 (0x0A05000100000000) Not Applicable
State = [NONE]
Last updated = 2013/08/30:16:54:25

集群所有节点的体系结构级别(Architecture Level),代码级别(Code Level),当前有效体系结构级别(CEAL)和当前有效代码级别(CECL)都是“V:10 R:5 M:0 F:1 I:0”,也就是10.5.0.1。最后查看一下当前的db2level输出。

**清单 53. 检查db2level**

su - db2sdin1 -c "ssh siteam1 '. ~/sqllib/db2profile;db2level'"

Db21085I This instance or install (instance name, where applicable:
"db2sdin1") uses "64" bits and Db2 code release "SQL10051" with level
identifier "0602010E".
Informational tokens are "Db2 v10.5.0.1", "s130816", "IP23519", and Fix Pack
"1".
Product is installed at "/opt/IBM/db2/V10.5FP1".

主集群的产品的安装路径已经指向了新位置"/opt/IBM/db2/V10.5FP1"。实例的级别也是升级到了"Db2 v10.5.0.1"版本。

至此,整套Db2 pureScale集群HADR环境就完成了修订包的更新。

# 升级后续工作
实例升级完成后,原先停止的数据库需要重新上线。Db2补丁包的升级可能会对数据库内的对象有改变,所以数据库也需要进行更新。下面这些操作只需要在主集群做就可以。备集群数据库会同步这些改变。
## 升级数据库
Db2提供了db2updv105这样的工具。

**清单 54. 升级数据库**

$ db2updv105 -d TESTDB

_

                                                                          
                _____   Db2 Service Tools   _____                         
                                                                          
                        I      B      M                                   
                                                                          
                           db2updv105                                      
                                                                          

This tool is a service utility designed to update a Db2 Version 10.5
database to the current fix pack level.

_

Db2 Universal Database Version 10.5, 5622-044 (c) Copyright IBM Corp. 2012
Licensed Material - Program Property of IBM
IBM DATABASE 2 Database update to current fix pack tool

db2updv105 completed successfully for database 'TESTDB'.


如果有多个数据库,每个数据库都需要升级。

## 重新绑定
对于每一个数据库,都需要在更新完成后重新绑定绑定文件。命令如下所示:

**清单 55. 绑定文件**

db2 terminate
db2 CONNECT TO TESTDB
db2 BIND /home/db2sdin1/sqllib/bnd/db2schema.bnd BLOCKING ALL GRANT PUBLIC SQLERROR CONTINUE
db2 BIND /home/db2sdin1/sqllib/bnd/@db2ubind.lst BLOCKING ALL GRANT PUBLIC ACTION ADD
db2 BIND /home/db2sdin1/sqllib/bnd/@db2cli.lst BLOCKING ALL GRANT PUBLIC ACTION ADD
db2 terminate

对于每个数据库,也可以重新绑定程序包。
**清单 56. 绑定包**

$ db2rbind TESTDB -l sx1bind.log all

Rebind done successfully for database 'TESTDB'.

最后先前与数据库相关的一些停止的工作需要重新进行。例如定时任务,监控系统等。如果需要,可以升级Db2的客户端或者JDBC驱动等到最新版本。但是这些操作不一定是联机的,可以安排相应的时间窗口。
# 结束语
本文介绍了如何在Db2 pureScale集群HADR环境下更新修订包。实际验证了整个更新过程中对数据库服务和HADR功能的影响。实践证明联机升级Db2的修订包是安全方便的,能够满足用户对数据库高可用性的要求。因为环境比较复杂,在Db2 pureScale集群HADR环境最好遵循相应的步骤,最小化升级风险。
# 参考资源 (resources)
学习
•    [IBM Db2 10.5 Information Center for Linux, UNIX and Windows](https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.kc.doc/welcome.html "IBM Db2 10.5 Information Center for Linux, UNIX and Windows"):获得 Db2 家族产品和特性的描述。
•    参考“[IBM Db2 database and SAP software](https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.kc.doc/welcome.html "IBM Db2 database and SAP software")”,了解更多Db2和SAP的相关内容。
•    通过访问 developerWorks 中国 Information Management 专区 的 Db2 purScale 专题获得关于[Db2 pureScale](https://www.ibm.com/developerworks/cn/data/purescale/ "Db2 pureScale")集群更多的文章、教程和多媒体课件等学习资源。
•    通过访问 developerWorks 中国 Information Management 专区 的 从 Oracle 迁移到 Db2获得关于“[从Oracel迁移到Db2](https://www.ibm.com/developerworks/cn/data/migration/ "从Oracel迁移到Db2")”更多的文章、教程和多媒体课件等学习资源。
•    [IBM Db2 培训和认证](https://www.ibm.com/developerworks/cn/data/migration/ "IBM Db2 培训和认证"):找到获奖的教员、业界领先的软件、动手实验室等。
•    [Db2 for Linux, UNIX, and Windows](https://www.ibm.com/developerworks/cn/data/migration/ "Db2 for Linux, UNIX, and Windows") 最佳实践: 获得Db2应用的最佳实践等文章。












如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论4 条评论

jim2024jim2024DBA, 一二三四
3天前
我看信息中心里,在无论online还是offline(simplified)方法结束后,在post-installation task中,均要求执行db2iupdt -d instance 及 db2iupdt -commit_level instancename。 查了installfixpack -commit_level 和 db2iupdt -commit_level 发现意义相同,因此很疑问db2iupdt是否有必要性,看孔老师也没有执行db2iupdt,所以想确认一下是否必要,谢谢
db2xiaobaidb2xiaobai数据库管理员, ibm
2019-09-03 17:08
哈喽,我在安装purescale双活集群时,安装db2软件报GPFS安装失败,这个有碰见过么? 主机版本是Redhat linux 6.7,db2版本是10.5
atpeace331atpeace331数据库管理员, 银行
2018-08-21 13:19
DB2 同城双活的领军人物,拜读,多谢多谢
icycastleicycastle数据库管理员, 某证券公司
2018-07-03 15:05
写的好详细,正好也有类似场景需要升级,要细细拜读。
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广