2022年JAVA实现数据库备份与还原 .pdf
《2022年JAVA实现数据库备份与还原 .pdf》由会员分享,可在线阅读,更多相关《2022年JAVA实现数据库备份与还原 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JAVA实现数据库备份与还原MYSQL为例 数据库数据的备份与还原最好是使用数据库自带的客户端软件来实现,JAVA 可以通过调用 mysqldump、mysql 客户端软件分别进行mysql 数据库的备份还原,当然前提是JAVA服务器必须安装mysql 客户端软件,但是也可以通过java telnet登陆数据库服务器实现备份,关于 telnet的相关资料请Google.MYSQL 支持的备份方式:1.使用 SELECT INTO.OUTFILE,例如SQL代码SELECT*INTO OUTFILE D:test.sql fields terminatedby,lines terminatedb
2、y from category;生成的文件会存放在数据库服务器上面SELECT INTO只备份了数据库表中的数据:如下为 category备份后的文件内容XML/HTML代码1,ELECTRONICS,N 2,TELEVISIONS,1 3,TUBE,2 4,LCD,2 5,PLASMA,2 6,PORTABLE ELECTRONICS,1 7,MP3 PLAYERS,6 8,FLASH,7 9,CD PLAYERS,6 10,2 WAY RADIOS,6 2.使用 BACKUP TABLE,例如SQL代码BACKUPTABLE test_tableto D:backup;BACKUP 只针对
3、 MyISAM表格,且在MYSQL 5.1的参考手册中“注释:本语句不理想”;BACKUP 语句效果为拷贝数据库表中的.frm文件到数据库服务器目标目录3.使用 mysqldump 程序或 mysqlhotcopy脚本MYSQL 5.1的参考手册中关于mysqldump 的说明:“可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL 服务器)。转储包含创建表和/或装载表的 SQL语句。“JAVA可以运用Process 类的 exec(String str)方法调用系统命令,所以需要在服务器上安装mysqldump 程序已完成备份,可以对远程的数据库服务器
4、进行备份(配置 hostname 参数),备份语句具体参数参考MYSQL 参考手册名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -MYSQL 备份命令行:SQL代码mysqldump-hhostname-uusername-ppassword databasename backupfileJAVA代码如下:Java 代码public final String BACKUP_COMMAND=mysqldump;public final String ENCODING=utf8;public boolean backup(String file)boolean isSucc
5、ess=true;try Runtime rt=Runtime.getRuntime();String backupStr=this.getBackupStr();logger.infoT(backupStr);Process process=rt.exec(backupStr);BufferedReader br=new BufferedReader(new InputStreamReader(process.getInputStream(),ENCODING);String inStr=;StringBuffer sb=new StringBuffer();while(inStr=br.r
6、eadLine()!=null)sb.append(inStr).append();String outStr=sb.toString();OutputStreamWriter writer=new OutputStreamWriter(new FileOutputStream(file),ENCODING);writer.write(outStr);writer.flush();br.close();writer.close();catch(Exception e)e.printStackTrace();isSuccess=false;return isSuccess;private Str
7、ing getBackupStr()String backupStr=BACKUP_COMMAND+-u+db.getUserName()+-p+db.getPassword()+-h+db.getHost()+-set-charset=+db.getEncoding()+名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -+db.getName();return backupStr;MYSQL 还原命令行:SQL代码mysql -hhostname-uusername-ppassword databasename backupfileJAVA代码如下:Java 代码pub
8、lic final String REVERT_COMMAND=mysql;public boolean revert(String file)try Runtime rt=Runtime.getRuntime();String revertStr=this.getRevertStr();Process process=rt.exec(revertStr);String inStr;StringBuffer sb=new StringBuffer();BufferedReader br=new BufferedReader(new InputStreamReader(new FileInput
9、Stream(file),ENCODING);while(inStr=br.readLine()!=null)sb.append(inStr).append();String outStr=sb.toString();OutputStreamWriter writer=new OutputStreamWriter(process.getOutputStream(),ENCODING);writer.write(outStr);writer.flush();br.close();writer.close();catch(Exception e)e.printStackTrace();return
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年JAVA实现数据库备份与还原 2022 JAVA 实现 数据库 备份 还原
限制150内