• 十七、mysql数据库备份


    使用java代码在window环境下实现定时执行Mysql备份与还原

       //备份
        public void doBackup() {
            Date currentTime = new Date();
            System.out.println("当前时间是:" + new Date());
            Runtime runtime = Runtime.getRuntime(); 
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
            String sdfDate = sdf.format(currentTime);
            //备份到的目标文件
            String filePath = "E:\temporary\time_" + sdfDate + ".sql";
            //要执行的命令(%dwz%是环境变量值)
            String cmdStr = "%dwz%mysqldump --defaults-extra-file=%dwz%..\my.ini charm_village > " + filePath;
            try {
                String[] cmd = {"CMD", "/C", cmdStr};
                String[] path = {"dwz=E:\dwz-software\mysql-5.7.27-winx64\bin\"};
                //执行外部程序
                Process process = runtime.exec(cmd, path);
                InputStream errorStream = process.getErrorStream();
                //获取命令执行时的错误信息
                System.err.println(IOUtils.toString(errorStream, "UTF-8"));
                //阻塞当前线程,并等待外部程序中止后获取结果码
                int exitVal  = process.waitFor();
                if(exitVal == 0) {
                    System.out.println("数据库备份成功!");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    关于返回结果类型:Process,它有几个方法:
    1.destroy():杀掉子进程
    2.exitValue():返回子进程的出口值,值 0 表示正常终止
    3.getErrorStream():获取子进程的错误流
    4.getInputStream():获取子进程的输入流
    5.getOutputStream():获取子进程的输出流

    6.waitFor():导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。假设已终止该子进程。此方法马上返回。假设没有终止该子进程,调用的线程将被堵塞。直到退出子进程,依据惯例,0 表示正常终止

    参考文章:

    Mysql:Java代码实现数据库定时备份与还原详解

  • 相关阅读:
    const关键字在C和C++区别
    配置Office DOM组件权限
    SQL-Server新建表,当前日期为表名
    通过css样式给表格tbody加垂直滚动条
    Linq 左连接 left join
    如何在SVN服务器上创建项目
    C# 实现实体类和Xml转换
    C# 导出Excel表格
    SQL语句和EF Group by 用法
    C# fileUpload视频上传
  • 原文地址:https://www.cnblogs.com/zheaven/p/11887286.html
Copyright © 2020-2023  润新知