整理出一些关于DB2 V8.2的offline;online的备份。

6. 数据库备份与恢复

数据库备份是系统运行维护的重要部分。备份分为脱机备份即offline,联机备份online等,下面将分情况说明offline备份和online备份。以下备份和恢复以数据库CBANK为演示,脱机备份目录为/dbbackup/CBANK,联机备份命令为/dbbackup/CBANK_ONLINE,归档日志目录为/tranlog/CBANK。 6.1    脱机备份与恢复 Offline备份是对数据库的全量备份,备份时要停止应用的访问,备份后将生成一时间戳标识。 6.1.1操作步骤连接到原数据库所在机器,清除数据库应用连接。        db2 force applications all 备份CBANK据库,等出现备份成功信息,会返回一个时间戳,例如“Backup successful. The timestamp for this backup image is : 20300819105641 ”,to后面指定备份到的目录。        db2 backup db CBANK to /backup/CBANK   如果数据库发生故障,可以从offline中恢复最近的备份。如从指定目录/data/home/db2/backup获取备份文件,则使用命令如: db2 restore database CBANK from /dbbackup/CBANK taken at 20240821165845   6.2             联机备份与恢复联机备份称Online备份,即在应用连接的情况下进行备份。联机备份首先需要对数据库进行设置,即设置日志为归档日志,才可以进行online备份。 第一次进行备份前,需要先做一次offline备份,方法参考6.1脱机备份部分。联机备份恢复是根据活动日志和归档日志进行重做事务进行数据库恢复,保持数据一致性的,所以数据库归档日志的存档很重要。 6.2.1操作步骤先关闭数据库应用连接,配置归档日志路径LOGARCHMETH1,指明归档日志路径为/tranlog/CBANK db2 force applications all db2 update db cfg for CBANK using LOGARCHMETH1 "DISK:/tranlog/CBANK" 打开日志归档开关 db2 update db cfg for CBANK using logretain on   如果之前没有offline,需要先做一次offline备份,然后才可以进行online备份。Offline的存档目录/dbbackup/cbank_backup_20080430;online存档的目录/dbbackup/CBANK_ONLINE。 db2 backup db cbank to "/dbbackup/cbank_backup_20080430" Backup successful. The timestamp for this backup image is : 20320628170440 online备份,生成的时间戳为20320628170719,放置于/dbbackup/CBANK_ONLINE目录。 db2 backup db cbank online to "/dbbackup/CBANK_ONLINE" Backup successful. The timestamp for this backup image is : 20320628170719   Online备份恢复有两种方式:恢复到日志末尾;恢复到具体时间点。这两种方式取决于故障发生的类型。例如:如果是由于其他正常事务性操作导致数据丢失,可以恢复至某个最近正常的时间点。20320628170719时间戳为最近一次online备份,将数据库恢复至此online备份后,前滚至时间点 2032-06-28-18.18.38.995517。并将数据库的状态更改为前滚完成,即正常可用状态。 db2 restore database CBANK from "/dbbackup/CBANK_ONLINE" taken at 20320628170719 Do you want to continue ? (y/n) y DB20000I  The RESTORE DATABASE command completed successfully. 此时数据库处于ROLL-FORWARD PENDING不可用状态,根据故障发生时间点,恢复到2032-06-28-18.18.38.995517是数据库状态。

db2   rollforward db cbank to 2032-06-28-18.18.38.995517 using local time and complete                                    Rollforward Status    Input database alias                   = cbank  Number of nodes have returned status   = 1    Node number                            = 0  Rollforward status                     = not pending  Next log file to be read               =  Log files processed                    = S0000000.LOG - S0000001.LOG  Last committed transaction             = 2032-06-28-18.16.48.000000   DB20000I  The ROLLFORWARD command completed successfully.