博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DB2 9.7 备份还原
阅读量:6692 次
发布时间:2019-06-25

本文共 4379 字,大约阅读时间需要 14 分钟。

hot3.png

  • 博客分类:

 

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备份恢复数据库步骤

DB2离线和在线全备、增量备份及恢复的操作步骤
DB2数据库备份恢复小结 
 

 

DB2 V9.7 信息中心

 

DB2 rollforward 命令使用详解

 

转载于:https://my.oschina.net/rootliu/blog/1808572

你可能感兴趣的文章
【CLI】使用 Curl 下载文件实时进度条显示
查看>>
Android 滤镜效果和颜色通道过滤
查看>>
Ruby开发者已可通过Fog管理Microsoft Azure服务
查看>>
Chrome和HTTPS:安全Web的征途
查看>>
软件专家的对话模式(第一部分)
查看>>
脚本填报表的条件查询
查看>>
从一个开发的角度看负载均衡和LVS
查看>>
Spring Boot(12)——使用MongoDB
查看>>
c++基础(上) 听课流水账
查看>>
Observable
查看>>
k8s使用deployment升级
查看>>
ionic3项目实战教程 - 第10讲 ionic3分类菜单设计(类似外卖)
查看>>
深度解析 | K8S API Server之入门须知
查看>>
LeanEngine 中使用 WebSocket
查看>>
浅入分析和Linux内核相关的文件夹/proc和/sys .
查看>>
Java 二分查找
查看>>
刚刚,阿里开源了一项重磅炸弹,终结程序员“中年危机”!
查看>>
《Spring Boot开发:从0到1》图片
查看>>
教你十分钟构建好 SpringBoot + SSM 框架
查看>>
吸烟场景运营商“烟客”获2000万元Pre-A轮融资,用于线下吸烟空间建设
查看>>