设为首页 收藏本站
查看: 839|回复: 0

[经验分享] DB2 重定向恢复备份(包括日志的online备份)

[复制链接]

尚未签到

发表于 2016-11-16 04:05:05 | 显示全部楼层 |阅读模式

生产服务器:Windows sever 2003 service pack 2
测试机:Windows professional 2002 service pack 2
DB2的版本号为:DB2 v9.1.300.257
目标:在生产数据库服务器上备份,然后将这个备份重定向恢复到测试数据库上。

1)首先在生产数据库服务器上执行如下命令进行全盘在线备份(包括日志)
backup db mydb online to E:\db\dbbak\ include logs

2)在生产数据库服务器上执行如下命令查看当前数据库表空间情况。
list tablespaces

看到如下信息:
  引用
         当前数据库的表空间
表空间标识                        = 0
名称                       = SYSCATSPACE
类型                                       = 系统管理空间
内容                                = 所有持久数据。常规表空间。
状态                   = 0x0000
   详细解释:
     正常
表空间标识                        = 1
名称                       = TEMPSPACE1
类型                                       = 系统管理空间
内容                                = 系统临时数据
状态                   = 0x0000
   详细解释:
     正常
表空间标识                        = 2
名称                       = USERSPACE1
类型                                       = 系统管理空间
内容                                = 所有持久数据。常规表空间。
状态                   = 0x0000
   详细解释:
     正常
表空间标识                        = 3
名称                       = SYSTOOLSPACE
类型                                       = 系统管理空间
内容                                = 所有持久数据。常规表空间。
状态                   = 0x0000
   详细解释:
     正常
表空间标识                        = 4
名称                       = SYSTOOLSTMPSPACE
类型                                       = 系统管理空间
内容                                = 用户临时数据
状态                   = 0x0000
   详细解释:
     正常
表空间标识                        = 5
名称                       = BIG8KSPACE
类型                                       = 系统管理空间
内容                                = 所有持久数据。常规表空间。
状态                   = 0x0000
   详细解释:
     正常
表空间标识                        = 6
名称                       = TEMPBUFFERSPACE
类型                                       = 系统管理空间
内容                                = 系统临时数据
状态                   = 0x0000
   详细解释:
     正常

可以看到上面的信息中显示此数据库包括7个表空间容器,记录下上面的信息,下面恢复的时候要使用到。
现在,开始重定向恢复数据库
3)首先要为原数据库创建相应的表空间容器,进入cmd命令窗口,执行下面的命令
mkdir D:\DB2\NODE0000\mydb\SYSCATTBS  D:\DB2\NODE0000\mydb\TEMPTBS D:\DB2\NODE0000\mydb\USERTBS D:\DB2\NODE0000\mydb\SYSTOOLTBS D:\DB2\NODE0000\mydb\SYSTOOLSTMPTBS D:\DB2\NODE0000\mydb\BIG8KTBS D:\DB2\NODE0000\mydb\TEMPBUFFERTBS

其实也就是为生产机上备份下来的数据的7个表空间容器定义存放的路径。
4)在测试机上执行下列命令来建立一个空的数据库:mydb
create db mydb

注意:重定向恢复操作必须在同一个会话中调用,否则,将返回 SQL0900N,恢复操作将会失败。

5)开始测试机上执行数据库恢复命令(将日志指定存放的路径为:D:\test\mylog)
restore db mydb from D:\DB2\NODE0000\CATN0000\20100406 taken at 20100406215139  into mydb logtarget D:\test\mylog redirect

出现如下提示:
引用

SQL2523W  警告!正在复原至与备份映像上的数据库不同,但具有匹配名称的现有数据库。
目标数据库将被备份版本覆盖。将删除与目标数据库相关联的前滚恢复日志。
要继续吗?(y/n)


输入:y,回车
之后会出现如下提示:
引用

SQL1277W  正在执行重定向复原操作。现在,可以查看表空间配置,并且不使用自动存储器
的表空间可以重新配置它们的容器。
DB20000I  RESTORE DATABASE 命令成功完成。


然后继续下面的第六步。
其中路径D:\DB2\NODE0000\CATN0000\20100406和D:\test\mylog都是生产机上的绝对路径。D:\DB2\NODE0000\CATN0000\20100406里存放的是从生产机上拷贝过来的备份文件,而路径D:\test\mylog下会生成当时备份时的日志文件,这些日志文件是在恢复执行前滚操作是必须需要的。
6)为要恢复的本地数据库表空间指定容器,执行下列命令
set tablespace containers for 0 using (path "D:\DB2\NODE0000\mydb\SYSCATTBS")
set tablespace containers for 1 using (path "D:\DB2\NODE0000\mydb\TEMPTBS")
set tablespace containers for 2 using (path "D:\DB2\NODE0000\mydb\USERTBS")
set tablespace containers for 3 using (path "D:\DB2\NODE0000\mydb\SYSTOOLTBS")
set tablespace containers for 4 using (path "D:\DB2\NODE0000\mydb\SYSTOOLSTMPTBS")
set tablespace containers for 5 using (path "D:\DB2\NODE0000\mydb\BIG8KTBS")
set tablespace containers for 6 using (path "D:\DB2\NODE0000\mydb\TEMPBUFFERTBS")

其中的数字:0,1,2,3,4,5,6是源数据库的表空间标识,path后面的路径就是我们第3)步建的路径,标识号和路径一一对应。
7)然后继续执行恢复
restore db mydb continue

8)最后要执行前滚命令
rollforward db mydb to end of logs and stop overflow log path (D:\test\mylog)
9)执行下列命令查看是否恢复成功
list db directory
出现如下信息:
引用
系统数据库目录
目录中的条目数 = 1
数据库 1 条目:
数据库别名                      = mydb
数据库名称                               = mydb
本地数据库目录                  = D:
数据库发行版级别                = b.00
注释                            =
目录条目类型                    = 间接
目录数据库分区号                  = 0
备用服务器主机名                =
备用服务器端口号                =

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-300789-1-1.html 上篇帖子: DB2的冷备份、在线全备份和在线增量备份 下篇帖子: DB2的olap函数详解(原创)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表