关闭

db2数据库自动备份方法

标签: db2数据库cmdexceptiondatewindows
1893人阅读 评论(1) 收藏 举报
步骤如下:
(1) 编写BAK.java,代码如下:(一周内周六完备、其他日期增量备份)
import java.util.Date;

public class BAK {
  public static void main(String[] args) throws Exception{
    Runtime runtime = Runtime.getRuntime();
    //断开数据库连接
    Process proc = runtime.exec("db2cmd /c db2 force application all");

    //只保留一天的备份
    //runtime.exec("del d://backup//db2bak//autobak//DATACTR.0// /S /F /Q");
    //runtime.exec("del d://backup//db2bak//autobak//RONE.0// /S /F /Q");
    //---------------------------------------------------------------
    //暂停n秒
    Thread.currentThread().sleep(5000);
    //关闭上述进程
    //proc.destroy();
    //--------------------------------------
    //暂停n秒,等待数据库连接断开
    //Thread.currentThread().sleep(5000);
    //备份
    //proc = runtime.exec("db2cmd db2 backup db DATACTR");
    //Thread.currentThread().sleep(5000);
    //proc.destroy();
    //--------------------------------------
    Date date = new Date();
    int dayOfTheWeek = date.getDay();
    if (dayOfTheWeek != 6){
        //不是周六,进行增量备份
//        proc = runtime.exec("db2cmd db2 backup db yndc incremental");
          proc = runtime.exec("db2cmd /c db2 backup db yndc incremental");
    }
    else{
        //是周六,进行完全备份
        proc = runtime.exec("db2cmd /c db2 backup db yndc");
    }
    //proc = runtime.exec("db2cmd db2 backup db gather");
    proc = runtime.exec("db2cmd /c db2 backup db codebase");
    proc = runtime.exec("db2cmd /c db2 backup db rone");
    //proc = runtime.exec("db2cmd db2 backup db datactr");

    //暂停5秒
    //Thread.currentThread().sleep(5000);
    //proc.destroy();
    //--------------------------------------
    //restart db2
    //proc = runtime.exec("db2start");
    //暂停5秒
    //Thread.currentThread().sleep(5000);
    //proc.destroy();
    //--------------------------------------
    runtime.exit(0);
  }
}

(2)编写run.bat,编译BAK.java并执行(注意需设置windows环境变量指向jdk的bin目录,在cmd下敲入命令"java"能找到这个命令,以支持编译和执行BAK.java
javac -deprecation BAK.java
java BAK

(3)通过windows的任务计划每天晚上定时调用run.bat进行数据库备份,譬如每晚22:00

(4)配合winzip软件可实现数据库的异机备份,定时将备份目录压缩至另一台机器的硬盘上(可映射成本地机器的网络硬盘。)

注意:db2 backup命令不支持将备份文件直接备份到网络硬盘上,将提示无法识别盘符
可根据需求选择离线备份或者在线备份。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:126758次
    • 积分:1726
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:49篇
    • 译文:0篇
    • 评论:23条
    文章分类
    最新评论
    BLOG链接