IBM DB2 UDB 在线备份与恢复完美演习!


  本文标签:IBM DB2 UDB

  以下的文章主要描述的是IBM DB2 UDB 在线备份与恢复的实际操作,假如你在实际操作中遇到IBM DB2 UDB 在线备份与恢复,但是你却不知道对其如何正确的操作,那么以下的文章对你而言一定是良师益友  。

  IBM, DB2IBM, 实战, UDB, 在线

  

  为什么要进行在线增量备份?

  

  在线意味者备份的时候,允许其他的连接,而不用停掉数据库

  增量意味着,不需要每次备份一个超大的数据库.

  

  同时意味着你可以将数据库恢复到崩溃前的状态,而不是你最后一次备份时的状态,最大可能的减少数据损失.

  

  设置数据库以支持在线增量备份

  db2在线增量备份需要采用归档记录类型,而不是循环记录类型,而db2创建的数据库缺省采用循环记录类型,要设置归档记录类型有两种方法:

  更改logretain为recovery或者on,

  改改userexit为on

  

  这样db2的日志将不会循环使用,而是不断增多,这样才有可能进行增量备份,并将数据库恢复到崩溃的时间点

  

  db2增量备份需要设置tracemod为on,这样数据库将在物理页上记录更改的部分页,做dirty标记

  

  下面是一个脚本可以将testdb数据库设置为支持在线备份:

  1. connect to testdb;  
  2. update db cfg using logretain on;  
  3. update db cfg using trackmod on;  
  4. db2stop force;  
  5. db2start; 

  通常应该再设置mirrorlogpath以备份db2日志镜像:

  update db cfg using mirrologpath 你认为安全的路径

  

  如何进行在线备份?

  backup db testdb online to 备份路径(全备份)

  

  backup db testdb online incremental to 备份路径(增量备份)

  backup db testdb online incremental delta to 备份路径(delta备份)

  恢复

  假设我们要进行这样一个任务:把lw数据库的在线备份恢复到目标机器的F盘中,并且重命名为loanmgr.

  1.获得备份文件的详细信息,做好文件准备

  建立"F:\db2备份数据"文件夹,直接拷贝在线备份时自动生成的目录结构和文件:

  

  F:\db2备份数据\LW.0\DB2\NODE0000\CATN0000\20070308\085446.001

  

  命令行执行

  

  db2ckbkp -h F:\db2备份数据\LW.0\DB2\NODE0000\CATN0000\20070308\085446.001

  

  得到结果中要注意红色的部分,如果你手头只有一个文件,那么就按照红色标示建立目录结构和文件重命名

  1. The proper image path would be:  
  2. LW.0\DB2\NODE0000\CATN0000\20070308\085446.001 

  2.准备还原lw数据库到新数据库loanmgr(loanmgr不要预先建立)

  

  restore db lw from F:\db2备份数据 taken at 20070308085446 to f into loanmgr redirect

  结果

  SQL1277N 复原已检测到一个或多个表空间容器不可存取,或者已将它们的状态设置为“必

  

  须定义存储器”  。

  

  DB20000I RESTORE DATABASE 命令成功完成  。

  

  1. set tablespace containers for 0 using (path e:\db2\ts0);  
  2. set tablespace containers for 1 using (path e:\db2\ts1); 

  

  3.建立tablespace 复制上面的命令,并改其中的红色数字,直到执行到"表空间标识无效"之类的错误.就把表空间准备好了.

  

  使用list tablespaces查看当前表空间状况,检验一下.

  开始恢复,这个过程才真正开始往表空间中写入数据:

  1. restore db lw continue 

  特别注意的是这里写的是源数据库的名称,而不是目标数据库的名称.结果:

  DB20000I RESTORE DATABASE 命令成功完成  。

  4.前滚

  执行

  

  get db cfg for loanmgr

  

  得到结果中注意:

  日志文件路径 = F:\DB2\NODE0000\SQL00001\SQLOGDIR\

  

  溢出日志路径 (OVERFLOWLOGPATH) =

  

  镜像日志路径 (MIRRORLOGPATH) = e:\Db2MirrorLogPath\NODE0000\

  

  第一活动日志文件 = S0001216.LOG

  

  将日志文件群拷贝到红色路径中,这些日志应该包含S0001216.LOG之后的所有文件,接着

  rollforward db testdb to end of logs and complete

  

  全部完成..