db2在线备份及还原

本文详细介绍了如何将DB2数据库设置为归档日志模式,从而实现在线备份。首先,通过命令检查并更改数据库的日志模式为归档模式,接着进行数据库的冷备份。然后模拟数据库破坏并删除数据库,最后通过恢复备份和日志前滚来恢复数据库。总结了开启归档日志、重启、离线备份和在线备份的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只有在归档日志模式下才能做在线备份

1.查看数据库设置日志模式为归档日志模式还是循环日志模式

db2 get db cfg for test|grep -i LOGARCHMETH

则说明为非归档模式, 默认情况下为循环日志

2.更改日志模式为归档模式

开启归档

cd /home/db2inst1

mkdir dbname

cd dbname

mkdir logs

db2 update db cfg using LOCKTIMEOUT 30 LOCKLIST 163840 MAXLOCKS 20 LOGFILSIZ 20480 LOGPRIMARY 10 LOGSECOND 10 LOGARCHMETH1 disk:/home/db2inst1/dbName/logs/
                                                                            //设置归档日志路径,启用归档日志

db2 update db cfg for 数据库名 using logretain on          //启用归档日志

db2 update db cfg for sample using trackmod on       //启用增量备份功能

db2 update db cfg for 数据库名 using userexit on             //启用用户出口

然后重启数据库进行冷备(离线备份)

db2stop (db2stop force)

db2start

cd /home/db2inst1

mkdir backup

$ db2 backup db 数据库名 to /home/db2inst1/backup

生成备份文件和归档日志

 

然后再连接数据库

db2 connect to dbname

3.删除数据库模拟破坏

$ db2 drop db dbname

$ db2 connect to dbname

4.恢复数据库

$ db2 restore db 数据库名   from /home/db2inst1/backup/ taken at 20140212190154 (数据备份的时间戳)

$ db2 connect to 数据库名

此时会有报错,需要前滚日志

$ db2 rollforward database dbname to end of logs and complete

如果报:

SQL4970N  Rollforward recovery stopped on the database named "TEST" because

the rollforward utility cannot reach the specified stop point (end-of-log or

point-in-time) on the following database partitions: "0".

解决办法:恢复日志

$ db2 restore db test logs from /opt/dbbak/ taken at 20160513020408 logtarget /opt/dbbak/

复制恢复的归档文件

$ cp /opt/dbbak/S0000000.LOG /home/db2inst1/db2inst1/NODE0000/SQL00002/LOGSTREAM0000/LOGSTREAM0000

启动进入数据库

db2 connect to dbname

 

 

 

总结

第一步:开启归档日志   db2 update db cfg for test_db using logretain on

第二步:重启数据库  

第三步:进行一次离线备份     db2 backup db test_db to D:\DB2_BAK

第四步:连接数据库,进行在线备份

db2 connect to test_db user administrator using wyz

db2 backup database test_db online to D:\DB2_BAK include logs

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值