相同平台下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的表空间为数据库管理表空间,其它的为系统管理表空间。具体的设置语句也有不同,详细内容请参考上面的语句。

 
来源:赛迪网    作者:Alvin    
 
 
 
 
 

DB2备份与恢复

 
如果备份或者恢复一个DB2数据库需要花费几个小时时间,那么及时这个备份与恢复方案再安全,也于事无补。

热门技术手册排行

 

在本次的技术手册中,我们为您提供了PL/SQL的基础知识以及专家指导,包括了PL/SQL中的数据类型简介、PL/SQL函数与触发器以及PL/SQL中的存储过程等,相信您无论是高手还是菜鸟都可以获得有帮助的信息。

 

本系列文章由三部分组成,为Oracle数据库管理员(DBA)面试成功的必备手册。本专题内容囊括从DBA最初的面试开始,从写“杀手简历”到求职信、到面试过程到Oracle认证再到上升到公司高层最后到你成为公司里的明星DBA。专家为你一一指点迷津,最终让你登上成功的宝座。

 

要成为一名DBA,你需要具备哪些素质?DBA的薪酬待遇如何?DBA的职业道路究竟可以走向何方?我们将在本次的技术手册中为您一一解答。

 

在本次技术手册中,我们将对SQL Server存储过程的调试进行详细的介绍,包括了基础的调试方法和在调试过程中出现的T-SQL性能问题和解决方法。

 

本技术专题主要围绕sql server设计这个话题展开,侧重介绍了sql server集簇索引的设计、如何创建sql server索引、如何优化索引、索引的能与不能、处理sql server 2000索引碎片技巧以及维护sql server索引以实现查询优化等等。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录