DB2的在线备份是最常用的功能之一,我整理了下。


1.检查参数


Unix/Linux下的查看命令:


db2 get db cfg for xcldb|grep "USEREXIT"


db2 get db cfg for xcldb|grep "LOGRETAIN"


db2 get db cfg for xcldb|grep "TRACKMOD"



Windows下的查看命令:


db2 get db cfg for xcldb|find /I "userexit"


db2 get db cfg for xcldb|find /I "logretain"


db2 get db cfg for xcldb|find /I "trackmod"



2.配置参数, 使数据库变为归档日志模式,默认为循环日志模式,不支持联机备份.


DB2 v9及以前版本:


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


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


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




userexit和logretain 参数在DB2 v10及以后版本中被废弃了.改用LOGARCHMETH1参数来实现.
 db2 update db cfg for xcldb using LOGARCHMETH1 disk:/u01/db2log
    LOGARCHMETH1: DISK  : 本地磁盘
       TSM  : Tivoli Storage Manger
             VENDOR : 第三方存储设备
不过增量备份的设置参数trackmod,依然如故.





3.数据库变为 Backup pending 状态,需要离线备份一次


db2 backup db xcldb to /db2bak



4.测试连接,看是否能连接成功


db2 connect to xcldb


db2 connect reset



5.手工归档,查看一下是否有产生日志文件


   5.1 查找日志文件所在目录


     --为 Path to log files 参数所对应的值.


    db2 get db cfg for xcldb



   5.2 手工归档


      db2 archive log for db xcldb



   5.3 去日志目录检查下文件是否有产生


     ls -lrt


   


6.联机(在线)备份,有下面几种方式


    --仅备份数据库,不包含日志


 -- compress : 压缩备份集


 db2 backup db xcldb online to c:\\db2bak compress


 --备份数据库,并且备份中包含日志


 db2 backup db xcldb online to c:\\db2bak include logs



  --增量备份


 db2 backup db xcldb online incremental to c:\\db2bak include logs


  --差量(Delta)备份


 db2 backup db xcldb online incremental delta to c:\\db2bak include logs



7. 查看备份记录


    db2 list history backup all for xcldb



日志相关的知识,下面两文章都有详细说明:


​​DB2日志基本概念​​


​​DB2日志的管理​​



在线备份的恢复有点复杂,另放一篇.