實(shí)現(xiàn)DB2數(shù)據(jù)庫(kù)自動(dòng)備份的實(shí)際操作步驟
以下的文章主要描述的是實(shí)現(xiàn)DB2數(shù)據(jù)庫(kù)自動(dòng)備份的實(shí)際操作步驟的描述,首先我們是從編寫(xiě)B(tài)AK.java的實(shí)際操作代碼開(kāi)始的,以下就是文章的主要內(nèi)容的詳細(xì)描述,望大家在瀏覽之后會(huì)對(duì)其有更深的了解。
DB2, 數(shù)據(jù)庫(kù), 備份數(shù)據(jù)庫(kù), 自動(dòng)
步驟如下:
(1) 編寫(xiě)B(tài)AK.java,代碼如下:(一周內(nèi)周六完備、其他日期增量備份)
- import java.util.Date;
- public class BAK {
- public static void main(String[] args) throws Exception{
- Runtime runtime = Runtime.getRuntime();
斷開(kāi)數(shù)據(jù)庫(kù)連接
- Process proc = runtime.exec("db2cmd /c db2 force application all");
只保留一天的DB2數(shù)據(jù)庫(kù)自動(dòng)備份
- 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);
關(guān)閉上述進(jìn)程
- proc.destroy();
暫停n秒,等待數(shù)據(jù)庫(kù)連接斷開(kāi)
- 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){
不是周六,進(jìn)行增量DB2數(shù)據(jù)庫(kù)自動(dòng)備份
- proc = runtime.exec("db2cmd db2 backup db yndc incremental");
- proc = runtime.exec("db2cmd /c db2 backup db yndc incremental");
- }
- else{
是周六,進(jìn)行完全備份
- 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)編寫(xiě)run.bat,編譯BAK.java并執(zhí)行(注意需設(shè)置windows環(huán)境變量指向jdk的bin目錄,在cmd下敲入命令"java"能找到這個(gè)命令,以支持編譯和執(zhí)行BAK.java
- javac -deprecation BAK.java
- java BAK
(3)通過(guò)windows的任務(wù)計(jì)劃每天晚上定時(shí)調(diào)用run.bat進(jìn)行數(shù)據(jù)庫(kù)備份,譬如每晚22:00
(4)配合winzip軟件可實(shí)現(xiàn)數(shù)據(jù)庫(kù)的異機(jī)DB2數(shù)據(jù)庫(kù)自動(dòng)備份,定時(shí)將備份目錄壓縮至另一臺(tái)機(jī)器的硬盤(pán)上(可映射成本地機(jī)器的網(wǎng)絡(luò)硬盤(pán)。)
注意:db2 backup命令不支持將備份文件直接備份到網(wǎng)絡(luò)硬盤(pán)上,將提示無(wú)法識(shí)別盤(pán)符??筛鶕?jù)需求選擇離線備份或者在線備份。
【編輯推薦】