DB2升级

–升级服务器
1.升级实例(db2iupgrade)
2.升级数据库目录(第一次访问数据库目录的时候,会的隐式的升级。list db directory 或 upgrade database会的隐式的访问数据库目录)
3.数据库升级(upgrade database)

–补丁查看trace
使用./installFixPack -b /opt/IBM/db2/V9.7/ -t /tmp/db2upd.trc查看日志

–语言包
如果要跟新语言包,那么需要单独下载(哪怕是通用的fixpack里也没有语言包)。下载后解压然后放在fixpack的server目录下即可。然后安装fixpack的方法和普通的一样,语言包会的被自动安装的。

–打补丁(普通单点架构)
0.用root用户登录
1.解压修订包,注意路径不能有空格
2.备份当前配置****************
3.在AIX上,使用tcbck检查TCB处于一致状态(前提是使用了TCB)
4.确保有足够的空间,在Linux和UNIX上,需要有和现有DB2安装目录大小相同的空间,这个空间只在安装时使用
5.确定下有几个实例(db2ilist)
6.对每个实例,运行如下命令:
su – XXX
db2 force applications all
db2 terminate
db2stop force
db2licd -end
exit
7.如果有DAS,则停止DAS
su – XXX
db2admin stop
exit
8.(可选)在AIX上运行/usr/sbin/slibclean从内存中卸载未使用的共享库
9.禁用故障监视器进程(对每个实例都要执行一次)
DB2DIR/bin/db2fm -i INSTANCENAMEXXX -D
10.如果启动了故障监视器协调程序,那么需要确定是否有实例被配置为系统每次重新启动之后就自动启动。
通过DB2DIR/bin/db2fmcu查看FMC是否启动,如果启动了,则输出类似于FMC:up:PID=XXX,如果没启动,则为FMC:down

如果启动了FMC,需要确定一下是否有实例被配置为在系统每次重启后自动启动(对每个实例都运行一次看看):
DB2DIR/instance/db2iset -i INSTANCENAME -all
如果输出有DB2AUTOSTART=YES,那么要阻止这些实例先(对每个自动启动的都要做):
DB2DIR/instance/db2iauto -off INSTANCENAME

再安装完修订包后,可以重启:
DB2DIR/instance/db2iauto -on INSTANCENAME

11.清理IPC资源(切换到实例用户,执行完后退出)
~/sqllib/bin/ipclean
12.安装修订包,在修订包的解压目录运行:
./installFixPack -b DB2DIR 如./installFixPack -b /opt/ibm/db2/V9.7/
然后用DB2DIR/install/db2ls -a -q -b DB2DIR看下组件的版本。切换到各个实例下用db2level看下实例版本。
13.在安装完成后,一般如果报错,请执行下面的命令:
13.1如果安装了InfoSphere Federation Server,请查看相关文档
13.2更新实例:
可以用db2level查看一下实例版本,一般不会有问题,会正常更新。如果没有更新,需要执行下面命令:
db2ilist查看那一下有哪些实例。
如果对db2profile或db2cshrc脚本进行了额外的修改,需要备份一下,因为db2iupdt会的覆盖这个文件。
对每个实例运行:
DB2DIR/instance/db2iupdt INSTANCENAME
如果安装了DAS,运行:
DB2DIR/instance/dasupdt
13.3可选:如果希望数据库系统目录对象支持新的修订包中的新功能,可以运行:
db2updv97 -d DATABASENAME
13.4重启实例和DAS
db2start
db2admin start
13.4如果之前禁用了实例自动启动,现在可以还原了:
DB2DIR/instance/db2iauto -on INSTANCENAME
13.5对每个数据库,执行一次下面的命令(path可能为/home/db2inst1/sqllib/bnd/):
db2 terminate
db2 connect to DBNAME
db2 bind path/db2schema.bnd BLOCKING ALL GRANT PUBLIC SQLERROR CONTINUE
db2 bind path/@db2ubind.lst BLOCKING ALL GRANT PUBLIC ACTION ADD
db2 bind path/@db2cli.lst BLOCKING ALL GRANT PUBLIC ACTION ADD
db2 terminate
13.6重新编译应用程序

14.如果有问题,可以卸载修订包。方法是前往老版本的修订包文件,执行:
./installFixPack -f level -b DB2DIR

–HADR中打补丁(下面的数据库名字为HADR)
1.确保处于peer状态
2.先deactivate备用数据库:
db2 deactivate db hadr
3.在备用数据库上执行升级,步骤见“普通单点架构”。但是绑定数据包那一步不做。
4.在备用数据库上启动hadr,角色为standby。可以不用start hadrXXX的命令,直接用activate:
db2 activate db hadr
5.在备用数据库上执行 db2 takeover hadr on db hadr,把hadr切到备用数据库上来。这个时候原来主库的hadr会的自动停止,因为其版本低于现在的主库。
6.升级现在的新备库(原来的主库),方法见“普通单点架构”。但是绑定数据包那一步不做。
升级完后,在备机(原来的主库)上db2 start hadr on db hadr as standby
注意:这个时候先不要再次更换主库、备库的角色。先把下面几步做了(如果有需要的话):
7.如果启用了“备机读”,那么:
按照以下步骤在备用数据库上启用 HADR 的“在备用数据库上读取”功能:
在备用数据库上将 DB2_HADR_ROS 注册表变量设置为 ON。
使用 DEACTIVATE DATABASE 命令关闭备用数据库。
重新启动备用数据库上的实例。
使用 ACTIVATE DATABASE 命令重新启动备用数据库。
使用 GET SNAPSHOT 命令来检查备用数据库是否进入对等状态。

另外,内部 DB2 程序包的绑定在首次连接时出现,并且只能在主数据库上成功完成。
8.切换回原来的主库、备库角色。
db2 takeover hadr on db hadr

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*