再好的服務器都會出事,我們用的ibm的服務,有個客戶的服務器在一周內出事8次,數據庫的服務器出事,oracle中的數據全沒有,我們備份的數據再數據庫的機子上,結果機子起不來,后來為了防止機子再出現問題,我就再3個計算機上做備份,這樣不會3個機子上都會出問題。不過問題又出來了,每天都備份再3個機子上,那么多備份的文件若不及時刪掉,保留再機子也是特別占地方的。
我就寫了個java程序,刪除2天前的文件,然后再備份數據庫,這樣就不會很多數據庫備份文件。
import java.io.File;
import java.util.Calendar;
public class BakDate {
?String name[] = { "fzept", "ndept", "npept", "ptept", "lyept", "zzept" };
?public static void main(String[] args) throws InterruptedException {
??BakDate bakDate = new BakDate();
??String file = "F:/wang/bat";
??String file1 = "F:/wang";
??bakDate.runbatFile(file);
??????? bakDate.deleteOldFile(file1);
?}
?public void runbatFile(String strOldFilePath) {
??try {
???Runtime rt = Runtime.getRuntime();
???Process ps = null;
???String filename[] = new String[name.length];
???for (int i = 0; i < name.length; i++) {
????filename[i] = strOldFilePath + "/" + name[i] + ".bat";
????ps = rt.exec("cmd.exe /C start " + filename[i]);
????ps.waitFor();
???}
??} catch (Exception e) {
???System.out.println("OracleTableChecker : rebuildDb Error!!!");
???e.printStackTrace();
??}
?}
?public void deleteOldFile(String strOldFilePath) {
??Calendar today = Calendar.getInstance();
??today.add(Calendar.DAY_OF_MONTH, -2);
??String now = today.get(Calendar.YEAR) + "-"
????+ (today.get(Calendar.MONTH) + 1) + "-"
????+ today.get(Calendar.DATE);
??String filename[] = new String[name.length];
??for (int i = 0; i < name.length; i++) {
???filename[i] = name[i] + now + ".DMP";
??}
??for (int i = 0; i < filename.length; i++) {
???new File(strOldFilePath + "/" + filename[i]).delete();
??}
?}
}