`
syab11
  • 浏览: 201417 次
  • 性别: Icon_minigender_1
  • 来自: SH
社区版块
存档分类
最新评论

java中对PostgreSQL的数据表备份

阅读更多
//备份数据表
	public static String backup(String dbname,String tablename) {      
		String backupName="";
	       try {      
	           Runtime rt = Runtime.getRuntime();      
	    
	           // 调用 mysql 的 cmd:      
	           Process child = rt      
	                   .exec("C:\\Program Files\\PostgreSQL\\8.2\\bin\\pg_dump.exe -U postgres -E utf8 -d "+dbname+" -t "+tablename);// 设置导出编码为utf8。这里必须是utf8      
	                
	           // 把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行      
	           InputStream in = child.getInputStream();// 控制台的输出信息作为输入流      
	                            
	           InputStreamReader xx = new InputStreamReader(in, "utf8");// 设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码      
	                
	           String inStr;      
	           StringBuffer sb = new StringBuffer("");      
	           String outStr;      
	           // 组合控制台输出信息字符串      
	           BufferedReader br = new BufferedReader(xx);      
	           while ((inStr = br.readLine()) != null) {      
	               sb.append(inStr + "\r\n");      
	           }      
	           outStr = sb.toString();   
	           //存储名字
	           Date NowTimes = new Date();    
	           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	   		   backupName = "d:\\back\\" + sdf.format(NowTimes) +"-"+tablename+".backup" ;
	           
	           // 要用来做导入用的sql目标文件:      
	           FileOutputStream fout = new FileOutputStream(backupName);      
	           OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");      
	           writer.write(outStr);      
	           // 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免      
	           writer.flush();      
	    
	           // 别忘记关闭输入输出流      
	           in.close();      
	           xx.close();      
	           br.close();      
	           writer.close();      
	           fout.close();      
	    
	           System.out.println("/* Output OK! */");      
	    
	       } catch (Exception e) {      
	           e.printStackTrace();      
	       }      
	    return backupName;
	   }     

代码实测通过


还原数据库的话可以在命令行下在命令行下先定位到PostgreSQL的bin目录下再输入命令 psql -U postgres -d GZMapDB -t gz_bus <d:/back/10-03-29-gz_bus.backup
分享到:
评论

相关推荐

    postgresql数据库定时备份脚本(linux)

    在Linux环境中,对PostgreSQL数据库进行定时备份是确保数据安全的重要步骤。PostgreSQL是一个功能强大的开源关系型数据库系统,广泛应用于各种规模的企业和项目。定时备份可以帮助我们在系统故障、误操作或其他不可...

    java实时同步postgresql变更数据,基于WAL日志

    **Java实时同步PostgreSQL数据** 在Java中,我们可以利用JDBC(Java Database Connectivity)接口与PostgreSQL通信。配合PostgreSQL的逻辑复制功能,可以实现数据的实时订阅和同步。逻辑复制允许我们订阅特定数据库...

    javacmd数据库备份

    Java命令行工具在数据库备份中的应用通常涉及以下步骤: 1. **连接数据库**:使用JDBC驱动建立与数据库的连接,获取必要的权限。 2. **执行备份脚本**:编写SQL备份脚本,或者调用数据库管理系统提供的备份命令...

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

    Java编写的数据库自动备份源码是一种实用的工具,它能够帮助数据库管理员定期、高效地创建数据库的备份,确保数据的安全性。在IT行业中,数据库管理是至关重要的,因为任何数据丢失都可能导致重大的业务损失。数据库...

    postgresql实例参考(中文高清PDF)

    PostgreSQL源于伯克利数据库系统(BSD),自1986年以来不断发展和完善,它支持多种编程接口,如Python、Java、Perl、C++等,并具有强大的SQL标准支持。PostgreSQL以其ACID(原子性、一致性、隔离性、持久性)事务...

    PostgreSQL 中文文档

    4. 分区:对于大数据处理,PostgreSQL支持表分区,可以优化大表的查询性能。 三、复制与高可用性 1. 复制:PostgreSQL支持多种复制方式,如流复制、逻辑复制,可以实现主从复制,提高服务的可用性和容灾能力。 2....

    PostgreSQL1

    这些功能使得PostgreSQL在数据分析和复杂的业务逻辑处理中具有强大优势。 安全性是另一个重要方面,PostgreSQL提供了角色系统、权限控制、加密选项以及审计功能,确保数据安全。例如,通过GRANT和REVOKE语句,可以...

    Postgresql修炼之道 pdf

    5. 高级特性:包括但不限于表分区、异步复制、流复制、写前日志(WAL)机制、表空间、物化视图等,这些特性使Postgresql能够应对大规模数据操作和保证数据的安全性与一致性。 6. Postgresql与编程语言的结合:...

    mycat-server,配置的postgresql集群的案例

    主从复制能实现数据备份和故障恢复,但无法实现负载均衡;PGXC是PostgreSQL官方提供的分布式数据库解决方案,可以处理大规模数据并提供分布式事务,但其部署和管理相对复杂。相比之下,Mycat的使用更为灵活,且支持...

    MySQL和PostgreSQL的比较

    PostgreSQL同样支持在线与离线备份、崩溃、时间点和事务恢复,且能实现热备份,其写前日志在数据目录的子目录中维护。 #### 八、JDBC驱动程序 MySQL与PostgreSQL均提供了JDBC驱动程序,允许Java应用程序访问数据库...

    Datax实现增量同步数据到Postgres

    标题 "Datax实现增量同步数据到...在进行数据同步时,确保源数据库和目标数据库的稳定性,同时做好数据备份,以防意外丢失。理解并掌握上述知识点,将有助于顺利地使用Datax实现增量同步数据到PostgreSQL数据库。

    synchronous 数据同步系统,可用于同步 Postgresql Hadoop Mysql 文件等数据

    此外,Java 的并发处理能力也对处理大量数据同步任务提供了保障。 **文档资料** 关于 `synchronous` 的文档资料,可能包含系统安装指南、配置教程、API 文档以及故障排查等内容。这些资料对于用户理解和使用系统至...

    javatools数据导入导出工具

    3. **数据导入导出功能**:JavaTools的核心功能是数据导入和导出,它可以读取CSV、Excel、XML、JSON等格式的文件,并将数据导入到数据库中,同时也可以将数据库中的数据导出为这些文件格式,方便数据交换和备份。...

    Java备份后台数据库

    4. **文件操作**:备份数据通常会被写入到文件系统中,因此需要掌握Java的文件操作API,如`java.io.File`,`java.nio`包中的类,以及`BufferedOutputStream`等,用于创建、写入和管理备份文件。 5. **异常处理**:...

    Postgresql编程教程(自学).docx_postgresql_

    - **插入数据**:使用`INSERT INTO`语句向表中添加数据。 - **查询数据**:掌握`SELECT`语句,包括选择列、过滤结果、排序和分组数据。 ### 4. SQL进阶 - **操作符和函数**:学习使用比较操作符、逻辑操作符,以及...

    PostgreSQL

    **PostgreSQL:数据库管理系统的核心与优势** PostgreSQL,简称 Postgres,...无论你是数据库管理员、开发人员还是数据分析员,PostgreSQL都是一个值得信赖的选择,其强大的功能和灵活性将助你在数据世界中游刃有余。

    postgresql

    描述中的“postgresql”可能是对文件内容的简要概括,表明文件与PostgreSQL的安装或更新有关。在提供的文件列表中,“postgresql-9.2.1-1-windows.exe”是一个Windows平台上的安装程序,用于安装PostgreSQL 9.2.1...

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

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

    PostgreSQL帮助文档 html

    13. **XML、JSON和其他非结构化数据支持**:PostgreSQL支持XML和JSON等非结构化数据类型,允许你在关系数据库中存储和查询这些数据。 通过阅读和研究这份**PostgreSQL帮助文档HTML**,无论是初学者还是经验丰富的...

Global site tag (gtag.js) - Google Analytics