暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DB2 purescale如何升级补丁包

ibm软件技术联盟 2015-02-15
476

DB2 pureScale集群是一种兼备高扩展性和高可用性的数据库集群解决方案。这个解决方案整合了包括软硬件在内的多个产品。DB2 pureScale集群采用的是共享存储的集群架构。

图1. DB2 pureScale集群架构


这张图描述了DB2 pureScale的集群架构。DB2 pureScale可以由多个主机(节点)组成,彼此通过IB网络和以太网通信,每个节点都连接到共享存储。集群内部通过自动负载均衡的功能调度各个节点的资源。从客户端来看,DB2 pureScale就是一个数据库环境,不需要关心去连哪个节点以及集群是如何组成。DB2 pureScale集群的关键技术就是借鉴的IBM大型机中成熟的全局锁定和内存管理技术。

在这个集群解决方案里面,软件产品包括管理共享存储的GPFS产品,整合所有资源的TSA产品,DB2产品等。这些组件都包含在整套DB2产品的安装介质里面。DB2 pureScale发布的新的补丁包就可能包含这三大产品的更新。所以在升级DB2 pureScale补丁包的时候尤其要注意检查这些产品是否需要升级,以及如何做到安全升级。

升级补丁包前的准备工作

在升级补丁包之前,需要确认GPFSTSA是否需要升级,还需要完全停止DB2 pureScale数据库集群。在升级的过程中,要保证DB2 pureScale数据库不会被重启。

检查TSA版本

首先来查看新的补丁包中的TSA版本是否高于已安装的版本。查看工具已经包含在新的补丁包中。本案例中补丁包DVD被解压在/home/temp/DB2v9.8/v9.8fp5下面。

清单 1. TSA已安装版本

# /home/temp/DB2v9.8/v9.8fp5/server/db2/aix/tsamp/db2cktsa -v install

3.2.6.2

清单 2. TSA目标版本

# /home/temp/DB2v9.8/v9.8fp5/server/db2/aix/tsamp/db2cktsa -v media

3.2.7.1

在这个案例里面,TSA的目标版本是3.2.7.1,高于已安装版本3.2.6.2,所以需要多TSA集群进行升级。

检查GPFS版本

检查GPFS版本的方式和检查TSA差不多,工具也包含在新的补丁包中。

清单 3. GPFS已安装版本

# /home/temp/DB2v9.8/v9.8fp5/server/db2/aix/gpfs/db2ckgpfs -v install

3.3.0.14

清单 4. GPFS目标版本

# /home/temp/DB2v9.8/v9.8fp5/server/db2/aix/gpfs/db2ckgpfs -v media

3.4.0.13

清单中列举的GPFS已安装版本3.3.0.14是低于目标版本3.4.0.13的,所以也需要升级GPFS集群软件和环境。

停止DB2 pureScale集群环境

DB2pureScale集群环境具有很高的可用性。如果一些节点维护工作,例如给操作系统打补丁等需要停机的维护,整套集群并不需要停止,只需要停止相应节点的集群组件就可以了。等一个节点维护完成,重新加入到集群里,又可以接着维护下一个节点。最终在DB2集群一直存活的情况下完成对所有节点的维护。

但是如果是对DB2集群环境升级,整套集群就会受到影响,所以必须停集群维护。首先断开所有应用连接,然后运行db2stop命令停止数据库。

清单 5. 查看数据库停止状态

$ db2instance -list

ID TYPE STATE HOME_HOST CURRENT_HOST ALERT PARTITION_NUMBER LOGICAL_PORT NETNAME

-- ---- ----- --------- ------------ ----- ---------------- ------------ -------

0 MEMBER STOPPED DEMODBM0 DEMODBM0 NO 0 0 DEMODBM0-ib0

1 MEMBER STOPPED DEMODBM1 DEMODBM1 NO 0 0 DEMODBM1-ib0

128 CF STOPPED DEMODBF0 DEMODBF0 NO - 0 DEMODBF0-ib0,DEMODBF0-ib1

129 CF STOPPED DEMODBF1 DEMODBF1 NO - 0 DEMODBF1-ib0,DEMODBF1-ib1

HOSTNAME STATE INSTANCE_STOPPED ALERT

-------- ----- ---------------- -----

DEMODBF1 ACTIVE NO NO

DEMODBF0 ACTIVE NO NO

DEMODBM1 ACTIVE NO NO

DEMODBM0 ACTIVE NO NO

db2stop完成后,使用db2instance命令查看集群的状态,所有的memberCF的是STOPPED的状态。现在停止故障检查进程,防止实例后续被自动重启。

清单 6. 停止db2fm进程

$ /opt/IBM/db2/V98/bin/db2fm -i db2sdin1 -D

这个命令可以停止db2fm进程。然后我们需要查看故障监控协调器(FMC)是不是启动了。

清单 7. 查看FMC状态

-bash-3.2# /opt/IBM/db2/V98/bin/db2fmcu

FMC: down

在本次的案例中FMC是没有启动的,状态是down。如果FMC是启动的,输出结果会像这样“FMC: up: PID = 3232”。如果FMC是启动的,那么就需要查看有没有实例被配置成了在系统重启后也自动重启。

清单 8. 查看实例配置

-bash-3.2# /opt/IBM/db2/V98/instance/db2iset -i db2sdin1 all

db2set MsgRC=1302, P1='', P2=''

在这个案例里面实例db2sdin1是没有这般配置的。如果有,那么输出会包含“DB2AUTOSTART=YES”。这种情况下就需要配置实例不自动重启。

清单 9. 禁止实例自动重启

/opt/IBM/db2/V98/instance/db2iauto -off db2sdin1

如果这边禁止实例自动重启,在升级完成之后,需要恢复到以前的配置状态,还可以通过这个命令配置实例自动重启。

清单 10. 配置实例自动重启

/opt/IBM/db2/V98/instance/db2iauto -on db2sdin1

在本次案例里面,并没有涉及到配置实例重启。现在数据库已经停止了,但是我们还需要停止每个节点上的实例服务。

清单 11. 停止节点实例服务

$ db2stop instance on DEMODBF1

SQL1064N DB2STOP processing was successful.

$ db2stop instance on DEMODBF0

SQL1064N DB2STOP processing was successful.

$ db2stop instance on DEMODBM1

SQL1064N DB2STOP processing was successful.

$ db2stop instance on DEMODBM0

SQL1064N DB2STOP processing was successful.

停止完后可以再次查看一下集群的状态。

清单 12. 查看节点状态

$ db2cluster -cm -list -host DEMODBM0,DEMODBM1,DEMODBF0,DEMODBF1 -state

HOSTNAME STATE

------------------------ -----------

DEMODBM0 ONLINE

DEMODBM1 ONLINE

DEMODBF0 ONLINE

DEMODBF1 ONLINE

从这个清单可以看到所有的四个节点上面实例状态都是停止的。因为本次升级需要升级TSAGPFS产品,所以需要把TSA集群和GPFS集群都设置为维护状态。

清单 13. 设置TSA集群为维护状态

# /home/db2sdin1/sqllib/bin/db2cluster -cm -enter -maintenance -all

Domain 'db2domain_20120419170249' has entered maintenance mode.

清单 14. 设置GPFS集群为维护状态

# /home/db2sdin1/sqllib/bin/db2cluster -cfs -enter -maintenance -all

The shared file system has sucessfully entered maintenance mode.

现在整套集群就已经完全停止了,下面就可以开始升级。

升级DB2 pureScale集群

升级DB2 pureScale集群产品和DB2其他的版本不太一样。以前我们可以在DB2的安装位置直接升级补丁包就可以。但是升级DB2 pureScale产品需要安装补丁包到一个新的位置,然后将实例迁移到这个位置。

安装DB2补丁包

安装DB2补丁包需要在工具里面指定原DB2安装位置和新安装位置。这个需要在所有节点都运行一次。新安装位置需要一致。注意检查新位置空间是否足够。

清单 15. 安装到新位置

# /home/temp/DB2v9.8/v9.8fp5/server/installFixPack -b /opt/IBM/db2/V9.8 -L -p /opt/IBM/db2/V9.8FP5

DBI1017I installFixPack is updating the DB2 product(s) installed in

location /opt/IBM/db2/V9.8.

DB2 installation is being initialized.

Total number of tasks to be performed: 43

Total estimated time for all tasks to be performed: 3168 second(s)

Task #1 start

Description: Preparing the system

Estimated time 120 second(s)

Task #1 end

Task #2 start

Description: Base Client Support for installation with root privileges

Estimated time 3 second(s)

Task #2 end

Task #3 start

Description: Product Messages - English

Estimated time 12 second(s)

Task #3 end

Task #4 start

Description: Base client support

Estimated time 221 second(s)

Task #4 end

Task #5 start

Description: Java Runtime Support

Estimated time 3 second(s)

Task #5 end

Task #6 start

Description: Java Help (HTML) - English

Estimated time 3 second(s)

Task #6 end

Task #7 start

Description: Base server support for installation with root privileges

Estimated time 7 second(s)

Task #7 end

Task #8 start

Description: Integrated Flash Copy Support

Estimated time 354 second(s)

Task #8 end

Task #9 start

Description: Global Secure ToolKit

Estimated time 38 second(s)

Task #9 end

Task #10 start

Description: Java support

Estimated time 11 second(s)

Task #10 end

Task #11 start

Description: SQL procedures

Estimated time 3 second(s)

Task #11 end

Task #12 start

Description: ICU Utilities

Estimated time 48 second(s)

Task #12 end

Task #13 start

Description: Java Common files

Estimated time 19 second(s)

Task #13 end

Task #14 start

Description: Base server support

Estimated time 416 second(s)

Task #14 end

Task #15 start

Description: IBM Software Development Kit (SDK) for Java(TM)

Estimated time 222 second(s)

Task #15 end

Task #16 start

Description: Connect support

Estimated time 3 second(s)

Task #16 end

Task #17 start

Description: Relational wrappers common

Estimated time 3 second(s)

Task #17 end

Task #18 start

Description: DB2 data source support

Estimated time 12 second(s)

Task #18 end

Task #19 start

Description: DB2 LDAP support

Estimated time 3 second(s)

Task #19 end

Task #20 start

Description: DB2 Instance Setup wizard

Estimated time 8 second(s)

Task #20 end

Task #21 start

Description: Control Server

Estimated time 3 second(s)

Task #21 end

Task #22 start

Description: Spatial Extender client

Estimated time 3 second(s)

Task #22 end

Task #23 start

Description: Communication support - TCP/IP

Estimated time 3 second(s)

Task #23 end

Task #24 start

Description: Base application development tools

Estimated time 42 second(s)

Task #24 end

Task #25 start

Description: ese dsf common

Estimated time 11 second(s)

Task #25 end

Task #26 start

Description: DB2 Update Service

Estimated time 4 second(s)

Task #26 end

Task #27 start

Description: Parallel Extension

Estimated time 3 second(s)

Task #27 end

Task #28 start

Description: EnterpriseDB code

Estimated time 3 second(s)

Task #28 end

Task #29 start

Description: Replication tools

Estimated time 24 second(s)

Task #29 end

Task #30 start

Description: Cluster caching facility

Estimated time 15 second(s)

Task #30 end

Task #31 start

Description: Sample database source

Estimated time 4 second(s)

Task #31 end

Task #32 start

Description: Informix data source support

Estimated time 5 second(s)

Task #32 end

Task #33 start

Description: Product Signature for DB2 Enterprise Server Edition with the pureScale Feature

Estimated time 3 second(s)

Task #33 end

Task #34 start

Description: IBM Tivoli System Automation for Multiplatforms (Tivoli SA MP)

Estimated time 600 second(s)

Task #34 end

Task #35 start

Description: IBM General Parallel File System (GPFS)

Estimated time 600 second(s)

Task #35 end

Task #36 start

Description: Installing or updating DB2 HA scripts for Tivoli SA MP

Estimated time 40 second(s)

Task #36 end

Task #37 start

Description: Installing or updating DB2 Cluster Scripts for GPFS

Estimated time 40 second(s)

Task #37 end

Task #38 start

Description: Adding GPFS license after gpfs version upgrade

Estimated time 30 second(s)

Task #38 end

Task #39 start

Description: Setting DB2 library path

Estimated time 180 second(s)

Task #39 end

Task #40 start

Description: Executing control tasks

Estimated time 20 second(s)

Task #40 end

Task #41 start

Description: Updating global registry

Estimated time 20 second(s)

Task #41 end

Task #42 start

Description: Updating the db2ls link

Estimated time 1 second(s)

Task #42 end

Task #43 start

Description: Registering DB2 licenses

Estimated time 5 second(s)

Task #43 end

The execution completed successfully.

For more information see the DB2 installation log at

"/tmp/installFixPack.log.4391350".

这样DB2新的补丁包就被安装到了“/opt/IBM/db2/V9.8FP5”下面。检查安装日志确定没有问题。在此过程中,GPFSTSA软件包也已经没更新,但是GPFSTSA的集群并没有被更新,就如DB2的实例也还没有完成更新。

升级TSA集群

在升级TSA集群之前,首先撤销TSA集群的维护状态。

清单 16. 撤销并查看TSA集群的维护状态

# /home/db2sdin1/sqllib/bin/db2cluster -cm -exit -maintenance -all

Host 'DEMODBM0' has exited maintenance mode. Domain 'db2domain_20120419170249' has been started.

# /home/db2sdin1/sqllib/bin/db2cluster -CM -VERIFY -MAINTENANCE

Host 'DEMODBM1' is currently not in maintenance mode.

A diagnostic log has been saved to '/tmp/ibm.db2.cluster.TXaxUa'.

查看一下TSA集群的当前版本是什么。

清单 17. 查看TSA集群版本

# lsrpdomain

Name OpState RSCTActiveVersion MixedVersions TSPort GSPort

db2domain_20120419170249 Online 3.1.0.5 Yes 12347 12348

现在的RSCTActiveVersion3.1.0.5,这个还是老的版本。需要使用TSA的命令升级集群。

清单 18. 升级TSA集群domain

# runact -c IBM.PeerDomain CompleteMigration Options=0

Resource Class Action Response for CompleteMigration

# samctrl -m

Ready to Migrate! Are you Sure? [Y|N]:.

Y

运行完成后再次查看TSA的集群版本。

清单 19. 查看升级后集群domain版本

# lsrpdomain

Name OpState RSCTActiveVersion MixedVersions TSPort GSPort

db2domain_20120419170249 Online 3.1.2.2 No 12347 12348

TSA的集群domain已经升级到了3.1.2.2 版本。

升级GPFS集群

如果仔细查看当时安装补丁包的日志,最后一部分就是说明GPFS升级还有后续步骤。使用db2cluster命令更新GPFS集群系统。

清单 20. 升级GPFS集群

# /opt/IBM/db2/V9.8FP5/bin/db2cluster -cfs -commit

The shared file system cluster has been successfully updated to version '3.4.0.13'.

上面所展示的对GPFSTSA集群的升级工作只需要在单个节点做一次就行。

升级实例

先前已经在所有节点安装了补丁包到新的位置,现在需要在每个节点上迁移(升级)实例使用新的位置的DB2介质。

清单 21. 更新实例

# /opt/IBM/db2/V9.8FP5/instance/db2iupdt db2sdin1

DBI1446I The db2iupdt command is running, please wait.

DB2 installation is being initialized.

Total number of tasks to be performed: 7

Total estimated time for all tasks to be performed: 429 second(s)

Task #1 start

Description: Installing or updating DB2 HA scripts for Tivoli SA MP

Estimated time 40 second(s)

Task #1 end

Task #2 start

Description: Installing or updating DB2 Cluster Scripts for GPFS

Estimated time 40 second(s)

Task #2 end

Task #3 start

Description: Setting default global profile registry variables

Estimated time 1 second(s)

Task #3 end

Task #4 start

Description: Register NTP

Estimated time 40 second(s)

Task #4 end

Task #5 start

Description: Initializing instance list

Estimated time 5 second(s)

[YOU HAVE NEW MAIL]

Task #5 end

Task #6 start

Description: Configuring DB2 instances

Estimated time 300 second(s)

[YOU HAVE NEW MAIL]

Task #6 end

Task #7 start

Description: Updating global profile registry

Estimated time 3 second(s)

Task #7 end

The execution completed successfully.

For more information see the DB2 installation log at

"/tmp/db2iupdt.log.43778104".

DBI1070I Program db2iupdt completed successfully.

更新完成后,整套DB2 pureScale集群的升级基本都已经完成了。这个时候需要确认一下在升级的过程中没有损坏整个集群。首先查看一下当前实例状态。

清单 22. 查看实例状态

db2instance -list

ID TYPE STATE HOME_HOST CURRENT_HOST ALERT PARTITION_NUMBER LOGICAL_PORT NETNAME

-- ---- ----- --------- ------------ ----- ---------------- ------------ -------

0 MEMBER STOPPED DEMODBM0 DEMODBM0 NO 0 0 DEMODBM0-ib0

1 MEMBER STOPPED DEMODBM1 DEMODBM1 NO 0 0 DEMODBM1-ib0

128 CF STOPPED DEMODBF0 DEMODBF0 NO - 0 DEMODBF0-ib0,DEMODBF0-ib1

129 CF STOPPED DEMODBF1 DEMODBF1 NO - 0 DEMODBF1-ib0,DEMODBF1-ib1

HOSTNAME STATE INSTANCE_STOPPED ALERT

-------- ----- ---------------- -----

DEMODBF1 ACTIVE NO NO

DEMODBF0 ACTIVE NO NO

DEMODBM1 ACTIVE NO NO

DEMODBM0 ACTIVE NO NO

数据库集群现在是停止的状态。每个节点上的实例服务也是停止的。现在使用db2cluster工具查看集群的资源情况。

清单 23. 检查集群资源

$ db2cluster -verify -resources

Cluster manager resource states for the DB2 instance are consistent.

资源是一致的,这个时候就可以启动DB2 pureScale集群。

清单 24. 启动节点的实例服务

$ db2start instance on DEMODBM0

SQL1063N DB2START processing was successful.

$ db2start instance on DEMODBM1

SQL1063N DB2START processing was successful.

$ db2start instance on DEMODBF0

SQL1063N DB2START processing was successful.

$ db2start instance on DEMODBF1

SQL1063N DB2START processing was successful.

清单 25. 启动数据库集群

$ db2start

07/13/2012 20:01:38 0 0 SQL1063N DB2START processing was successful.

07/13/2012 20:01:40 1 0 SQL1063N DB2START processing was successful.

SQL1063N DB2START processing was successful.

升级后续工作

实例升级完成后,原先停止的数据库需要重新上线。DB2补丁包的升级可能会对数据库内的对象有改变,所以数据库也需要进行更新。

升级数据库

DB2提供了db2updv98这样的工具(在DB2 V97等单击版本里面也提供了类似工具)。

清单 26. 升级数据库

$ db2updv98 -d DEMODB

_________________________________________________________________________

_____ DB2 Service Tools _____

I B M

db2updv98

This tool is a service utility designed to update a DB2 Version 9.8

database to the current fixpak level.

_________________________________________________________________________

DB2 Universal Database Version 9.8, 5622-044 (c) Copyright IBM Corp. 2009

Licensed Material - Program Property of IBM

IBM DATABASE 2 Database update to current fix pack tool

db2updv98 completed successfully for database 'DEMODB'.

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

重新绑定

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

清单 27. 绑定文件

db2 terminate

db2 CONNECT TO DEMODB

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

对于每个数据库,也可以重新绑定程序包。

清单 28. 绑定包

$ db2rbind DEMODB -l sx1bind.log all

Rebind done successfully for database 'DEMODB'.

最后先前与数据库相关的一些停止的工作需要重新进行。例如定时任务,监控系统等。

结束语

本文介绍了如何升级DB2 pureScale的整个集群,在此过程中需要遵循的流程和使用到的工具。升级DB2的补丁包是一种比较低风险的操作,但是注意安全却是最主要的。其实最关键的却不是前面介绍的技术细节,而是做好备份,降低风险!


文章转载自ibm软件技术联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论