如何使用java程序备份和恢复MySql数据库?
java用开源的ssh jar包连接到b服务器执行备份/恢复命令,同样通过命令也可以获取到备份的文件信息,恢复数据库也是一样的,通过命令把文件传输到b服务器,通过命令进行还原
如何用Java实现MySQL数据库的备份和恢复
直接黏贴在IDEA上按格式查看
package com.liuzy.javaopen.servlet;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;public class Test {public static void main(String[] args) throws IOException{backup(“d:\\d.sql”);//recover(“d:\\d.sql”);}public static void backup(String path) throws IOException{Runtime runtime = Runtime.getRuntime();//-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字Process process = runtime.exec(“mysqldump -u root -pmysql goldenwing”);InputStream inputStream = process.getInputStream();//得到输入流,写成.sql文件InputStreamReader reader = new InputStreamReader(inputStream);BufferedReader br = new BufferedReader(reader);String s = null;StringBuffer sb = new StringBuffer();while((s = br.readLine()) != null){sb.append(s+”\r\n”);}s = sb.toString();System.out.println(s);File file = new File(path);file.getParentFile().mkdirs();FileOutputStream fileOutputStream = new FileOutputStream(file);fileOutputStream.write(s.getBytes());fileOutputStream.close();br.close();reader.close();inputStream.close();}public static void recover(String path) throws IOException{Runtime runtime = Runtime.getRuntime();//-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字,–default-character-set=utf8,这句话一定的加//我就是因为这句话没加导致程序运行成功,但是数据库里面的内容还是以前的内容,最好写上完成的sql放到cmd中一运行才知道报错了//错误信息://mysql: Character set ‘utf-8’ is not a compiled character set and is not specified in the ‘//C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\Index.xml’ file ERROR 2019 (HY000): Can’t// initialize character set utf-8 (path: C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\),//又是讨人厌的编码问题,在恢复的时候设置一下默认的编码就可以了。Process process = runtime.exec(“mysql -u root -pmysql –default-character-set=utf8 goldenwing”);OutputStream outputStream = process.getOutputStream();BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));String str = null;StringBuffer sb = new StringBuffer();while((str = br.readLine()) != null){sb.append(str+”\r\n”);}str = sb.toString();System.out.println(str);OutputStreamWriter writer = new OutputStreamWriter(outputStream,”utf-8″);writer.write(str);writer.flush();outputStream.close();br.close();writer.close();}}
JAVA程序怎样实现Oracle数据库备份和还原
oracle的备份和还原可以用命令行来实现
备份 exp system/manager@TEST file=d:\daochu.dmp full=y
还原 imp system/manager@TEST file=d:\daochu.dmp
将上面的备份、还原命令可以新建成bat文件。然后在java中可以运行bat文件
Runtime.getRuntime().exec(“cmd.exe /C start D:\\test.bat”);
这样就实现了oracle的备份与还原。当然这里只是提供一个大概的思路,实际运用中可能需要备份某些数据,还原到其他数据库等。
用java代码实现Oracle数据库的备份与恢复(保存为.dmp或.sql)
备份:发送sql给mssqlserver:
backup database your database name to disk=’备份文件名’ with init
注意: 1.备份文件名必须为绝对路径,
2.备份文件只能是mssqlserver所在的机器上的路径, mssql支持备份到网络位置。
恢复:
restore database your database name from disk=’备份文件名’ with replace
要注意的是执行restore database时,要恢复的数据库必须没有任何客户端连接,包括自身(发起restore database命令的连接)。发使用restore,可以连接到master库,然后再发送restore命令。
否则,一定失败。
在jsp中如何用呢
————————————————————————————– 你用这个了!
%
先要连接上Connection对象!
就是要先和数据库建立起连接
然后在jsp页面中直接用我这样的语句就可以了
try{
String sql=”backup database xncsims to disk=’d:\\xncback.dat'”;
st=con.createStatement();
rs=st.executeQuery(sql);
}
catch(SQLException e){ System.out.println(e.toString());}
catch(Exception e){ System.out.println(e.toString());}
%
rs=st.executeQuery(sql);
这里就是把你的SQL语句发到数据库执行
另有一篇论文供参考
B/S结构中,java如何实现oracle数据备份和恢复
一般B/S结构不建议在用代码来备份oracle数据和恢复数据,因为这样会导致数据库暂停工作,影响程序运行。
可以这样做:、可以先写个.bat脚本,然后使用自定义任务,定时执行脚本实现备份或恢复。如果一定要在代码中实现备份或恢复,那么可以在程序中调用、执行命令备份恢复。如:Runtime.getRuntime().exec(“imp system/manager file=bible_db log=dible_db full=y ignore=y “);