仙道彰
作者仙道彰·2017-08-09 10:07
数据库开发工程师·花旗集团

db2数据库重定向恢复详解

字数 2145阅读 1410评论 0赞 2

DB2 数据库认证考试614的题目:
No.1 In which situation would you NOT use a redirected restore?
A. To redefine the paths of a defined storage group.
B. To move table space containers onto different physical devices.
C. To restore a backup image from one operating system to another.
D. To restore a backup image to a target machine that is different from the source machine.
本题讨论下面4种情况情况中,哪种情况不可以使用重定向恢复(redirected restore);
首先要了解什么情况下才需要使用重定向恢复,简单点就是“当源系统和目标系统的路径设置不同时,要手动进行重定向恢复”;具体的又可以细分为下列四种情况:
1).如果要将备份映像复原到不同于源机器的目标机器
2).如果要将表空间容器复原到另一个物理位置
3).如果复原操作由于一个或多个容器不可访问而失败
4).如果要重新定义已定义的存储器组的路径
由此可以与选项对照 (A - 4) ,(B - 2) , (D - 1) ,因此只剩下了选项C,那我们就来讨论C的情况下能否正常使用重定向恢复呢?!
重定向恢复适用场景是"当源系统和目标系统的路径设置不同时",同时使用重定向恢复时也有很多的限制:
1>.不能使用重定向复原操作将数据从一个操作系统移至另一个操作系统。
2>.不能在复原过程中创建或删除存储器组。
3>.不能在表空间复原过程中修改存储器组路径,即使正在复原与存储器组相关联的所有表空间时也是如此。

这就解答了C 选项的问题,即 重定向恢复不可以用于将数据从一个操作系统移至另一个操作系统;
所以本题的答案就可以确定下来了;
<拓展练习>
自动生成重定向恢复脚本以及重定向恢复状态查询
DB2 提供了命令,供用户从一次数据库备份文件中提取数据库重定向恢复脚本。示例如下,其中 /db2_backup/db2inst1/sample 是数据库备份文件所在的目录,20101023180128 是数据库备份文件的时间戳。
db2 restore db sample from /db2_backup/db2inst1/sample taken at 20101023180128
redirect generate script redirect_sample.sql
DB20000I The RESTORE DATABASE command completed successfully.
所生成的重定向文件 redirect_sample.sql,可以分为三个部分:

  1. Restore 语句

此语句用来标示一个重定向的恢复操作命令开始,它在普通恢复的命令上加了 redirect 参数。

RESTORE DATABASE SAMPLE
FROM '/db2_backup/db2inst1/sample'
TAKEN AT 20101023180128
INTO SAMPLE
REDIRECT;

  1. set containers 语句:

当目标数据库所的物理存储设备与原来的数据库不一样时,就需要下面的命令来指定新的物理容器。

SET TABLESPACE CONTAINERS FOR 0   
 USING (   
  PATH '/db2inst1/SAMPLE'  
 );   
 SET TABLESPACE CONTAINERS FOR 1   
 USING (   
  PATH '/ db2inst1/temp'  
 );   
 SET TABLESPACE CONTAINERS FOR 2   
 USING (   
  DEVICE '/dev/rsample_1G' 131072   
 );   
……  
  1. restore continue 语句:

此语句代表重定向恢复语句序列完成,系统开始恢复数据库。

RESTORE DATABASE SAMPLE CONTINUE;
注:

执行第2步时报:
SQL20319N

不允许在自动存储器表空间上执行 SET TABLESPACE CONTAINERS 命令。
说明

与自动存储器表空间相关联的容器受数据库的控制,不能通过 SET TABLESPACE CONTAINERS 命令重新定义。
用户响应

要对数据库中的所有自动存储器表空间指定一组新的路径,可使用 RESTORE DATABASE 命令的 ON 选项并指定一个或多个路径;或将其改为非自动。
如:db2 restore datatbase dbname from '/home/db2admin' taken at20101023180128 on '/home/db2adinst1' into dbnewname redirect

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广