`
wangrusheng5200
  • 浏览: 304466 次
  • 性别: 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数据库中表、视图、索引、触发器等对象的创建和管理。 - **...

    基于JAVA+SpringBoot+Vue+MySQL的社团管理系统 源码+数据库+论文(高分毕业设计).zip

    它提供了丰富的数据库管理和开发功能,如数据模型设计、数据迁移、数据同步、备份还原等,极大地提升了数据库的管理效率和易用性。 系统的主要功能设计涵盖了用户管理、社团管理、活动管理、新闻发布、文件管理等...

    基于java+springboot+vue+mysql的星之语明星周边产品销售网站 源码+数据库+论文(高分毕业设计).zip

    Navicat提供了直观的图形用户界面,可以让用户轻松地进行数据库设计、数据维护、数据迁移、备份和还原等操作,极大提升了数据库管理的便捷性和效率。 项目包含的文件列表显示了所有必要的组件,包括源码、数据库...

    基于JAVA+SpringBoot+Vue+MySQL的便利店信息管理系统 源码+数据库+论文(高分毕设项目).zip

    它提供了图形化的用户界面,可以进行数据库设计、维护、数据迁移、备份和还原等操作,极大地提高了数据库管理的效率。 本项目适用于作为毕业设计、课程设计和期末大作业使用,且不需要做任何修改即可运行。项目中...

    基于JAVA+SpringBoot+Vue+MySQL的考试报名系统源码+数据库(高分毕设项目).zip

    Navicat提供了直观的图形化界面,通过它可以更方便地进行数据库设计、管理、维护等操作,同时它还提供了数据迁移、备份、还原等功能,对于数据库的日常维护工作具有重要作用。 系统的功能非常完善,包括但不限于...

    基于java+ssm+mysql+微信小程序的宠物小程序 源码+数据库+论文(高分毕业设计).zip

    Navicat以其直观的图形界面和强大的功能,方便用户进行数据库的管理、数据的导入导出、数据备份和还原等工作。 本项目在宠物养护管理领域具有较高的实际应用价值和市场潜力,它为宠物主人提供了一个智能化、便捷化...

    java-ssm+jsp精品酒销售管理系统实现源码(项目源码-说明文档)

    SQLyog是另一个流行的MySQL数据库管理工具,它提供了丰富的功能,如数据库设计工具、数据迁移、备份和还原、数据同步等。SQLyog的用户友好界面和高效性能使其成为处理MySQL数据库的理想选择。 在本项目中,开发工具...

    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版本创建的,请使用相同版本启动它。

Global site tag (gtag.js) - Google Analytics