java備份資料庫
將Mysql中的資料庫導出到文件中 備份
import java.io.*;
import java.lang.*;
public class BeiFen {
public static void main(String[] args) {
// 資料庫導出
String user = "root"; // 資料庫帳號
String password = "root"; // 登陸密碼
String database = "test"; // 需要備份的資料庫名
String filepath = "e:\\test.sql"; // 備份的路徑地址
String stmt1 = "mysqlmp " + database + " -u " + user + " -p"
+ password + " --result-file=" + filepath;
/*
* String mysql="mysqlmp test -u root -proot
* --result-file=d:\\test.sql";
*/
try {
Runtime.getRuntime().exec(stmt1);
System.out.println("數據已導出到文件" + filepath + "中");
}
catch (IOException e) {
e.printStackTrace();
}
}
}
將數據從磁碟上的文本文件還原到MySql中的資料庫
import java.io.*;
import java.lang.*;
/*
* 還原MySql資料庫
* */
public class Recover {
public static void main(String[] args) {
String filepath = "d:\\test.sql"; // 備份的路徑地址
//新建資料庫test
String stmt1 = "mysqladmin -u root -proot create test";
String stmt2 = "mysql -u root -proot test < " + filepath;
String[] cmd = { "cmd", "/c", stmt2 };
try {
Runtime.getRuntime().exec(stmt1);
Runtime.getRuntime().exec(cmd);
System.out.println("數據已從 " + filepath + " 導入到資料庫中");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ⅱ java裡面的sql資料庫備份代碼怎麼寫的
直接用SQL語句(完全備份):
backup
database
資料庫
to
disk='c:\你的備份文件名'
Ⅲ java中 sql資料庫備份代碼怎麼寫
最簡單的SQL語句:備份與還原SQL Server自帶的資料庫
在伺服器上備份:
use Northwind
Backup database Northwind to disk='d:\Northwind_bak.dat' with init
RESTORE DATABASE NorthNwind FROM DISK = 'd:\Northwind_bak.dat'
備份資料庫這一操作在客戶機上實現
客戶機:machine
共享目錄:share (要完全共享,可寫許可權)
backup:
bakcup database dbname to disk='\\machine\share\data.bak' with init
\\machine\share目錄要有寫許可權。
restore:
restore database dbname from disk='\\machine\share\data.bak'
//
備註:restore 語句有很多的選項,可以查看企業管理器的在線幫助。如下
with replace, move 'dbname_dat' to 'c:\mssql7\data\dbname.mdf',
move 'dbname_log' to 'c:\mssql7\data\dbname.log'
其中'c:\mssql7\data\'是伺服器的目錄,這點要注意
備份與還原資料庫的相關內容:
SQL Server 7.0資料庫備份有四種:完全資料庫備份、增量資料庫備份、事務日誌備份、資料庫文件或文件組備份。在資料庫崩潰時,應該首先嘗試備份事務日誌(這一點很重要),然後恢復最後的資料庫備份、該次資料庫備份後的所有增量備份,最後恢復事務日誌備份,這樣可以將資料庫恢復到崩潰前的狀態。
備份是定期的,而不是實時的,所以利用備份並不能完全恢復資料庫,它只能將資料庫恢復到製作備份的那一刻 ...... 資料庫日誌是實時的,他忠實的記錄下所有對資料庫的更新操作。因此,當磁碟出現故障造成資料庫損壞時,就可以首先利用備份恢復資料庫(大部分數據),然後運行資料庫日誌,即將備份後所做的操作重新在做一遍,從而將資料庫完全恢復。
--備份完整的資料庫---------------------------------------------------------------
//創建一個備份設備:
1. Create the backup device for the full MyNwind backup.///
USE master
EXEC sp_admpdevice 'disk', 'MyNwind_2', 'c:\mssql7\backup\MyNwind_2.dat'
2. Back up the full MyNwind database.
BACKUP DATABASE MyNwind TO MyNwind_2
--備份資料庫的日誌---------------------------------------------------------------
--1. Create the log backup device.
USE master
EXEC sp_admpdevice 'disk', 'MyNwindLog1', 'c:\mssql7\backup\MyNwindLog1.dat'
--2. Update activity has occurred before this point. Back up the log of the MyNwind database.
BACKUP LOG MyNwind TO MyNwindLog1
try
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('backup database pubs');
AdoQuery1.SQL.Add('to disk='+''''+edtPath.Text+'''');
AdoQuery1.ExecSQL;
except
ShowMessage('備份資料庫失敗!');
exit;
end;
SQL server的備份
=========================================================================
=========================================================================
備份:
with adocommand_restore do//用ADocommand控制項
begin
CommandText:='use Master';//
Execute;
CommandText:='execute sp_helpdevice';//系統存儲過程
Execute ;
CommandText:='backup database '+'db_name'+' to disk='''+FileName+''' with init';//這行應當是這樣
Execute ;
CommandText:='Use '+'db_name';//這行應當是這樣
Execute ;
application.MessageBox('已經成功備份資料庫','資料庫備份',MB_OK + MB_ICONINFORMATION);
end;
恢復:
with adocommand1 do//用AdoCommand控制項
begin
CommandText:='use Master';
Execute;
CommandText:='execute sp_helpdevice';
Execute ;
CommandText:='Restore database '+'db_name'+' From disk='''+'c:\data1.bak'+''' with replace';//這行應當是這樣
Execute ;
CommandText:='Use '+'db_name';//這行應當是這樣
Execute ;
application.MessageBox('已經成功恢復資料庫','資料庫恢復',MB_OK + MB_ICONINFORMATION);
end;
*註:db_name指資料庫的名稱
Ⅳ JAVA程序怎樣實現Oracle資料庫備份和還原
oracle的備份和還原可以用命令行來實現
備份 exp system/manager@TEST file=d:chu.dmp full=y
還原imp system/manager@TEST file=d:chu.dmp
將上面的備份、還原命令可以新建成bat文件。然後在java中可以運行bat文件
Runtime.getRuntime().exec("cmd.exe/CstartD:\test.bat");
這樣就實現了oracle的備份與還原。當然這里只是提供一個大概的思路,實際運用中可能需要備份某些數據,還原到其他資料庫等。
Ⅳ java 備份mysql資料庫
備份MySQL資料庫的方法:
import java.io.File;
import java.io.IOException;
/**
* MySQL資料庫備份
*
* @author GaoHuanjie
*/
public class MySQLDatabaseBackup {
/**
* Java代碼實現MySQL資料庫導出
*
* @author GaoHuanjie
* @param hostIP MySQL資料庫所在伺服器地址IP
* @param userName 進入資料庫所需要的用戶名
* @param password 進入資料庫所需要的密碼
* @param savePath 資料庫導出文件保存路徑
* @param fileName 資料庫導出文件文件名
* @param databaseName 要導出的資料庫名
* @return 返回true表示導出成功,否則返回false。
*/
public static boolean 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("mysqlmp").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 表示線程正常終止。
return true;
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
return false;
}
public static void main(String[] args) throws InterruptedException {
if (exportDatabaseTool("172.16.0.127", "root", "123456", "D:/backupDatabase", "2014-10-14.sql", "test")) {
System.out.println("資料庫備份成功!!!");
} else {
System.out.println("資料庫備份失敗!!!");
}
}
}
Ⅵ 怎麼用java備份mysql資料庫
首先,設置mysql的環境變數(在path中添加%MYSQL_HOME%\bin),重啟電腦。
完整代碼:
備份:
public static void main(String[] args) {
backup();
load();
}
public static void backup() {
try {
Runtime rt = Runtime.getRuntime();
// 調用 mysql 的 cmd:
Process child = rt
.exec("mysqlmp -u root --set-charset=utf8 bjse act_obj");// 設置導出編碼為utf8。這里必須是utf8
// 把進程執行中的控制台輸出信息寫入.sql文件,即生成了備份文件。註:如果不對控制台信息進行讀出,則會導致進程堵塞無法運行
InputStream in = child.getInputStream();// 控制台的輸出信息作為輸入流
InputStreamReader xx = new InputStreamReader(in, "utf8");// 設置輸出流編碼為utf8。這里必須是utf8,否則從流中讀入的是亂碼
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
// 組合控制台輸出信息字元串
BufferedReader br = new BufferedReader(xx);
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "\r\n");
}
outStr = sb.toString();
// 要用來做導入用的sql目標文件:
FileOutputStream fout = new FileOutputStream(
"e:/mysql-5.0.27-win32/bin/bjse22.sql");
OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");
writer.write(outStr);
// 註:這里如果用緩沖方式寫入文件的話,會導致中文亂碼,用flush()方法則可以避免
writer.flush();
// 別忘記關閉輸入輸出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void load() {
try {
String fPath = "e:/mysql-5.0.27-win32/bin/bjse22.sql";
Runtime rt = Runtime.getRuntime();
// 調用 mysql 的 cmd:
Process child = rt.exec("mysql -u root bjse ");
OutputStream out = child.getOutputStream();//控制台的輸入信息作為輸出流
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(fPath), "utf8"));
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "\r\n");
}
outStr = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
writer.write(outStr);
// 註:這里如果用緩沖方式寫入文件的話,會導致中文亂碼,用flush()方法則可以避免
writer.flush();
// 別忘記關閉輸入輸出流
out.close();
br.close();
writer.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
備份語句:
mysql> SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',
' from db_testtemp where std_state='1';
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',
' from db_testtemp ;
Query OK, 2 rows affected (0.00 sec)
只生成一個只有數據的.txt:SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',' lines terminated by '\r\n' from db_testtemp ;
只生成一個只有數據的.txt:mysqlmp -uroot -pncae2010 -w "std_state='1'" -T D:\data --no-create-info --fields-terminated-by=, exam db_testtemp
生成一個創建資料庫語句的.sql,一個只有數據的.txt:mysqlmp -uroot -pncae2010 -w "std_state='1'" -T D:\data --fields-terminated-by=, exam db_testtemp
只生成insert語句:mysqlmp -uroot -pncae2010 -w "std_state='1'" -t exam db_testtemp > D:\data\a.sql
Ⅶ java中備份Mysql
1.首先設置環境變數:有兩種方式。第一種,在環境變數中添加MYSQL_HOME,設置內容為mysql的安裝路徑,然後,在path中添加路徑%MYSQL_HOME%in。第二種方法,不新建MYSQL_HOME,而是直接在path中添加mysql安裝路徑in。這樣,調用cmd的時候可以直接找到mysqlmp和mysql命令了。
2.現在編寫JAVA方法類來實現資料庫的備份和還原。代碼如下:
importjava.io.IOException;
publicclassdb_deal{
privatestaticStringstr=null;
publicstaticvoidbackup(){
//使用mysqlmp來備份資料庫,格式「mysqlmp-uusername-pPassword--optdatabase_name>direction/backup_name.sql」
str="mysqlmp-uroot-proot--opthjh>d:/test.sql";
try{
Runtimert=Runtime.getRuntime();
rt.exec("cmd/c"+str);
//Runtime.getRuntime().exec()這個方法可以實現對命令的調用。具體內容看API
//上面可以cmd調用控制台,然後執行str中的字元串表示的命令。
System.out.println("successly!");
}catch(IOExceptione){
e.printStackTrace();
System.out.println("somethingwrong!");}
}
publicstaticvoidload(){
str="mysql-uroot-prootj2603<d:/test.sql";
//mysql命令可以實現資料庫的還原。格式「mysql-uUsername-pPassworddatabase_name<back_up_dir」
Runtimert=Runtime.getRuntime();
try{
rt.exec("cmd/c"+str);
System.out.println("restoresuccessly!");
}catch(IOExceptione){
e.printStackTrace();
System.out.println("restorefail!");
}
}
}
3.最後要備份的地方給這個類實例化,然後調用backup(),load()來實現mysql資料庫的簡單備份跟還原。
Ⅷ 如何使用java程序備份和恢復MySql資料庫
java用開源的ssh jar包連接到b伺服器執行備份/恢復命令,同樣通過命令也可以獲取到備份的文件信息,恢復資料庫也是一樣的,通過命令把文件傳輸到b伺服器,通過命令進行還原
Ⅸ 怎樣使用java代碼實現資料庫表的自動備份
將MySql中的資料庫導出到文件中 備份
import java.io.*;
import java.lang.*;
public class BeiFen {
public static void main(String[] args) {
// 資料庫導出
String user = "root"; // 資料庫帳號
String password = "root"; // 登陸密碼
String database = "test"; // 需要備份的資料庫名
String filepath = "e:\\test.sql"; // 備份的路徑地址
String stmt1 = "mysqlmp " + database + " -u " + user + " -p"
+ password + " --result-file=" + filepath;
/*
* String mysql="mysqlmp test -u root -proot
* --result-file=d:\\test.sql";
*/
try {
Runtime.getRuntime().exec(stmt1);
System.out.println("數據已導出到文件" + filepath + "中");
}
catch (IOException e) {
e.printStackTrace();
}
}
}
將數據從磁碟上的文本文件還原到MySql中的資料庫
import java.io.*;
import java.lang.*;
/*
* 還原MySql資料庫
* */
public class Recover {
public static void main(String[] args) {
String filepath = "d:\\test.sql"; // 備份的路徑地址
//新建資料庫test
String stmt1 = "mysqladmin -u root -proot create test";
String stmt2 = "mysql -u root -proot test < " + filepath;
String[] cmd = { "cmd", "/c", stmt2 };
try {
Runtime.getRuntime().exec(stmt1);
Runtime.getRuntime().exec(cmd);
System.out.println("數據已從 " + filepath + " 導入到資料庫中");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ⅹ javaweb如何備份資料庫
類JavaMysql備份還原資料庫
importjava.io.File;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.Properties;
publicclassJavaMysql{
/*
*備份資料庫1、讀取配置文件2、啟動智能查詢Mysql安裝目錄3、備份資料庫為sql文件
*/
publicstaticvoidbackup(Stringsql){
Propertiespros=getPprVue("prop.properties");
Stringusername=pros.getProperty("username");
Stringpassword=pros.getProperty("password");
CheckSoftwarec=null;
try{
System.out.println("MySQL服務安裝地址:"+c.check().toString());
}catch(Exceptione2){
e2.printStackTrace();
}
Stringmysqlpaths;
try{
mysqlpaths=c.check().toString()+"bin"+"\";
StringdatabaseName=pros.getProperty("databaseName");
Stringaddress=pros.getProperty("address");
Stringsqlpath=pros.getProperty("sql");
Filebackupath=newFile(sqlpath);
if(!backupath.exists()){
backupath.mkdir();
}
StringBuffersb=newStringBuffer();
sb.append(mysqlpaths);
sb.append("mysqlmp");
sb.append("--opt");
sb.append("-h");
sb.append(address);
sb.append("");
sb.append("--user=");
sb.append(username);
sb.append("");
sb.append("--password=");
sb.append(password);
sb.append("");
sb.append("--lock-all-tables=true");
sb.append("--result-file=");
sb.append(sqlpath);
sb.append(sql);
sb.append("");
sb.append("--default-character-set=utf8");
sb.append(databaseName);
System.out.println("cmd指令:"+sb.toString());
Runtimecmd=Runtime.getRuntime();
try{
Processp=cmd.exec(sb.toString());
}catch(IOExceptione){
e.printStackTrace();
}
}catch(Exceptione1){
e1.printStackTrace();
}
}
/*
*讀取屬性文件
*/
(StringproperName){
InputStreaminputStream=JavaMysql.class.getClassLoader()
.getResourceAsStream(properName);
Propertiesp=newProperties();
try{
p.load(inputStream);
inputStream.close();
}catch(IOExceptione){
e.printStackTrace();
}
returnp;
}
/*
*根據備份文件恢復資料庫
*/
publicstaticvoidload(Stringfilename){
Propertiespros=getPprVue("prop.properties");
Stringroot=pros.getProperty("jdbc.username");
Stringpass=pros.getProperty("jdbc.password");
Stringmysqlpaths=c.check().toString()+"bin"+"\";
Stringsqlpath=pros.getProperty("sql");
Stringfilepath=mysqlpaths+sqlpath+filename;//備份的路徑地址
Stringstmt1=mysqlpaths+"mysqladmin-u"+root+"-p"+pass
+"createfinacing";//-p後面加的是你的密碼
Stringstmt2=mysqlpaths+"mysql-u"+root+"-p"+pass
+"finacing<"+filepath;
String[]cmd={"cmd","/c",stmt2};
try{
Runtime.getRuntime().exec(stmt1);
Runtime.getRuntime().exec(cmd);
System.out.println("數據已從"+filepath+"導入到資料庫中");
}catch(IOExceptione){
e.printStackTrace();
}
}
/*
*Test測試
*/
publicstaticvoidmain(String[]args)throwsIOException{
backup("2221.sql");
}
}