liuyuru 发表于 2013-1-23 01:48:18

Mysql 数据库备份

 
什么是数据库备份
数据库备份是把你的数据备份到硬盘,
一旦系统出问题,如果不备份你就会失去很多有用的数据,
备份以后,即使重装系统也没关系,
你可以用数据恢复,把你需要的数据恢复到你的应用软件里。
 
 
以下是简单的例子(定时备份)
前台:
 
{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     [加载系统配置文件]
*/
@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
 
 
                                备份的数据库名   地址     用户名       密码           备份的路径
 
 
 
页: [1]
查看完整版本: Mysql 数据库备份