第六部分 DB2关于版本迁移

第六部分DB2关于版本迁移<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

本文测试环境:Windows 32位平台

              DB2 V7  DB2 V8 版本

 

   在实际应用中,我们有时需要在将数据从一个服务器迁移至另外一台服务器。在windows环境下,使用完全脱机备份的文件可在其他的服务器上进行数据库的完全回复,包括表、数据、视图、触发器、存储过程、用户自定义函数等等的用户自定义对象;另外在恢复以后原来的数据库DB级的配置参数将随数据库的恢复迁移到新的服务器上,但是对于DBM级的配置参数需要在服务器上手工调整。

 

1、迁移前准备:

在迁移数据库之前,我们可以获取DB级别和DBM级别的数据库配置参数,首先确定数据库和数据库管理的服务已启动,如果没有启动在打开DB2命令处理器:DB2CMD,分别执行如下命令:

DB2START

返回:SQL1026N  数据库管理器已激活。

DB2ADMIN START

返回:SQL4406W   已成功启动“DB2 管理服务器”。

 

2、连接至数据库:

DB2 CONNECT TO DB_NAME

返回:

  数据库连接信息

 

 数据库服务器         = DB2/NT <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />8.2.0

 SQL 授权标识         = KUN

 本地数据库别名       =TEST

 

3、获取数据库DB级配置参数列表:

DB2 GET DB CFG FRO DB_NAME

 

 

4、获取数据库配置参数详:

DB2 GET DBM CFG

获取DBM级配置参数:

          数据库管理器配置

 

     节点类型                                       = 带有本地和远程客户机

的数据库服务器

 

 数据库管理器配置发行版级别                              = 0x0a00

 

 打开的文件的最大总数                      (MAXTOTFILOP) = 16000

 CPU 速度(毫秒/指令)                       (CPUSPEED) = 2.912790e-007

 

 并发活动数据库的最大数目                        (NUMDB) = 8

 Data Links 支持                             (DATALINKS) = NO

 联合数据库系统支持                          (FEDERATED) = NO

 事务处理器监视器名                        (TP_MON_NAME) =

 

 缺省对方付费帐户                      (DFT_ACCOUNT_STR) =

 

 Java Development Kit 安装路径(JDK_PATH               = C:\Program Files\IBM\

SQLLIB\java\jdk

 

 诊断错误捕获级别                            (DIAGLEVEL) = 3

 通知级别                                  (NOTIFYLEVEL) = 3

 诊断数据目录路径                             (DIAGPATH) =

 

 缺省数据库监视开关

   缓冲池                              (DFT_MON_BUFPOOL) = OFF

   锁定                                   (DFT_MON_LOCK) = OFF

   排序                                   (DFT_MON_SORT) = OFF

   语句                                   (DFT_MON_STMT) = OFF

                                       (DFT_MON_TABLE) = OFF

   时间戳记                          (DFT_MON_TIMESTAMP) = ON

   工作单元                                (DFT_MON_UOW) = OFF

 监视实例和数据库的运行状况                 (HEALTH_MON) = ON

 

 SYSADM 组名                              (SYSADM_GROUP) =

 SYSCTRL 组名                            (SYSCTRL_GROUP) =

 SYSMAINT 组名                          (SYSMAINT_GROUP) =

 SYSMON 组名                              (SYSMON_GROUP) =

 

 客户机用户标识-密码插件                (CLNT_PW_PLUGIN) =

 客户机 Kerberos 插件                  (CLNT_KRB_PLUGIN) = IBMkrb5

 组插件                                   (GROUP_PLUGIN) =

 本地授权的 GSS 插件                   (LOCAL_GSSPLUGIN) =

 服务器插件方式                        (SRV_PLUGIN_MODE) = UNFENCED

 GSS 插件的服务器列表            (SRVCON_GSSPLUGIN_LIST) =

 服务器用户标识-密码插件              (SRVCON_PW_PLUGIN) =

 服务器连接认证                            (SRVCON_AUTH) = NOT_SPECIFIED

 数据库管理器认证                       (AUTHENTICATION) = SERVER

 没有权限就允许编目                     (CATALOG_NOAUTH) = NO

 信赖所有客户机                         (TRUST_ALLCLNTS) = YES

 可信的客户机认证                       (TRUST_CLNTAUTH) = CLIENT

 绕过联合认证                               (FED_NOAUTH) = NO

 

 缺省数据库路径                              (DFTDBPATH) = C:

 

 数据库监视器堆大小(4KB                 (MON_HEAP_SZ) = 66

 Java 虚拟机”堆大小(4KB             (JAVA_HEAP_SZ) = 512

 审计缓冲区大小(4KB                    (AUDIT_BUF_SZ) = 0

 实例共享内存(4KB)的大小             (INSTANCE_MEMORY) = AUTOMATIC

 备份缓冲区缺省大小(4KB                   (BACKBUFSZ) = 1024

 复原缓冲区缺省大小(4KB                   (RESTBUFSZ) = 1024

 

 代理进程的堆栈大小                     (AGENT_STACK_SZ) = 16

 最小已落实专用内存(4KB                (MIN_PRIV_MEM) = 32

 专用内存阈值(4KB                   (PRIV_MEM_THRESH) = 20000

 

 排序堆阈值(4KB                          (SHEAPTHRES) = 10000

 

 目录高速缓存支持                            (DIR_CACHE) = YES

 

 应用程序支持层堆大小(4KB                 (ASLHEAPSZ) = 15

 最大请求程序 I/O 块大小(以字节计)          (RQRIOBLK) = 32767

 DOS 请求程序 I/O 块大小(以字节计)      (DOS_RQRIOBLK) = 4096

 查询堆大小(4KB                       (QUERY_HEAP_SZ) = 1000

 

 已调速实用程序对工作负载的影响        (UTIL_IMPACT_LIM) = 10

 

 代理进程的优先级                             (AGENTPRI) = SYSTEM

 现有代理进程的最大数目                      (MAXAGENTS) = 200

 代理进程池大小                         (NUM_POOLAGENTS) = 100(已计算)

 池中的代理进程的初始数目               (NUM_INITAGENTS) = 0

 协调代理进程的最大数目                (MAX_COORDAGENTS) = MAXAGENTS

 并发协调代理进程的最大数目                 (MAXCAGENTS) = MAX_COORDAGENTS

 客户机连接的最大数目                  (MAX_CONNECTIONS) = MAX_COORDAGENTS

 

 保留受防护的进程                           (KEEPFENCED) = YES

 合用受防护的进程的数目                    (FENCED_POOL) = MAX_COORDAGENTS

 受防护的进程的初始数目                 (NUM_INITFENCED) = 0

 

 索引重新创建时间和重做索引构建               (INDEXREC) = RESTART

 

 事务管理器数据库名称                      (TM_DATABASE) = 1ST_CONN

 事务再同步时间间隔(秒)              (RESYNC_INTERVAL) = 180

 

 SPM 名称                                     (SPM_NAME) = JK

 SPM 日志大小                          (SPM_LOG_FILE_SZ) = 256

 SPM 再同步代理进程限制                 (SPM_MAX_RESYNC) = 20

 SPM 日志路径                             (SPM_LOG_PATH) =

 

 NetBIOS 工作站名                                (NNAME) =

 

 TCP/IP 服务名称                              (SVCENAME) = db2c_DB2

 发现方式                                     (DISCOVER) = SEARCH

 发现服务器实例                          (DISCOVER_INST) = ENABLE

 

 最大查询并行度                        (MAX_QUERYDEGREE) = ANY

 启用分区内并行性                       (INTRA_PARALLEL) = NO

 

 内部通信缓冲区的数目(4KB           (FCM_NUM_BUFFERS) = 1024

 FCM 请求块数目                            (FCM_NUM_RQB) = AUTOMATIC

 FCM 连接条目数目                      (FCM_NUM_CONNECT) = AUTOMATIC

 FCM 消息锚点数目                      (FCM_NUM_ANCHORS) = AUTOMATIC

 

 

记录DBM级别上需要更改的配置参数。

 

5、备份数据库:

BACKUP DATABASE TIMMS TO "D:\temp" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;

   此处使用完全脱机备份,得到在目录D:\TEMP下的数据库备份映像。

 

6、在目标服务器上启动DB2命令处理器,将备份映像拷贝至该机器上,备份映像的文件路径不能破坏,还原时DB2需要次目录结构:

   RESTORE DATABASE TIMMS FROM "D:\temp" TAKEN AT 20071219133805 TO "D:" INTO TEST WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;

此时可手工修改恢复的新数据库的表空间路径:

具体示例如下:

 

RESTORE DATABASE TIMMS FROM " D:\temp" TAKEN AT 20071219133805 TO "D:" INTO TEST WITH 2 BUFFERS BUFFER 1024 REDIRECT PARALLELISM 1 WITHOUT PROMPTING;

SET TABLESPACE CONTAINERS FOR 0 IGNORE ROLLFORWARD CONTAINER OPERATIONS USING (PATH " D:\temp\ SYS");

SET TABLESPACE CONTAINERS FOR 1 IGNORE ROLLFORWARD CONTAINER OPERATIONS USING (PATH " D:\temp\ TEMP");

SET TABLESPACE CONTAINERS FOR 2 IGNORE ROLLFORWARD CONTAINER OPERATIONS USING (PATH " D:\temp\DATA");

SET TABLESPACE CONTAINERS FOR 3 IGNORE ROLLFORWARD CONTAINER OPERATIONS USING (FILE " D:\temp\TEMP2" 5120);

RESTORE DATABASE TIMMS CONTINUE;

 

 

在目标数据恢复完成之后,一般用户可能到此就不操作任何东西了,但是如果两台服务器的DB2软件版本的不一致可能不影响使用,但是会导致数据库与软件版本号不一致。此时需要在目标服务器上进行数据库和软件版本同步问题,也就是这里要说的重点。

 

7、同步数据库与软件版本:

   用于同步版本的命令格式如下:

   db2updv8 -d <dbname> [-u] <userid> [-p] <password> [-f] [-h]

 

   -d <dbname> : database name (maximum of 8 characters)

   -u <userid> : userid for database connection must be used with -p

   -p <password> : password for database connection; must be used with -u

   -f          : restore original fenced cataloging for schema procedures

                 ( default is to convert to unfenced schema procedures )

   -h          : help

 

 

  一般使用:

  db2updv8 -d DB_NAME -u username -P password

  执行成功之后返回:

  DB2UPDV8 complete successfully for database 'DB_NAME'.

 

  DB2 V7版本之下可以使用db2updv7命令。

 

 

 

8、注意:

@ 在数据库迁移是版本好向前兼容,不能向后兼容:

     可由V7 版本下的数据在目标上的v7或者更高版本恢复。

     不能从高版本的数据库备份上向低版本的数据库恢复。

数据库迁移完成之后要检查数据库状态是否正确:

    使用DB2 GET DB CFG FRO DB_NAME 获取数据库状态。

DB2 开发系列

转载于:https://www.cnblogs.com/jkfree/archive/2008/02/02/1062122.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值