postgresql 数据库备份

来源:互联网 发布:小米路由器域名重定向 编辑:程序博客网 时间:2024/06/08 17:21
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, username, restorepath, dbpath, 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 username,String restorepath, String dbpath, String dbhost, 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;}}

0 0
原创粉丝点击