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

[经验分享] 原创db2 9.7备份恢复(还原)

[复制链接]

尚未签到

发表于 2016-11-13 11:36:04 | 显示全部楼层 |阅读模式
  
linux下与windows下类似
恢复时可能会遇到很多问题,但备份其实是很简单的
  备份时应该备份数据库和日志,因为前滚时要用到日志。
备份时如果不使用include logs参数的,日志要单独备份
备份时一般采用带include logs参数的较简单
  一.离线备份
 在默认情况下只能做离线备份
1.断开连接
--db2 connect to sample
--db2 list applications for db sample
db2 force applications all
--db2stop force  
--db2start
  2.离线备份
db2 backup db sample to D:\backup\db\db2\sample\offline
备份成功。此备份映像的时间戳记是:20141015143312
文件名:SAMPLE.0.DB2.NODE0000.CATN0000.20141015143312.001
  离线备份不支持这个参数
include logs
SQL2032N  "iOptions" 参数无效。
  3.查看备份历史
db2 list history backup all for sample
  4.恢复
db2 restore db sample from "D:\backup\db\db2\sample\offline" taken at 20141015143312
  5.前滚
--查看
--db2 rollforward db sample
前滚
db2 rollforward db sample complete

db2 rollforward db sample stop
--db2 rollforward db sample to end of logs
--SQL1268N  由于检索节点 "0" 上的数据库 "SAMPLE" 的日志文件 "S0000000.LOG"
--时发生错误 "1",前滚恢复停止。
  二.联机备份
  做联机备份需要修改参数userexit和logretain
查看现有参数配置
db2 get db cfg for sample
  db2 update db cfg for sample using userexit on  //启用用户出口  
db2 update db cfg for sample using logretain on  //启用归档日志  
db2 update db cfg for sample using trackmod on  //启用增量备份功能 
  (需要各个Node都分别做设置,目前只有一个Node)
开启这些参数后,数据库处于backup pending状态,要求做数据库的离线全备份。
做一下离线全备份,参考上面的命令。
  1.联机全量备份
db2 backup database sample online to D:\backup\db\db2\sample\online include logs
备份成功。此备份映像的时间戳记是:20141015143758 (时间点1)
  2.联机累计增量备份
备份上一次联机全量备份后的变化部分
db2 backup database sample online incremental to D:\backup\db\db2\sample\incremental include logs
备份成功。此备份映像的时间戳记是:20141015143921(时间点2)
  3.联机差异增量备份
备份上一次联机备份后的变化部分
db2 backup database sample online incremental delta to D:\backup\db\db2\sample\delta include logs
备份成功。此备份映像的时间戳记是:20141015143955(时间点3)
  
三.恢复
  
1.恢复联机全量备份 只到(时间点1)
--db2 drop db sample
db2 restore db sample from "D:\backup\db\db2\sample\online" taken at 20141015143758 logtarget D:\backup\db\db2\sample\backupdblogs
前滚
db2 rollforward db sample to end of logs and complete overflow log path(D:\backup\db\db2\sample\backupdblogs) noretrieve
logtarget 指定log的输出目录,随便指定一个,(单个)恢复前要先清空
  2.恢复累计增量备份 只到(时间点2)
--db2 drop db sample
db2 restore db sample incremental automatic from "D:\backup\db\db2\sample\incremental" taken at 20141015143921 logtarget D:\backup\db\db2\sample\backupdblogs
恢复时指定了automatic参数,他会自动恢复之前的相关备份(全量备份)
前滚
db2 rollforward db sample to end of logs and complete overflow log path(D:\backup\db\db2\sample\backupdblogs) noretrieve
  3.恢复差异增量备份 只到(时间点3)
--db2 drop db sample
db2 restore db sample incremental automatic from "D:\backup\db\db2\sample\delta" taken at 20141015143955 logtarget D:\backup\db\db2\sample\backupdblogs
前滚
db2 rollforward db sample to end of logs and complete overflow log path(D:\backup\db\db2\sample\backupdblogs) noretrieve
  4.不用automatic参数的恢复
恢复时推荐使用automatic参数,简单
  查看恢复到某一时间戳的操作(db2推荐顺序)
db2ckrst -d sample -t 20141015143955 -r database
一般是先恢复最新的备份(时间点3)
再恢复(时间点1)
再恢复(时间点2)
再恢复最新的备份(时间点3)
  删除logtarget目录里的日志
--db2 drop db sample
db2 restore db sample incremental from "D:\backup\db\db2\sample\delta" taken at 20141015143955 logtarget D:\backup\db\db2\sample\backupdblogs
  
db2 restore db sample incremental from "D:\backup\db\db2\sample\incremental" taken at 20141015143921 logtarget D:\backup\db\db2\sample\backupdblogs
  
db2 restore db sample incremental from "D:\backup\db\db2\sample\online" taken at 20141015143758 logtarget D:\backup\db\db2\sample\backupdblogs
  
db2 restore db sample incremental from "D:\backup\db\db2\sample\delta" taken at 20141015143955 logtarget D:\backup\db\db2\sample\backupdblogs
  其中提示,选是
SQL2580W  警告!将这些日志复原至包含现有日志文件的路径。在复原期间试图覆盖现有日
  志文件将导致复原操作失败。
想要继续吗?(y/n) y
  前滚
db2 rollforward db sample to end of logs and complete overflow log path(D:\backup\db\db2\sample\backupdblogs) noretrieve
  报错的处理方法
SQL2574N   作为增量式 RESTORE 操作的一部分来复原的备份映像不能比目标映像更新。
按照db2推荐顺序还原
  db2 rollforward db sample to end of logs and complete
SQL1119N  因为先前复原不完整或者仍在进行,所以不能连接或激活数据库 "SAMPLE"。
SQLSTATE=57019
删除数据库,参考上面的两种恢复方法还原
  
SQL1268N  由于检索节点 "0" 上的数据库 "SAMPLE" 的日志文件 "S0000001.LOG"
时发生错误 "1",前滚恢复停止。
前滚时需要日志
  其他
db2 rollforward db sample to 2014-10-15-02.50.40.000000 and stop
db2 rollforward db sample to 2014-10-15-02.50.40.000000 and complete
用db2ckbkp -h 检查下image,并且查看下include log 选项是否是1
  按照表空间的备份和恢复类似,加子句TABLESPACE ( tablespace-name )即可。表空间级别的备份/恢复操作要求数据库处于归档日志和启用增量备份模式下。
  本人采用的备份方案
每月1号联机全量备份
其他日期联机累计增量备份
这样恢复简单
  参考:
  DB2备份恢复数据库步骤
http://database.iyunv.com/art/200709/56545.htm
DB2离线和在线全备、增量备份及恢复的操作步骤
http://www.iyunv.com/old_jh/22/99296.html
DB2数据库备份恢复小结 
http://mmz06.blog.163.com/blog/static/12141696201011324632710/ 
  DB2 V9.7 信息中心
  http://www-01.ibm.com/support/knowledgecenter/#!/SSEPGG_9.7.0/com.ibm.db2.luw.kc.doc/welcome.html
  DB2 rollforward 命令使用详解
  http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1003wucx/

运维网声明 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-299685-1-1.html 上篇帖子: 修改日志大小的db2命令 下篇帖子: DB2的权限管理(原创)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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