孔再华
作者孔再华2018-07-03 10:57
数据库运维工程师, 中国民生银行

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

字数 58725阅读 932评论 2赞 3

承接上篇


清单 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节点**
```sql
# ./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:获得 Db2 家族产品和特性的描述。
• 参考“IBM Db2 database and SAP software”,了解更多Db2和SAP的相关内容。
• 通过访问 developerWorks 中国 Information Management 专区 的 Db2 purScale 专题获得关于Db2 pureScale集群更多的文章、教程和多媒体课件等学习资源。
• 通过访问 developerWorks 中国 Information Management 专区 的 从 Oracle 迁移到 Db2获得关于“从Oracel迁移到Db2”更多的文章、教程和多媒体课件等学习资源。
IBM Db2 培训和认证:找到获奖的教员、业界领先的软件、动手实验室等。
Db2 for Linux, UNIX, and Windows 最佳实践: 获得Db2应用的最佳实践等文章。

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

3

添加新评论2 条评论

#atpeace331数据库管理员, 待业
2018-08-21 13:19
DB2 同城双活的领军人物,拜读,多谢多谢
#icycastle数据库管理员, 某证券公司
2018-07-03 15:05
写的好详细,正好也有类似场景需要升级,要细细拜读。
Ctrl+Enter 发表

关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
© 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30