记录下数据库备份 不保证能用



数据库一般备份命令:

[html]  view plain  copy
  1. //        1.导出结构不导出数据  
  2. //        mysqldump --opt -d 数据库名 -u root -p > xxx.sql  
  3. //        2.导出数据不导出结构  
  4. //        mysqldump -t 数据库名 -uroot -p > xxx.sql   
  5. //        3.导出数据和表结构  
  6. //        mysqldump 数据库名 -uroot -p > xxx.sql   
  7. //        sql4.导出特定表的结构  
  8. //        mysqldump -uroot -p -B 数据库名 --table 表名 > xxx.sql   


基本代码:

[html]  view plain  copy
  1. import org.apache.commons.logging.Log;  
  2. import org.apache.commons.logging.LogFactory;  
  3. import org.springframework.beans.factory.annotation.Autowired;  
  4. import org.springframework.beans.factory.annotation.Value;  
  5.   
  6. import java.io.File;  
  7. import java.io.IOException;  
  8.   
  9. /**  
  10.  * Created by user on 2015/8/7.  
  11.  */  
  12. public class DbbackupTask {  
  13.   
  14.     Log loger = LogFactory.getLog(this.getClass());  
  15.   
  16.     @Value("${host_ip}")  
  17.     private String HOSTIP;//数据库服务器IP  
  18.     @Value("${user_name}")  
  19.     private String USERNAME;//数据库用户  
  20.     @Value("${password}")  
  21.     private String PASSWORD;//数据库密码  
  22.     @Value("${save_path}")  
  23.     private String SAVEPATH;//备份文件路径  
  24.   
  25.     /**  
  26.      * 每隔xxx时间就执行,暂定每天0点  
  27.      */  
  28.     public void dbbackup() {  
  29.         loger.debug("数据库备份开始");  
  30.         String[] databaseName = {"common_db", "logistic_db", "operate_db", "order_db"};  
  31.         String dates = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new java.util.Date());  
  32.         String dated = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());  
  33.         System.out.println(dates);  
  34.         System.out.println(dated);  
  35.         for (Object o : databaseName) {  
  36.             String savePath=SAVEPATH + "/" + dated;  
  37.             String fileName =  o.toString() + dates+".sql";  
  38.             System.out.println(SAVEPATH + "/" + dated + "/" + o.toString() + dates+".sql");  
  39.             exportDatabaseTool(HOSTIP, USERNAME, PASSWORD, savePath,fileName, o.toString());  
  40.         }  
  41.     }  
  42.   
  43.   
  44.     public void exportDatabaseTool(String hostIP, String userName, String password, String savePath,String fileName, String databaseName) {  
  45.         File saveFile = new File(savePath);  
  46.         if (!saveFile.exists()) {// 如果目录不存在  
  47.             saveFile.mkdirs();// 创建文件夹  
  48.         }  
  49.         if (!savePath.endsWith(File.separator)) {  
  50.             savePath = savePath + File.separator;  
  51.         }  
  52.         StringBuilder stringBuilder = new StringBuilder();  
  53.         stringBuilder.append("mysqldump")/*.append(" --opt")*/.append(" -h").append(hostIP);  
  54.         stringBuilder.append(" --user=").append(userName).append(" --password=").append(password).append(" --lock-all-tables=true");  
  55.         stringBuilder.append(" --result-file=").append(savePath+fileName).append(" --default-character-set=utf8 ").append(databaseName);  
  56.         try {  
  57.             Process process = Runtime.getRuntime().exec(stringBuilder.toString());  
  58.             if (process.waitFor() == 0) {// 0 表示线程正常终止。  
  59.                 loger.info("数据库备份成功");  
  60.             }  
  61.         } catch (IOException e) {  
  62.             loger.info("数据库备份异常");  
  63.             e.printStackTrace();  
  64.         } catch (InterruptedException e) {  
  65.             loger.info("数据库备份异常");  
  66.             e.printStackTrace();  
  67.         }  
  68.     }  
  69.   
  70. }  


再加一个定时任务quartz;


同学们可以学习java调用命名,重启tomcat 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值