DB2 使用重定向恢复数据库

本文详细介绍如何在同一平台下使用重定向恢复操作迁移DB2数据库,包括备份、创建目录、表空间重定向等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注,本文讨论的内容限于同一平台下的 DB2 数据库迁移。关于不同平台下的 DB2 数据库迁移参见 《不同平台之间的 DB2 数据库迁移一例》 。                     数据库恢复操作使用数据库备份映象来重新创建数据库。如果要将数据库从一台机器克隆到另一台,最简单的方法就是从备份映象恢复数据库。除非源系统上的数据库引用的文件系统和物理设备与目标系统的设置方法完全相同,否则在目标系统上还原数据库就需要执行重定向恢复操作。                     重定向恢复操作包括两步数据库恢复过程,并且中间有一个表空间容器定义步骤:                     1. 带 REDIRECT 选项发出 RESTORE DATABASE 命令。                     2. 使用 SET TABLESPACE CONTAINERS 命令来定义被恢复的数据库的表空间容器(DB2 需要知道您想要让表空间驻留在目标系统上的什么位置)。                     3. 再次发出 RESTORE DATABASE 命令,这次指定 CONTINUE 选项。                  重要!整个重定向恢复操作必须在同一个会话中调用;否则,将返回 SQL0900N,恢复操作会失败,记住这一点很重要。确保不会发生这种情况的一个方法是创建并运行包含重定向恢复过程中全部三部分的脚本。                     下面是一次相同平台的 DB2 数据库使用重定向恢复的示例,脚本如下:                     · 第一步,在源系统中离线完全备份数据库                     --源系统 ZYSJK            --源数据库 YNDC                     C:/Documents and Settings/Administrator>cd /d D:/backup/autobak/db2                     D:/backup/autobak/db2> db2 backup db YNDC                     这个映象的时间戳记是 20070315165040 ,该映象在 D:/backup/autobak/YNDC.0/DB2/NODE0000/CATN0000/20070315 中。                     DB2 在发出 BACKUP DATABASE 命令的目录中创建这个子目录树。子目录名称表示以下含义:                     <database_alias.backup_type>/<instance_name>/<node_number>/<catalog_node_number>/<date>                     在这个子目录树中,将会有一个表示实际备份映象的文件(165040.0)。文件名表示获取备份的时间。                     · 第二步,在目标系统中创建相似的目录,并将备份文件拷贝至 165040.0 的文件至该目录下。                     C:/Documents and Settings/Administrator> cd/                     C:/>mkdir D:/backup/autobak/YNDC.0/DB2/NODE0000/CATN0000/20070315                     注意!这是关键步骤:如果没有正确创建这个路径,后续的数据库恢复操作就会失败。                     · 第三步,查看源系统的数据库表空间情况                     C:/Documents and Settings/Administrator> db2 list tablespaces                                 当前数据库的表空间                     表空间标识                           = 0            名称                                 = SYSCATSPACE            类型                                 = 系统管理空间            内容                                 = 任何数据            状态                                 = 0x0000            详细解释:            正常                     表空间标识                           = 1            名称                                 = TEMPSPACE1            类型                                 = 系统管理空间            内容                                 = 系统临时数据            状态                                 = 0x0000            详细解释:            正常                     表空间标识                           = 2            名称                                 = USERSPACE1            类型                                 = 系统管理空间            内容                                 = 任何数据            状态                                 = 0x0000            详细解释:            正常                     表空间标识                           = 3            名称                                 = YNDC            类型                                 = 数据库管理空间            内容                                 = 任何数据            状态                                 = 0x0000            详细解释:            正常                     表空间标识                           = 4            名称                                 = SYSTOOLSPACE            类型                                 = 系统管理空间            内容                                 = 任何数据            状态                                 = 0x0000            详细解释:            正常                     表空间标识                           = 5            名称                                 = USERTEMPSP            类型                                 = 数据库管理空间            内容                                 = 用户临时数据            状态                                 = 0x0000            详细解释:            正常                     表空间标识                           = 6            名称                                 = TEMPSPACE8K            类型                                 = 数据库管理空间            内容                                 = 系统临时数据            状态                                 = 0x0000            详细解释:            正常

           其中,标识为 0,1,2 的表空间是系统缺省的默认表空间,无需进行重定向操作,这里可以不必“理会”它。                     标识为 3,5,6 的表空间需要进行重定向操作,脚本如下(以下语句必须写在一个脚本中执行):                     · 第四步,在目标系统中创建数据库 YNDC ,然后通过表空间重定向还原数据库                   db2 create db YNDC;                     执行下面的脚本,脚本清单:                   restore db YNDC from d taken at 20070315165040 to d redirect;USING ( 'D:/DB2/Container/TestDB/SysData/' )                     set tablespace containers for 4 using (PATH 'G:/DB2Containner_2/YNDC/sys' );                     set tablespace containers for 3 using (FILE "G:/DB2Containner_2/YNDC/YNDC" 5242880);                     set tablespace containers for 5 using (FILE "G:/DB2Containner_2/YNDC/USERTEMPSP" 51200);                     set tablespace containers for 6 using (FILE "G:/DB2Containner_2/YNDC/TEMPSPACE8K" 51200);                     restore db YNDC continue;                     ·第五步,验证目标系统中还原的数据库的表空间                   db2 list db directory                     db2 connect to YNDC                     db2 list tablespace containers for 3                     db2 list tablespace containers for 5                     db2 list tablespace containers for 6                     db2 connect reset                     db2 terminate

Edit by pjj in 2007-03-16 9:09关 于数据库重定向恢复数据库还有一点补充:如果源数据库的缓冲池较大,还原后目标数据库启动不了的情况下,在还原成功之后请修改缓冲池的大小。另外,在指定 表空间容器的时候,需要注意目标表空间和源表空间的管理类型必须一致,系统管理表空间对应系统管理表空间,数据库管理表空间对应数据库管理表空间。就本例 来说,标识为 3,5,6的表空间为数据库管理表空间,其他的为系统管理表空间。具体的设置语句也有不同,详细地请参考上面的语句。

                        ----------------------------------------------------------------------------------------------------            -- DB2 数据迁移脚本            -- 彭建军            -- 2007-3-16 17:22            -- 源环境: Windows 2003 Server + DB2 V8.2            -- 目标环境: WindowsXP + DB2 V8.2            ----------------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值