资源描述:
《java实现数据库备份与还原》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JAVA实现数据库备份与还原[MYSQL为例]数据库数据的备份与还原最好是使用数据库自带的客户端软件来实现,JAVA可以通过调用mysqldump、mysql客户端软件分别进行mysql数据库的备份还原,当然前提是JAVA服务器必须安装mysql客户端软件,但是也可以通过javatelnet登陆数据库服务器实现备份,关于telnet的相关资料请Google.MYSQL支持的备份方式:1.使用SELECTINTO...OUTFILE,例如SQL代码1SELECT*INTOOUTFILE"D:\test.sql"fieldsterminatedb
2、y','linesterminatedby''fromcategory;生成的文件会存放在数据库服务器上面SELECTINTO只备份了数据库表中的数据:如下为category备份后的文件内容XML/HTML代码21,ELECTRONICS,N32,TELEVISIONS,143,TUBE,254,LCD,265,PLASMA,276,PORTABLEELECTRONICS,187,MP3PLAYERS,698,FLASH,7109,CDPLAYERS,61110,2WAYRADIOS,62.使用BACKUPTABLE,例如SQL代码12BAC
3、KUPTABLEtest_tableto'D:backup';BACKUP只针对MyISAM表格,且在MYSQL5.1的参考手册中“注释:本语句不理想”;BACKUP语句效果为拷贝数据库表中的.frm文件到数据库服务器目标目录3.使用mysqldump程序或mysqlhotcopy脚本MYSQL5.1的参考手册中关于mysqldump的说明:“可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器)。转储包含创建表和/或装载表的SQL语句。“JAVA可以运用Process类的exec(Strings
4、tr)方法调用系统命令,所以需要在服务器上安装mysqldump程序已完成备份,可以对远程的数据库服务器进行备份(配置hostname参数),备份语句具体参数参考MYSQL参考手册MYSQL备份命令行:SQL代码13mysqldump-hhostname-uusername-ppassworddatabasename>‘backupfile’JAVA代码如下:Java代码1publicfinalStringBACKUP_COMMAND="mysqldump";2publicfinalStringENCODING="utf8";34publicb
5、ooleanbackup(Stringfile){5booleanisSuccess=true;6try{7Runtimert=Runtime.getRuntime();8StringbackupStr=this.getBackupStr();9logger.infoT(backupStr);10Processprocess=rt.exec(backupStr);1112BufferedReaderbr=newBufferedReader(newInputStreamReader(process.getInputStream(),ENCODIN
6、G));1314StringinStr="";15StringBuffersb=newStringBuffer("");16while((inStr=br.readLine())!=null){17sb.append(inStr).append("");18}19StringoutStr=sb.toString();2021OutputStreamWriterwriter=newOutputStreamWriter(newFileOutputStream(file),ENCODING);22writer.write(outStr);23writ
7、er.flush();2425br.close();26writer.close();27}catch(Exceptione){28e.printStackTrace();29isSuccess=false;30}31returnisSuccess;32}12privateStringgetBackupStr(){3StringbackupStr=BACKUP_COMMAND+"-u"+db.getUserName()+"-p"+db.getPassword()+"-h"+db.getHost()+"--set-charset="+db.get
8、Encoding()+""+db.getName();4returnbackupStr;5}6MYSQL还原命令行:SQL代码7mysql-hhost