Mysql 数据库备份

jacklife 2010-11-05

什么是数据库备份

数据库备份是把你的数据备份到硬盘,

一旦系统出问题,如果不备份你就会失去很多有用的数据,

备份以后,即使重装系统也没关系,

你可以用数据恢复,把你需要的数据恢复到你的应用软件里。

以下是简单的例子(定时备份)

前台:

{text:' 备份',iconCls:"backup",handler:function(){

    Ext.MessageBox.confirm("请选择","确定要备份数据库信息",function(button,text){

    if(button == "yes"){

    Ext.Ajax.request({

    url:"teachers.0905?method=doBackUp",

    method:'post',

    success:function(r,a){

    var o =eval("("+r.responseText+")");

    if(o.success){

    Ext.Msg.alert("温馨提示",o.msg);

    store.reload();

    }else{

    Ext.Msg.alert("温馨提示",o.msg);

    }

      }

    });

    }

    });

   }}

后台:

1,ActionServlet.java类

        public static String  backDB= null;              // 数据库备份路径

/**

* 〈系统初始化,加载配置文件〉

* @param [config]     [加载系统配置文件]

*/

@Override

public void init(ServletConfig config) throws ServletException {

backDB = getRealPath(config, "backupDB");

}

private String getRealPath(ServletConfig config, String filePath) {

             return config.getServletContext().getRealPath(filePath);

       }

2,TeacherAction.java类

 public void doBackUp(HttpServletRequest request,

           HttpServletResponse response) throws ServletException, IOException{

       String fileName=databaseDAO.backup();  //数据库备份成功了   得到文件名

       BackupDB backupDB=new BackupDB();

       backupDB.setId(UUIDUtil.getId());

       backupDB.setFileName(fileName);

       backupDB.setTime(DateTimeUtil.getDateTime("yyyy_MM_dd_HH:mm:ss"));  //备份的时间

       response.getWriter().print("{success:true,msg:'备份成功!'}");

 }

3,DataDao.java类

 /**

     * 数据库备份

     */

    public String backup(){

        StringBuffer fileName=new StringBuffer();

        fileName.append("MySQL_jmsteam_")

                .append(DateTimeUtil.getDateTime("yyyyMMddHHmmss"))

                .append(".sql");

        StringBuffer filePath=new StringBuffer();

        filePath.append(ActionServlet.backDB)

                .append("\\")

                .append(fileName);

        try {

            Runtime.getRuntime().exec(getBackupCommand(filePath.toString()));

        } catch (IOException e) {

            e.printStackTrace();

        }

        return fileName.toString();     

    }

 /**

     * 得到备份数据库的命令

     * @param filePath

     * @return

     */

    public String getBackupCommand(String filePath){

        StringBuffer command=new StringBuffer();

        command.append("cmd /c mysqldump ")

               .append("addresslist")

               .append(" -h ")

               .append("192.168.2.127")

               .append(" -u")

               .append("root")

               .append(" -p")

               .append("lxit0905")

               .append(" --default-character-set=utf8")

               .append(" --single-transaction")

               .append(" > ")   

               .append(filePath);

        return command.toString();

    }

其实最主要的就是这一条sql命令:

/cmd /c mysqldump addresslist -h localhost -uroot -p lxit0905 > F:\data.sql

                                备份的数据库名   地址     用户名       密码           备份的路径

相关推荐