postgresql 数据库备份
发布时间:2020-12-13 17:15:50 所属栏目:百科 来源:网络整理
导读: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.form
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~1PostgreSQL9.3bin"; // 备份下来的文件的完整路径 String backuppath = "C:Usersadmin" + filename; // 恢复用到的文件的完成路径 String restorepath = "C:Usersadmin" + 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~1PostgreSQL9.3bin"; 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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |