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
备份的数据库名 地址 用户名 密码 备份的路径