DB2 backup备份命令

察看历史备份情况:

[css@TestDevelop:/tmp/backup]# db2 list history backup all for demo

===================================================================================


9、db2 backup db online to /home/db2inst1/on_back/ //在线备份

10、db2 backup db online incremental to /home/db2inst1/on_back/ //在线做增量备份

10、db2 backup db online to /home/db2inst1/on_back/ include logs #备份带日志的镜像文件

20、db2 backup db online incremental to /home/db2inst1/on_back/ include logs #备份带日志的增量镜像文件


Log retain for recovery enabled (LOGRETAIN) = OFF
Track modified pages (TRACKMOD) = OFF

=====================================================================================================

#!/bin/sh

usage()

{

echo "usage: $0 "

exit 1;

}



log_message()

{

message=$1

timestamp=`date "+%m/%d/%Y %H:%M:%S"`

echo "$timestamp $message" >> $LOG

}



# Database name is the first argument.

if [ $# -eq 0 ]

then

usage

fi



# Set DB2 environment

. $HOME/sqllib/db2profile



DBNAME=$1

BACKUPDIR=/home/db2inst1/db2backup

LOG=/home/db2inst1/db2backup/db2backup.log



log_message "*********************************************************************************************************";

log_message "********************************Begin********************************************************************";

log_message "*********************************************************************************************************";

# Make sure there are no active applications



NUM=`db2 get db cfg for $DBNAME | grep '(LOGRETAIN) = RECOVERY' | wc -l`

if [ $NUM -ne "1" ]

then

log_message "The value of LOGRETAIN is 'OFF'. Terminate 30 seconds for changing it's value to 'RECOVERY'"

db2 update db cfg for $DBNAME using LOGRETAIN ON >> $LOG 2>&1

sleep 30

fi



NUM=`db2 get db cfg for $DBNAME | grep 'TRACKMOD = ON' | wc -l`



if [ $NUM -ne "1" ]

then

log_message "The value of TRACKMOD is 'OFF'. Terminate 30 seconds for changing it's value to 'ON'"

db2 update db cfg for $DBNAME using TRACKMOD ON

sleep 30

fi



# Connect to database

log_message "Connecting to database $DBNAME"

db2 connect to $DBNAME >> $LOG 2>&1



# Take Backup

log_message "Backing up database to $LOG (online incremental)....This will take a while";

db2 backup database $DBNAME online incremental to $BACKUPDIR compress include logs without prompting >> $LOG 2>&1





log_message "*********************************************************************************************************";

log_message "********************************End**********************************************************************";

log_message "*************************************

********************************************************************";

=====================================================================================================


一、设置归档参数

1、db2 update db cfg for using mirrorlogpath /home/db2inst1/mirror_log/ //mirror log

2、db2 get db cfg for //确认是否成功

3、db2 update db cfg for using userexit on //启用用户出口

4、db2 update db cfg for using logretain on //启用归档日志

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

6、db2stop force

7、db2start

8、db2 backup db to /home/db2inst1/off_back //开始上面参数后,数据库处于backup pending状态,要求做数据库的离线备份,否则会提示SQL1116N错误。

二、备份在线数据库

9、db2 backup db online to /home/db2inst1/on_back/ //在线备份

10、db2 backup db online incremental to /home/db2inst1/on_back/ //在线做增量备份

11、db2 list history backup all for //查看备份记录

12、db2 get db cfg for //查看log所在位置,cp到一个安全目录,供rollforward使用。

13、db2stop force;db2start;db2 drop db //手工drop数据库,模拟灾难恢复的情况

三、恢复在线数据库

14、db2ckrst -d -t 20070608032820 -r database //帮助工具提示恢复

15、db2 restore db incremental from /home/db2inst1/on_back taken at 20070608032820 //恢复数据文件

先恢复完全备份,然后在恢复增量备份,不能自动寻找完全备份文件。

16、db2 rollforward database to end of logs and complete overflow log path '(/home/db2inst1/log)' //前滚日志

有一点不认同:“先恢复完全备份,然后在恢复增量备份”

对于增量恢复,你的做法正好反了,你这样做的话,会收到SQL2574N的错误信息。

在db2ckrst里面已经清楚的告诉你恢复的顺序。

下面是测试备份镜像中包日志的备份和恢复的步骤:

注:/home/db2inst1/on_back/ #为备份文件位置

/home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #为数据库的log位置,通过db2 get db cfg for 得到。

10、db2stop force;db2start;db2 drop db #模仿灾难发上,drop数据库。

20、db2 backup db online to /home/db2inst1/on_back/ include logs #备份带日志的镜像文件

21、db2 backup db online incremental to /home/db2inst1/on_back/ include logs #备份带日志的增量镜像文件

30、db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢复时间戳在20070612070526的数据镜像和日志文件

40、db2 rollforward database to end of logs and complete //回滚log日志

在“10”中已把数据库drop了,“20”中如

何做online backup呢?

注:/home/db2inst1/on_back/ #为备份文件位置

/home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #为数据库的log位置,通过db2 get db cfg for 得到。

10、db2 backup db online to /home/db2inst1/on_back/ include logs #备份带日志的镜像文件

20、db2 backup db online incremental to /home/db2inst1/on_back/ include logs #备份带日志的增量镜像文件

30、db2stop force;db2start;db2 drop db #模仿灾难发上,drop数据库。

40、db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢复时间戳在20070612070526的数据镜像和日志文件

50、db2 rollforward database to end of logs and complete //回滚log日志

====================================================================================


如何实现在线备份,先更改LOGRETAIN参数,然后进行一次脱机全备,然后就可以在线备份了

[css@TestDevelop:/tmp/backup]# db2 update db cfg for demo using LOGRETAIN ON
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.

[css@TestDevelop:/tmp/backup]# db2 connect to demo
SQL1116N A connection to or activation of database "DEMO" cannot be made
because of BACKUP PENDING. SQLSTATE=57019


[css@TestDevelop:/tmp/backup]# db2 backup db demo online to /tmp/backup
SQL2413N Online backup is not allowed because the database is not recoverable
or a backup pending condition is in effect.



[css@TestDevelop:/tmp/backup]# db2 backup db demo to /tmp/backup

Backup successful. The timestamp for this backup image is : 20090106090704




[css@TestDevelop:/tmp/backup]# db2 connect to demo

Database Connection Information

Database server = DB2/AIX64 9.1.0
SQL authorization ID = CSS
Local database alias = DEMO



[css@TestDevelop:/tmp/backup]# db2 backup db demo online to /tmp/backup

Backup successful. The timestamp for this backup image is : 20090106090719


相关文档
最新文档