データベースデータバックアップ

4527 ワード


            
BackupDb.java
    :
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class BackupDb {
public BackupDb() {
}
public String backup() throws IOException {

  BufferedWriter mBufWriter = null;
//    BackupDb.bat  
  FileWriter fileWriter = new FileWriter("BackupDb.bat");
  mBufWriter = new BufferedWriter(fileWriter);
  
  /*
   *           BackupDb.bat   。
   * BackupDbUrl         。
   * pg_dump.exe -U postgres -E utf8 test        。
   * —U postgres         -E utf8         。test     
   * BackupDbName            ,         。
   */
  String BackupDbUrl = "d:\\PostgreSQL8\\bin\\pg_dump.exe -U postgres -E utf8 test >";
  //     
  Date NowTimes = new Date();
  //       yyMMddhhmmss(      ),  200805010043   2008 5 1 0 43 。
  SimpleDateFormat sdf = new SimpleDateFormat("yyMMddhhmmss");
  String BackupDbName = "d:\\" + sdf.format(NowTimes) + ".sql";
  mBufWriter.write(BackupDbUrl);
  mBufWriter.write(BackupDbName);
  mBufWriter.newLine();
  mBufWriter.flush();
  mBufWriter.close();
  try {
   Runtime.getRuntime().exec("BackupDb.bat"); //  BackupDb.bat         
  } catch (Exception e) {
   e.printStackTrace();
  }
  return BackupDbName;
}
}

         timer ,        
TimerUse.java

    :

package yifeng.com.org;
import java.text.SimpleDateFormat;
import java.util.*;
import java.io.*;
public class TimerUse {
public static void main(String[] args) {
  PickTask picktask = new PickTask();
  picktask .start(1, 60); // 60     
}
}
class PickTask {
private Timer timer;
public PickTask() {
  timer = new Timer();
}
private TimerTask task = new TimerTask() {
  public void run() {
   Date date = new Date();
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   String beginDate = sdf.format(date);
   String beginTime = beginDate.substring(11, 16);
   System.out.println(beginDate);
   
   BackupDb bdb=new BackupDb();
   PrintLog pl=new PrintLog();
   //      
   if (beginTime.equals("23:22")) {
    try {
     
     bdb.backup(); //      
     String dbName=bdb.backup().toString(); //         
     String path="d:\\";
     int nameNo=dbName.lastIndexOf("\\");
     File file=new File(path,dbName.substring(nameNo+1, dbName.length()));
     System.out.println(dbName.substring(nameNo+1, dbName.length()));
     //        ,         ,       
     // :       ,      ,            。         
     //   debug                 。
     //             ,      。
     //  :           ,              。
     if(file.exists())
      pl.WriteLog(dbName+"       ");
     else
      pl.WriteLog(dbName+"      ");
     
    } catch (FileNotFoundException e) {
     System.out.println("can not find the file");
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
};
public void start(int delay, int internal) {
  timer.schedule(task, delay * 1000, internal * 1000);
}
}

                :
PrintLog.java

    :
package yifeng.com.org;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class PrintLog {
public PrintLog(){
  
}
public void WriteLog(String log) throws IOException{
  BufferedWriter mbw = null;
// D           log。txt
  FileWriter fileWriter = new FileWriter("D:\\log.txt",true);
  mbw = new BufferedWriter(fileWriter);
  
  Date date=new Date(); 
  SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  String writeTime=sdf.format(date);
  mbw.write(writeTime+"   "); //    
  mbw.write(log);       //      
  mbw.newLine();
  mbw.flush();
  mbw.close(); 
}
}