實現DB2數據庫自動備份的實際操作步驟
以下的文章主要描述的是實現DB2數據庫自動備份的實際操作步驟的描述,首先我們是從編寫BAK.java的實際操作代碼開始的,以下就是文章的主要內容的詳細描述,望大家在瀏覽之后會對其有更深的了解。
DB2, 數據庫, 備份數據庫, 自動
步驟如下:
(1) 編寫BAK.java,代碼如下:(一周內周六完備、其他日期增量備份)
- import java.util.Date;
- public class BAK {
- public static void main(String[] args) throws Exception{
- Runtime runtime = Runtime.getRuntime();
斷開數據庫連接
- Process proc = runtime.exec("db2cmd /c db2 force application all");
只保留一天的DB2數據庫自動備份
- runtime.exec("del d:\\backup\\db2bak\\autobak\\DATACTR.0\\ /S /F /Q");
- runtime.exec("del d:\\backup\\db2bak\\autobak\\RONE.0\\ /S /F /Q");
暫停n秒
- Thread.currentThread().sleep(5000);
關閉上述進程
- proc.destroy();
暫停n秒,等待數據庫連接斷開
- Thread.currentThread().sleep(5000);
備份
- proc = runtime.exec("db2cmd db2 backup db DATACTR");
- Thread.currentThread().sleep(5000);
- proc.destroy();
- Date date = new Date();
- int dayOfTheWeek = date.getDay();
- if (dayOfTheWeek != 6){
不是周六,進行增量DB2數據庫自動備份
- proc = runtime.exec("db2cmd db2 backup db yndc incremental");
- proc = runtime.exec("db2cmd /c db2 backup db yndc incremental");
- }
- else{
是周六,進行完全備份
- proc = runtime.exec("db2cmd /c db2 backup db yndc");
- }
- proc = runtime.exec("db2cmd db2 backup db gather");
- proc = runtime.exec("db2cmd /c db2 backup db codebase");
- proc = runtime.exec("db2cmd /c db2 backup db rone");
- proc = runtime.exec("db2cmd db2 backup db datactr");
暫停5秒
- Thread.currentThread().sleep(5000);
- proc.destroy();
- restart db2
- proc = runtime.exec("db2start");
暫停5秒
- Thread.currentThread().sleep(5000);
- proc.destroy();
- runtime.exit(0);
- }
- }
(2)編寫run.bat,編譯BAK.java并執行(注意需設置windows環境變量指向jdk的bin目錄,在cmd下敲入命令"java"能找到這個命令,以支持編譯和執行BAK.java
- javac -deprecation BAK.java
- java BAK
(3)通過windows的任務計劃每天晚上定時調用run.bat進行數據庫備份,譬如每晚22:00
(4)配合winzip軟件可實現數據庫的異機DB2數據庫自動備份,定時將備份目錄壓縮至另一臺機器的硬盤上(可映射成本地機器的網絡硬盤。)
注意:db2 backup命令不支持將備份文件直接備份到網絡硬盤上,將提示無法識別盤符??筛鶕枨筮x擇離線備份或者在線備份。
【編輯推薦】