DB2数据库升级方案
准备阶段
安装DB2 V9.7.0.10版本
使用root用户登录服务器,在主备机上安装V10版本数据库
检查系统是否满足特定 DB2 版本的先决条件
# tar -xvf v9.7fp10_aix64_server.tar
# cd /home/cfcinst1/server/server
# ./db2prereqcheck -p -v 9.7.0.10
使用静默安装方式安装数据库(root用户)
# ./db2_install选择默认路径(YES)选择ESE确定安装(YES)
Do you want to install the DB2 pureScale Feature? [yes/no] NO
迁移前验证
以实例用户db2inst1登录执行:(db2ckupgrade 成功后,可以迁移数据库)
$ db2ckupgrade ASDB -e  -l  /tmp/DBMigrations/db2ckmig.log
信息收集:
ASDB:
$ cd  /tmp/DBMigrations/ASDB
$ db2support -d  ASDB -c -s –f
$ cp /etc/services /etc/services.bak
$ cp ./sqllib/db2nodes.cfg ./sqllib/db2nodes_bak.cfg
$ db2 get dbm cfg >  /tmp/DBMigrations/ASDB/db2dbm.cfg
$ db2 get db cfg for ASDB >  /tmp/DBMigrations/ASDB/db.cfg
$ db2set -all >  /tmp/DBMigrations/ASDB/db2set.cfg
$ set | grep DB2 >  /tmp/DBMigrations/ASDB/
$ db2look -d ASDB -a -e -l -x -o  /tmp/DBMigrations/ASDB/db2look.ddl
$ db2 LIST PACKAGES FOR ALL SHOW DETAIL >  /tmp/DBMigrations/
备份数据库实例目录(使用root用户)
db2数据库安装# cp -pr /home/db2inst1/sqllib /home/db2inst1/sqllib_bak
备份数据库
$ db2 backup db ASDB to /db2databkup/ASDBBKUP compress
升级阶段
停止 DB2实例(db2inst1用户)
$ db2 force application all
$ db2 terminate
$ db2stop
迁移实例
通过运行db2iupdt命令来迁移实例(root用户)
# /opt/IBM/db2/V9.7.10/instance/db2iupdt db2inst1
# /opt/IBM/db2/V9.7.10/instance/db2iupdt cfcinst1
安装DB2 V9.7.0.10版本数据库许可证(db2inst1用户)
db2inst1:
$ cd /home/cfcinst1/
$ db2licm -a db2ese_lic
$ db2licm -l
启动数据库并进行数据库迁移(db2inst1用户)
db2inst1:
$ db2start
$ db2 upgrade database ASDB
$ db2 upgrade database inte
数据库中重新绑定程序包(两台机器都需要执行)(db2inst1用户)
重新绑定数据库SCHEMA.BND\UBIND.LST\CLI.LST
db2inst1:
ASDB:
$ db2 terminate
$ db2 connect to ASDB
$ db2 bind ./sqllib/bnd/db2schema.bnd blocking all grant public SQLERROR continue
$ db2 bind ./sqllib/bnd/@db2ubind.lst blocking all grant public action add
$ db2 bind ./sqllib/bnd/@db2cli.lst blocking all grant public action add
$ db2 terminate
在数据库中通过运行 db2rbind 命令来重新绑定所有无效程序包
db2inst1:
$ db2rbind ASDB -l logfile all
数据库验证(db2inst1用户)
对数据库进行增删改查等操作进行验证
$ db2 connect to dbname
$ db2 "create table tbl_name(id int,name varchar(20))"
$ db2 "insert into tbl_name values(1,'ztm')"
$ db2 "select * from tbl_name"
$ db2 "delete from tbl_name"
$ db2 "select * from tbl_name"
$ db2 "drop table tbl_name"
$ db2 "truncate table tbl_name immediate"
$ db2 "load from tbl_name.del of del insert into tbl_name "
$ db2 "select count(*) from tbl_name"
回退方案
删除所有V9.7.0.10版本的数据库(db2inst1用户)
$ db2 force application all
$ db2 drop db ASDB
停止实例(db2inst1用户)
$ db2stop force
删除实例V9.7.0.10(root用户)
# /opt/IBM/db2/V9.7.10/instance/db2idrop db2inst1
创建实例V9.7(root用户)
# /opt/IBM/db2/V9.7/instance/db2icrt -u db2fenc1 db2inst1
恢复数据库
设置注册表参数和实例参数(db2inst1用户)
db2inst1:
$ db2set DB2COMM=TCPIP
$ db2set DB2_SKIPINSERTED=on
$ db2set DB2_EVALUNCOMMITTED=on
$ db2set DB2_FMP_COMM_HEAPSZ=80000
$ db2set DB2_SKIPDELETED=on
$ db2set DB2LOADREC=NORECEVERABLE
$ db2set DB2CODEPAGE=1386
$ db2set DB2FMCOMM=TCPIP4
$ db2set DB2SYSTEM=asdb01
$ db2set DB2INSTEDF=db2inst1
$ db2set DB2ADMINSERVER=dasusr1
$ db2 update dbm cfg using SVCENAME 50000
节点配置文件(root用户)
# vi /home/db2inst1/sqllib/db2nodes.cfg
  0 asdb01 0
启动数据库(db2inst1用户)
db2inst1:
$ db2start
$ db2 restore db ASDB from /db2databkup/ASDBBKUP taken at <Time_Stamp> without prompting"
若需要前滚,执行如下命令(cfcinst1用户)
将所有分区日志都拷贝到同一个目录
$ db2 "rollforward db cfac to end of backup and stop overflow log path(/db2databkup/logbak) "
数据库验证(db2inst1用户)
对数据库进行增删改查等操作进行验证
$ db2 "create table tbl_name(id int,name varchar(20))"
$ db2 "insert into tbl_name values(1,'ztm')"   
$ db2 "select * from tbl_name"
$ db2 "delete from tbl_name"
$ db2 "select * from tbl_name"
$ db2 "drop table tbl_name"
$ db2 "truncate table tbl_name"
$ db2 "load from tbl_name.del of del insert into tbl_name"
$ db2 "select count(*) from tbl_name"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。