Java SQL server 数据库备份

2025-03-04 15:35 阅读 238 次 评论 0 条
一直想写一个定时执行的数据库备份工具,今天抽时间上网查了相关资料后,实现了一下。
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);
    }
}

打包好后生成jar文件,写好bat文件,方便后面的定时执行。

bat 脚本

打包好后生成 jar 文件,写好 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 数据库备份 | 雨晨博客
分类:JAVA, 程序笔记 标签:,

发表评论


表情