生产服务器: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》使用命令 db2 restore db db1_dwe from c:\dwe95 taken at 20071213133623 redirect generate script db1.clp ,生成重定向回复脚本db1.clp。 2》修改db1.clp脚本,...
DB2重定向恢复:db2 RESTORE DATABASE dbname from 路径 TAKEN AT 20090701085133
客户那边主要用DB2 没办法 咱也开始研究DB2 从DB2的开始建库,建表插入数据 offline online备份都做了详细说明,有纯指令操作,也有后面的用图形界面操作,当然个人还是推荐用命令行来进行 效率比较搞。
运行这个脚本之后系统将会自动根据参数进行配置,会自动定时去备份数据及处理日志!数据库和日志都是一个月删除一次,本月的第一次成功完整备份后删除上一个月的数据,但日志会较数据库备份多存放一周! 运行脚本...
无废话DB2备份和恢复-基础篇,图示DB2的备份恢复原理
DB2中常用备份,恢复命令和db2move,db2look的使用
db2的建库备份和恢复相关命令步骤说明。
db2备份与恢复实践,里面有详细的说明与实践练习
DB2分增量备份
DB2增量在线、离线恢复和备份步骤,日志前滚方法,详细介绍示例步骤
DB2数据库备份恢复批处理工具
该文档包含了各种db2的备份及恢复的方法,都是经过实际操作验证过的。脱机备份还原,联机备份还原,重定向恢复,及增量备份等。
自己写的db2备份shell脚本
DB2数据库备份与恢复 从入门开始 一步步讲述备份与恢复
linux之间实现db2异机备份还原总结: linux与linux之间的nfs共享,通过rc.local,fstab实现开机自动挂载,通过crontab实现db2 自动在线备份,在线增量备份,db2 还原
DB2参数备份与恢复
DB2归档日志恢复
详细介绍db2数据库备份与恢复 内容如: 1、离线全备份 1)、首先确保没有用户使用DB2: $db2 list applications for db sample 2)、停掉数据库并重新启动,以便断掉所有连接: db2stop force db2start 3)、...
本工具用于DB2 for windows 版的优化, DB2备份优化工具包括 备份DB2数据库 优化DB2数据库 建索引和关键字 恢复DB2数据库 希望这个DB2 for windows 版的优化工具 对大家有帮助
DB2使用9.7.3恢复v8的数据库备份