`
wangrusheng5200
  • 浏览: 302444 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 备份、还原postgresql数据库

 
阅读更多

设计到几个方面:

1、java 执行 linux 或windows命令

2、数据库备份还原命令

3、postgresql 备份还原命令 没有密码参数,目前仅程序与数据库在同一服务器上执行通过。

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) + ".tar";

		String dbname = "ipam";
		String username = "postgres";
		String dbpath = "d:\\Program Files\\PostgreSQL\\9.1\\bin\\";
		String backuppath = "d:\\" + filename;

//		new Test().backupDB(dbname, username, backuppath, dbpath);
		backuppath = "d:\\20120826095554.tar";
		 new Test().restoreDB(dbname, username, backuppath, dbpath);
	}

	public boolean backupDB(String dbname, String username, String backuppath,
			String dbpath) {
		// 本地测试用
		// username = "postgres";
		// String dbpath = "d:\\Program Files\\PostgreSQL\\9.1\\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(" -f ");
		cmdbuf.append(backuppath);
		cmdbuf.append(" -E utf8 ");// 编码
		cmdbuf.append(" -Ft ");
		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 backuppath,
			String dbpath) {

		boolean flag = true;// 恢复是否成功
		Runtime rt = Runtime.getRuntime();// 得到jvm的运行环境
		Process process;
		StringBuffer cmdTemp = new StringBuffer();// 命令模版
		cmdTemp.append(dbpath);
		cmdTemp.append("pg_restore -U ");
		cmdTemp.append(username);
		cmdTemp.append(" -c -d ");
		cmdTemp.append(" " + dbname + " ");
		cmdTemp.append(backuppath);
		try {
			process = rt.exec(cmdTemp.toString());// 还原数据库
		} catch (Exception e) {
			flag = false;
			e.printStackTrace();
		}
		return flag;
	}
}

 

分享到:
评论

相关推荐

    java编写的数据库自动备份源码

    在使用这个Java编写的数据库备份程序时,用户需要根据自己的数据库类型(如MySQL, Oracle, PostgreSQL等)调整JDBC配置,并可能需要定制备份和恢复策略以适应特定的需求。同时,安全问题也不容忽视,备份文件应加密...

    数据库备份还原源代码

    本文将深入探讨“数据库备份还原”的概念、重要性、常见方法以及源代码实现。 首先,数据库备份是保护数据免受意外丢失或损坏的关键步骤。这可能包括硬件故障、软件错误、人为误操作、病毒攻击或者自然灾害等不可...

    PostgreSQL数据库WEB远程维护管理软件

    TreeDMS数据库管理系统使用JAVA开发,实现基于WEB方式对 PostgreSQL 数据库进行维护管理操作。 功能包括:数据库的展示,库表的展示,表字段结构的展示, SQL语句的在线编辑批量执行,表结构的在线设计维护, 数据的...

    postgresql数据库的使用

    ### PostgreSQL数据库的使用知识点 #### 一、PostgreSQL概况 - **定义**: PostgreSQL是一款功能强大的开源对象关系型数据库系统,支持复杂查询,并可处理多种数据类型,包括JSON、XML、图像、视频等。 - **特点**: ...

    基于Java框架开发的WMS管理系统+完整源码+数据库备份

    本资源包含的数据库备份可能是SQL脚本或者二进制备份文件,可以使用MySQL、Oracle、PostgreSQL等数据库的还原工具进行恢复。在部署时,正确导入这些备份至关重要,以确保系统初始化时拥有正确的数据状态。 WMS管理...

    向数据库中放置和取出文件

    7. **备份与恢复**:数据库内的文件和数据一同备份,恢复时也能一起还原,保证数据一致性。 8. **工具**:很多开发工具和库提供了方便的API来处理文件的数据库操作,如Java的JDBC、Python的psycopg2等。 9. **最佳...

    Navicat用户指南

    - **PostgreSQL数据库**:掌握PostgreSQL数据库的模式、表、视图、函数、聚集、转换、域、索引、实体化视图等对象的操作。 - **SQLite数据库**:学习SQLite数据库中表、视图、索引、触发器等对象的创建和管理。 - **...

    Navicat Premium操作手册.7z

    3Oracle 外部表访问参数59Oracle 索引组织表59Oracle 索引组织表选项59Oracle 视图60Oracle 函数或过程61Oracle 数据库链接62Oracle 索引63Oracle Java65Oracle 实体化视图66Oracle 实体化视图日志68Oracle 包69...

    jhipster-sample-app-main_jhipster-app_linux_backup_

    2. **备份数据库**:根据JHipster配置,可能是SQL数据库(如MySQL、PostgreSQL)或者NoSQL数据库(如MongoDB)。需使用相应的命令行工具或管理软件进行数据导出。 3. **备份配置文件**:包括application.yml或...

    sql常见错误

    熟悉数据库的备份工具和还原策略可以减少风险。 9. **存储过程和触发器**:在使用存储过程和触发器时,可能出现逻辑错误或调用问题。确保正确编写和测试这些对象,以防止运行时错误。 10. **版本兼容性**:升级或...

    网络投稿系统应用程序.rar

    对于网络投稿系统的开发,开发者可能使用了常见的Web开发技术,如PHP、Java、Python等后端语言,配合MySQL、PostgreSQL等关系型数据库管理系统,以及HTML、CSS、JavaScript等前端技术。此外,为了提高用户体验,可能...

    Odoo10.0 使用开发手册

    - **数据库服务器**:Odoo推荐使用PostgreSQL数据库,因为它具有高性能和良好的扩展性。 - **应用服务器架构**:Odoo应用服务器的核心是Python编写的服务器端组件,负责处理HTTP请求,执行业务逻辑等。 #### 二、...

    教学质量评估系统的设计与实现

    而"数据库"文件可能包含数据库脚本或实际的数据库文件,比如.sql备份,用于还原或初始化数据库结构和数据。 在系统设计时,考虑到安全性,开发者需要应用最佳实践,例如使用HTTPS进行加密通信,防止SQL注入和跨站...

    MySQL, Oracle, Postgre DB query browser:用于连接到MySQL,Oracle 11g和PostgreSQL DB的轻量级工具。-开源

    该程序可以帮助您连接到SQL ... 它具有从时间戳记日期到常规日期格式的转换,反之亦然+ MySQL数据库的备份和还原+导出到CSV文件。 无需安装,只需启动并使用。 程序是使用Java 1.7版本创建的,请使用相同版本启动它。

    海康威视isecure center视频联网网关(NCG)V5.11.100安装部署手册.pdf

    软件环境则要求CentOS 7.2至7.6 x86_64操作系统,Oracle Java 8/11运行环境,Tomcat 8.0/8.5应用服务器,PostgreSQL 9.6数据库环境,兼容Chrome 40和IE 9-11浏览器。 部署过程包括以下几个步骤: 1. 登录运行管理...

    OBA开发系列课程(9):OBA项目部署

    OBA通常需要Java运行环境(如JDK)、Web服务器(如Tomcat)和数据库服务器(如MySQL或PostgreSQL)等。要确保所有依赖组件的版本与OBA兼容。 2. **配置管理**:在部署过程中,需要对OBA的配置文件进行调整,包括...

    毕业论文-服务租赁系统.zip

    数据库方面,MySQL、PostgreSQL或MongoDB常用于存储用户信息、租赁记录等数据。此外,API接口设计和OAuth2等安全机制是保障系统稳定性和用户数据安全的关键。 二、系统功能模块 1. 用户管理:注册、登录、个人信息...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    PostgreSQL 号称“世界上最先进的开源数据库“,可以运行在多种平台下,是tb级数据库,而且性能也很好 中大型企业 oracle 甲骨文 获得最高认证级别的ISO标准安全认证,性能最高, 保持开放平台下的TPC-D和TPC-C的...

    entfrm-boot可视化开发平台-其他

    数据维护:mysql数据库备份与还原。2、运维监控定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。令牌管理:用户登录token管理。数据监控: 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能...

Global site tag (gtag.js) - Google Analytics