实现DB2数据库自动备份的实际操作步骤


  本文标签:DB2数据库自动备份

  以下的文章主要描述的是实现DB2数据库自动备份的实际操作步骤的描述,首先我们是从编写BAK.java的实际操作代码开始的,以下就是文章的主要内容的详细描述,望大家在浏览之后会对其有更深的了解  。

  DB2, 数据库, 备份数据库, 自动

  

  步骤如下:

  

  (1) 编写BAK.java,代码如下:(一周内周六完备、其他日期增量备份)

  1. import java.util.Date;  
  2. public class BAK {  
  3. public static void main(String[] args) throws Exception{  
  4. Runtime runtime = Runtime.getRuntime();  

  断开数据库连接

  1. Process proc = runtime.exec("db2cmd /c db2 force application all"); 

  只保留一天的DB2数据库自动备份

  1. runtime.exec("del d:\\backup\\db2bak\\autobak\\DATACTR.0\\ /S /F /Q");  
  2. runtime.exec("del d:\\backup\\db2bak\\autobak\\RONE.0\\ /S /F /Q");  

  暂停n秒

  1. Thread.currentThread().sleep(5000); 

  关闭上述进程

  1. proc.destroy(); 

  暂停n秒,等待数据库连接断开

  1. Thread.currentThread().sleep(5000); 

  备份

  1. proc = runtime.exec("db2cmd db2 backup db DATACTR");  
  2. Thread.currentThread().sleep(5000);  
  3. proc.destroy();   
  4. Date date = new Date();  
  5. int dayOfTheWeek = date.getDay();  
  6. if (dayOfTheWeek != 6){  

  不是周六,进行增量DB2数据库自动备份

  1.  proc = runtime.exec("db2cmd db2 backup db yndc incremental");  
  2. proc = runtime.exec("db2cmd /c db2 backup db yndc incremental");  
  3. }  
  4. else{  

  是周六,进行完全备份

  1. proc = runtime.exec("db2cmd /c db2 backup db yndc");  
  2. }  
  3. proc = runtime.exec("db2cmd db2 backup db gather");  
  4. proc = runtime.exec("db2cmd /c db2 backup db codebase");  
  5. proc = runtime.exec("db2cmd /c db2 backup db rone");  
  6. proc = runtime.exec("db2cmd db2 backup db datactr");  

  暂停5秒

  1. Thread.currentThread().sleep(5000);  
  2. proc.destroy();  
  3. restart db2  
  4. proc = runtime.exec("db2start");  

  暂停5秒

  1. Thread.currentThread().sleep(5000);  
  2. proc.destroy();  
  3. runtime.exit(0);  
  4. }  
  5. }  

  (2)编写run.bat,编译BAK.java并执行(注意需设置windows环境变量指向jdk的bin目录,在cmd下敲入命令"java"能找到这个命令,以支持编译和执行BAK.java

  1. javac -deprecation BAK.java  
  2. java BAK  

  (3)通过windows的任务计划每天晚上定时调用run.bat进行数据库备份,譬如每晚22:00

  (4)配合winzip软件可实现数据库的异机DB2数据库自动备份,定时将备份目录压缩至另一台机器的硬盘上(可映射成本地机器的网络硬盘  。)

  注意:db2 backup命令不支持将备份文件直接备份到网络硬盘上,将提示无法识别盘符  。可根据需求选择离线备份或者在线备份  。