DB2的rollforward前滚恢复
1.首先开启归档日志模式
db2 update db cfg for testdb using logarchmeth1 disk:/db2cfg获取db cfg相关日志配置信息:
db2 get db cfg for testdb|grep -i log:Path to log files = /db2cfg/test/NODE0000/SQL00001/SQLOGDIR/Overflow log path (OVERFLOWLOGPATH) = Mirror log path (MIRRORLOGPATH) = First active log file = S0000004.LOGBlock log on disk full (BLK_LOG_DSK_FUL) = NOBlock non logged operations (BLOCKNONLOGGED) = NOPercent max primary log space by transaction (MAX_LOG) = 0Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0Percent log file reclaimed before soft chckpt (SOFTMAX) = 520Log retain for recovery enabled (LOGRETAIN) = RECOVERYUser exit for logging enabled (USEREXIT) = OFFHADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNCFirst log archive method (LOGARCHMETH1) = DISK:/db2cfg/
2.测试环境较为简单testdb中只有一张表
[test@demo sqllib]$ db2 "select * from tb1"ID NAME
----------- ----------1 yo 2 yo2 3 yo3 6 yo6 4 record(s) selected.发起在线备份:
[test@demo sqllib]$ db2 backup db testdb online include logs
Backup successful. The timestamp for this backup image is : 20181231144308备份成功后可以查看:
db2 list history backup all for testdbOp Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID-- --- ------------------ ---- --- ------------ ------------ --------------B D 20181231144308001 N D S0000004.LOG S0000004.LOG ----------------------------------------------------------------------------Contains 3 tablespace(s):00001 SYSCATSPACE 00002 USERSPACE1 00003 SYSTOOLSPACE ----------------------------------------------------------------------------Comment: DB2 BACKUP TESTDB ONLINE Start Time: 20181231144308End Time: 20181231144310Status: A----------------------------------------------------------------------------EID: 14 Location: /home/test/Earliest Log是S0000004.LOG,表明S0000004.LOG之前的日志都同步至磁盘文件,数据库已备份,
该备份前滚恢复的时候都不需要S0000004.LOG之前的日志。
3.在线全备份成功后,继续往表插入数据:
[test@demo sqllib]$ db2 "insert into tb1 values(13,'yo13'),(16,'yo16')"
DB20000I The SQL command completed successfully.
[test@demo sqllib]$ db2 "select * from tb1"ID NAME
----------- ----------1 yo 2 yo2 3 yo3 6 yo6 13 yo13 16 yo16 6 record(s) selected.备份数据库的活动和归档日志(以测试前滚至最新状态)
[test@demo ~]$ cp -R /db2cfg/test/NODE0000/SQL00001/SQLOGDIR .
[test@demo ~]$ ls
sqllib SQLOGDIRdrop掉数据库
[test@demo ~]$ db2 drop db testdb
DB20000I The DROP DATABASE command completed successfully.
4.恢复数据库
[test@demo db2cfg]$ db2 restore db testdb
SQL2542N No match for a database image file was found based on the source
database alias "TESTDB" and timestamp "" provided.---指定恢复介质路径再试一遍:
[test@demo db2cfg]$ db2 restore db testdb from /home/test/sqllib
SQL2539W Warning! Restoring to an existing database that is the same as the
backup image database. The database files will be deleted.
Do you want to continue ? (y/n) y
DB20000I The RESTORE DATABASE command completed successfully.连接失败,数据库处于ROLL-FORWARD PENDING状态:
[test@demo ~]$ db2 connect to testdb
SQL1117N A connection to or activation of database "TESTDB" cannot be made
because of ROLL-FORWARD PENDING. SQLSTATE=57019
5.rollforward数据库到最新状态,如果没有最新的活动日志和归档日志,可以rollforward到online备份结束状态db2 rollforward db testdb to end of backup and stop但这样就会丢失备份后数据库的状态。[test@demo SQLOGDIR]$ db2 rollforward db testdb to end of logs and complete overflow log path \(/home/test/SQLOGDIR\)Rollforward StatusInput database alias = testdbNumber of nodes have returned status = 1Node number = 0Rollforward status = not pendingNext log file to be read =Log files processed = S0000004.LOG - S0000006.LOG--(前滚需要的日志)Last committed transaction = 2018-12-31-06.48.08.000000 UTC
DB20000I The ROLLFORWARD command completed successfully.前滚获取日志的顺序:1.活动日志目录,若找到则使用该目录下日志,如果没找到则检查22.overflow log path日志文件3.最后检查logarchmeth1指定的归档日志位置对于2与3获取的日志将要先放入db2活动日志目录,前滚完成后,db2将从活动目录删除这些日志文件前滚结束后,connect to testdb可以查询备份后新插入的2条数据:
[test@demo SQLOGDIR]$ db2 "select * from tb1"ID NAME
----------- ----------1 yo 2 yo2 3 yo3 6 yo6 13 yo13 16 yo16 6 record(s) selected.
6.查看恢复后数据库的数据库目录和表空间容器位置:因为恢复的时候没指定TO/DBPATH ON/ON等目录位置:[test@demo SQLOGDIR]$ db2 get dbm cfg|grep -i dftdbDefault database path (DFTDBPATH) = /home/test所以恢复后本地数据库目录在DFTDBPATH /home/test下面了[test@demo SQLOGDIR]$ db2 list db directorySystem Database DirectoryNumber of entries in the directory = 1
Database 1 entry:Database alias = TESTDBDatabase name = TESTDBLocal database directory = /home/test[test@demo SQLOGDIR]$ db2 list db directory on /home/testLocal Database Directory on /home/testNumber of entries in the directory = 1
Database 1 entry:Database alias = TESTDBDatabase name = TESTDBDatabase directory = SQL00001Database release level = d.00但是数据库表空间文件存储位置等依旧在/db2data下,(drop掉前,testdb的路径是on /db2data dbpath on /db2cfg), 可查看数据库表空间的路径:db2pd -db testdb -tablespacesdb2 list tablespace containers for 3 show detail其实数据库恢复可以指定数据库目录和自动存储路径(即使用自动存储表空间路径),比如异机恢复
到新目录,提供3个参数TO,DBPATH on和ON三个选项,
1.
如果目标库不存在,则restore的TO选项和DBPATH ON选项指定目标库的数据库目录,ON用来指定
自动存储位置,若只指定ON,那么本地数据库目录将会使用ON的第一个目录,
若3个参数都没指定,使用DFTDBPATH作为数据库目录,保留原有的自动存储路径。
2.
如果目标库存在,则忽略TO选项和DBPATH ON选项,若指定ON则改变自动存储路径,否则保留原有
自动存储路径。对于异机恢复,上面参数并不能修改非自动存储路劲,于使用非自动存储路径的表空间容器,DB还
提供了redirect恢复方式来修改恢复目标位置.
db2 restore db <dbname> redirect
db2 "set tablespace container for id using (new path)"
db2 restore db <dbname> continue
DB2的rollforward前滚恢复相关推荐
- db2 处理linux时间戳,如何获取DB2表空间前滚操作所需的最小恢复时间戳记
产品:DB2 UDB 平台:跨平台 版本:V8.2,V8.3 本文提供了获取 DB2 数据库表空间前滚恢复操作的所要求最小恢复时间戳记的三种方法. 对于启用了前滚恢复方式(使用归档日志模式)的 DB2 ...
- 深入了解Oracle前滚恢复rolling forward(一)
偶然的一次,网友在t.askmaclean.com ASK Maclean Home提问了关于11.2 上一个ORA-600问题的解决途径,我们这里不讨论该ORA-600[kcratr_nab_les ...
- db2设置数据库增量备份_DB2在线增量备份 还原增量备份及前滚恢复
1.更改数据库参数 logretain, userexit, trackmod 为 on 2.更改参数之后完全离线备份数据库一次 3.之后就可以进行在线.在线增量备份了 测试结果通过,脚本如下. 重要 ...
- DB2 pureScale在线备份恢复实例1
刚刚接触DB2,对DB2的备份恢复机制不是太熟悉,相关的资料又太少,只好自己慢慢摸索了. 需求 对生产库进行在线压缩备份,备份中包含归档日志,定期将生产库备份恢复到测试环境,确保测试环境采用最新的生产 ...
- linux db2在线备份,DB2 pureScale在线备份恢复实例
刚刚接触DB2,对DB2的备份恢复机制不是太熟悉,相关的资料又太少,只好自己慢慢摸索了. 需求 对生产库进行在线压缩备份,备份中包含归档日志,定期将生产库备份恢复到测试环境,确保测试环境采用最新的生产 ...
- DB2数据库指定时间点恢复案例
公司一生产环境AIX主机上的DB2数据库,由于开发人员的误操作,造成一个重要表的被删除,需要进行恢复.为了安全,不能在生产环境的数据库上进行操作,需要放到测试环境进行恢复. 问了一下开发人员,表被删除 ...
- db2 前滚数据库_db2 前滚会话
前滚会话 - CLP 示例 ROLLFORWARD DATABASE 命令允许每次指定多个操作,各个操作由关键字 AND 隔开.例如,要前滚至日志末尾,然后完成,可将下列独立的命令:db2 rollf ...
- db2怎么恢复误删除的数据_DB2误删数据后的恢复方法实践
1.在源库中使用以下语句生成重定向脚本: db2 "restore db dbname from /yourdbparth taken at timestamp into dbname re ...
- Windows Server下DB2自动备份、复原和前滚的脚本编程
最近在参与负责某线上MySQL项目时,客户要求实现MySQL数据库备份.复原和前滚的全流程自动化. 在RHEL下使用Perl语言编写脚本结合CRON指令来共同实现MySQL数据库备份.复原和前滚流程的 ...
最新文章
- Redis 通用操作1
- Android json操作之取得一个对象
- H264格式具体说明
- diag--创建对角矩阵
- 使计算机工作必不可缺的软件,探讨测绘工程中计算机制图的运用问题(原稿)
- mysql的基本数据类型_mysql基本数据类型(mysql学习笔记三)
- android广播唤醒app,Android APP唤醒打开其他APP
- ASP如何限定中英文混合的文字输出字数?
- 数字图像处理实验6图像编码
- 查看ssis执行日志_SSIS包日志记录概述
- mybatis原始mapper开发未集成springMVC
- 英特尔12代酷睿处理器强势来袭
- Python 获取 Flash SWF 文件宽度和高度(Width, Height)
- 计算机硬件故障诊断的原则,计算机硬件常见故障诊断和维护.doc
- 读取图像数据:通过append方法
- 借助 Lucene.Net 构建站内搜索引擎(下)
- 医学图像数据集:肝脏和肿瘤分割数据集
- 404是什么意思,404错误页面有什么用?
- EMUI10安装java_速升级!荣耀Play推EMUI 9.1正式版更新:方舟编译器和EROFS系统来了 - IT之家...
- 一位博士在华为的22年
热门文章
- h5页面 请在微信客户端打开链接_请在微信客户端打开链接 html
- 美国经济学教授Tyler Cowen:互联网正在动摇美国私有制根基
- 上古卷轴nmm_您在《上古卷轴》中认识的人
- Cameralink转SDI接口转换器 产品模块
- 想了解英特尔傲腾?看这一篇就够了
- java校园爱心公益平台设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- DM642接CMOS摄像头驱动(OV7725)终于搞定了
- VMware中Mac虚拟机开机出现“电脑因出现问题而重新启动,请按一下按键,或等几秒钟以继续启动。”
- 怎么使用PluginBase进行Tekla二次开发
- GoodNotes 模板分享