import java.text.SimpleDateFormat; import java.util.Date; public class Test { public static void main(String[] args) { Date d = new Date(); // 备份文件名称 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String filename = sdf.format(d) + ".sql"; // ///////////////以下是数据库信息//////////////////// // 数据库名称 String dbname = "wm_advert"; // 表名称 String tablename = "wm_ad_location"; // 数据库地址 String dbhost = "10.0.0.254"; // 数据库用户名 String username = "wm_psql"; // 数据库恢复用到的文件的名称 String restorefilename = "20140426172335.sql"; // 备份客户端的路径 String dbpath = "C:\\Progra~1\\Postgresql\\9.3\\bin\\"; // 备份下来的文件的完整路径 String backuppath = "C:\\Users\\admin\\" + filename; // 恢复用到的文件的完成路径 String restorepath = "C:\\Users\\admin\\" + restorefilename; // 数据库端口 String dbport = "5432"; //new test().backupDB(dbname,tablename,username,backuppath,dbpath,// dbhost,dbport); new test().restoreDB(dbname,restorepath,dbhost,dbport); } public boolean backupDB(String dbname,String tablename,String username,String backuppath,String dbpath,String dbhost,String dbport) { // 本地测试用 // username = "postgres"; // String dbpath = "C:\\Progra~1\\Postgresql\\9.3\\bin\\"; boolean flag = true;// 备份是否成功 Runtime rt = Runtime.getRuntime();// 得到jvm的运行环境 Process process; StringBuffer cmdbuf = new StringBuffer(); cmdbuf.append(dbpath); cmdbuf.append("pg_dump -U ");// 用户名 cmdbuf.append(username); cmdbuf.append(" -h "); cmdbuf.append(dbhost); cmdbuf.append(" -p "); cmdbuf.append(dbport); cmdbuf.append(" -f "); cmdbuf.append(backuppath); cmdbuf.append(" -E utf8 ");// 编码 cmdbuf.append(" -t "); cmdbuf.append(tablename); cmdbuf.append(" "); cmdbuf.append(dbname); try { // 调用 cmd: System.out.println(cmdbuf); process = rt.exec(cmdbuf.toString()); } catch (Exception e) { flag = false; e.printstacktrace(); } return flag; } public boolean restoreDB(String dbname,String restorepath,String dbport) { boolean flag = true;// 恢复是否成功 Runtime rt = Runtime.getRuntime();// 得到jvm的运行环境 Process process; StringBuffer cmdTemp = new StringBuffer();// 命令模版 cmdTemp.append(dbpath); cmdTemp.append("psql -U ");// 用户名 cmdTemp.append(username); cmdTemp.append(" -h "); cmdTemp.append(dbhost); cmdTemp.append(" -p "); cmdTemp.append(dbport); cmdTemp.append(" -d "); cmdTemp.append(dbname); cmdTemp.append(" -f "); cmdTemp.append(restorepath); try { System.out.println(cmdTemp); process = rt.exec(cmdTemp.toString());// 还原数据库 } catch (Exception e) { flag = false; e.printstacktrace(); } return flag; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。