1. 程式人生 > >spring boot 定時備份數據庫

spring boot 定時備份數據庫

enc odi artifact exc jar auto imp seconds cal

第一步 :添加mysqldump.exe 進環境變量

技術分享圖片

第二步 新建一個spring boot 項目,連接數據庫

spring.datasource.url=jdbc:mysql://localhost:3308/springbootdb?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=mysql
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

第三步 添加相關需要的jar

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>runtime</scope>
</dependency>
<!-- quartz -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

第四步 創建定時任務

    /**
     * 執行定時任務
     */
    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
        // TODO Auto-generated method stub
        System.out.println("執行定時任務》》》"+new Date());
        String filePath="D:\\數據庫文件\\";
        String dbName
="springbootdb";//備份的數據庫名 String username="root";//用戶名 String password="mysql";//密碼 File uploadDir = new File(filePath); if (!uploadDir.exists()) uploadDir.mkdirs(); String cmd = "mysqldump -u"+ username +" -p "+password + dbName + " -r " + filePath + "/" + dbName+new java.util.Date().getTime()+ ".sql"; try { Process process = Runtime.getRuntime().exec(cmd); System.out.println("備份數據庫成功!!!"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }

第五步 配置quartz,設置每10秒執行一次定時任務

@Configuration
public class QuartzConfig {
    @Bean
    public JobDetail teatQuartzDetail(){
        return JobBuilder.newJob(TestQuartz.class).withIdentity("testQuartz").storeDurably().build();
    }

    @Bean
    public Trigger testQuartzTrigger(){
        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
                .withIntervalInSeconds(10)  //設置時間周期單位秒
                .repeatForever();
        return TriggerBuilder.newTrigger().forJob(teatQuartzDetail())
                .withIdentity("testQuartz")
                .withSchedule(scheduleBuilder)
                .build();
    }

}

第六步 運行項目

技術分享圖片

備份成功!!!!!!!!!!!!!!!!!!!!

技術分享圖片

github項目地址 copyDatabase

spring boot 定時備份數據庫