當前位置:首頁 » 編程語言 » java備份資料庫

java備份資料庫

發布時間: 2022-07-06 10:04:07

Ⅰ 如何用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");
}
}
熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726