次のコードに注意-Javaはデータベースのバックアップコマンドを呼び出します
3397 ワード
今日は日差しが明るくて、ダイエットのいい日です.
次のコードに気をつけてください.
正規のDBAがなく、サーバーが単一で、小型プロジェクトの時、いつもデータベースの需要をバックアップします;
データベースの一般的なバックアップコマンド:
基本コード:
タイミングタスクquartzを追加します.
学生たちはjava呼び出しの名前を学び、tomcatを再起動することができます.
次のコードに気をつけてください.
正規のDBAがなく、サーバーが単一で、小型プロジェクトの時、いつもデータベースの需要をバックアップします;
データベースの一般的なバックアップコマンド:
// 1.
// mysqldump --opt -d -u root -p > xxx.sql
// 2.
// mysqldump -t -uroot -p > xxx.sql
// 3.
// mysqldump -uroot -p > xxx.sql
// sql4.
// mysqldump -uroot -p -B --table > xxx.sql
基本コード:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import java.io.File;
import java.io.IOException;
/**
* Created by user on 2015/8/7.
*/
public class DbbackupTask {
Log loger = LogFactory.getLog(this.getClass());
@Value("${host_ip}")
private String HOSTIP;// IP
@Value("${user_name}")
private String USERNAME;//
@Value("${password}")
private String PASSWORD;//
@Value("${save_path}")
private String SAVEPATH;//
/**
* xxx , 0
*/
public void dbbackup() {
loger.debug(" ");
String[] databaseName = {"common_db", "logistic_db", "operate_db", "order_db"};
String dates = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new java.util.Date());
String dated = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());
System.out.println(dates);
System.out.println(dated);
for (Object o : databaseName) {
String savePath=SAVEPATH + "/" + dated;
String fileName = o.toString() + dates+".sql";
System.out.println(SAVEPATH + "/" + dated + "/" + o.toString() + dates+".sql");
exportDatabaseTool(HOSTIP, USERNAME, PASSWORD, savePath,fileName, o.toString());
}
}
public void exportDatabaseTool(String hostIP, String userName, String password, String savePath,String fileName, String databaseName) {
File saveFile = new File(savePath);
if (!saveFile.exists()) {//
saveFile.mkdirs();//
}
if (!savePath.endsWith(File.separator)) {
savePath = savePath + File.separator;
}
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("mysqldump")/*.append(" --opt")*/.append(" -h").append(hostIP);
stringBuilder.append(" --user=").append(userName).append(" --password=").append(password).append(" --lock-all-tables=true");
stringBuilder.append(" --result-file=").append(savePath+fileName).append(" --default-character-set=utf8 ").append(databaseName);
try {
Process process = Runtime.getRuntime().exec(stringBuilder.toString());
if (process.waitFor() == 0) {// 0 。
loger.info(" ");
}
} catch (IOException e) {
loger.info(" ");
e.printStackTrace();
} catch (InterruptedException e) {
loger.info(" ");
e.printStackTrace();
}
}
}
タイミングタスクquartzを追加します.
学生たちはjava呼び出しの名前を学び、tomcatを再起動することができます.