天天看點

Java SQL server 資料庫備份

作者:白雨青

白雨青工作站:www.byqws.com

一直想寫一個定時執行的資料庫備份工具,今天抽時間上網查了相關資料後,實作了一下

import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class BackupDataBase {
    public void Backup(String back_path,String dbname){
        String name =dbname+"-backup-"+ new SimpleDateFormat("yyyy-MM-dd-HHmmssSSS").format(new Date()); //檔案名
        File file = new File(back_path);
        String path = file.getPath() + File.separator + name + ".bak";// name檔案名 
 
        String bakSql = "BACKUP DATABASE "+dbname+" TO DISK=N'"
            + path + "'"
            + " WITH NOFORMAT, NOINIT, NAME=N'database_test-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS=10";    
        Connectionfactory c = new Connectionfactory();
        Connection conn  = c.getconn();
        
        PreparedStatement ps;
        try {
            ps = conn.prepareStatement(bakSql.toString());
            ps.execute();
            System.out.println("資料庫備份成功!");
            System.out.println("資料庫備份路徑:"+path);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            
            System.out.println("資料庫備份失敗!");
        }
    }
    
    public static void main(String[] args){
        BackupDataBase b = new BackupDataBase();
         
        String back_path = args[0];
        String dbname = args[1];
        
        System.out.println("back_path:"+back_path);
        System.out.println("dbname:"+dbname);
        
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設定日期格式
        long begin = new Date().getTime();
        System.out.println("開始備份資料庫:"+dbname);
        System.out.println("開始時間:"+df.format(new Date()));
        
        b.Backup(back_path,dbname);
        long end = new Date().getTime();
        System.out.println("結束時間:"+df.format(new Date()));
        System.out.println("用時多少秒:"+(end - begin)/1000);
    }
}           

SQL server 的連結類這裡就不放出來了

打包好後生成jar檔案,寫好bat檔案,友善後面的定時執行。

Java SQL server 資料庫備份

bat 代碼:

@echo off
echo 目前CMD預設目錄:%cd%
echo 檔案路徑:%cd%
 
::運作jar檔案 後跟的幾個參數 1、備份路徑 2、備份資料庫
 
 
%cd%\jre\bin\java -jar BackupDataBaseV1.1.jar "F:\\資料庫備份\\POSERP" "POSERP"
 
::pause           

執行界面:

Java SQL server 資料庫備份

繼續閱讀