生产服务器: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
其实也就是为生产机上备份下来的数据的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
然后继续下面的第六步。
其中路径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
备用服务器主机名 =
备用服务器端口号 =