设计到几个方面:
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编写的数据库备份程序时,用户需要根据自己的数据库类型(如MySQL, Oracle, PostgreSQL等)调整JDBC配置,并可能需要定制备份和恢复策略以适应特定的需求。同时,安全问题也不容忽视,备份文件应加密...
本文将深入探讨“数据库备份还原”的概念、重要性、常见方法以及源代码实现。 首先,数据库备份是保护数据免受意外丢失或损坏的关键步骤。这可能包括硬件故障、软件错误、人为误操作、病毒攻击或者自然灾害等不可...
TreeDMS数据库管理系统使用JAVA开发,实现基于WEB方式对 PostgreSQL 数据库进行维护管理操作。 功能包括:数据库的展示,库表的展示,表字段结构的展示, SQL语句的在线编辑批量执行,表结构的在线设计维护, 数据的...
### PostgreSQL数据库的使用知识点 #### 一、PostgreSQL概况 - **定义**: PostgreSQL是一款功能强大的开源对象关系型数据库系统,支持复杂查询,并可处理多种数据类型,包括JSON、XML、图像、视频等。 - **特点**: ...
本资源包含的数据库备份可能是SQL脚本或者二进制备份文件,可以使用MySQL、Oracle、PostgreSQL等数据库的还原工具进行恢复。在部署时,正确导入这些备份至关重要,以确保系统初始化时拥有正确的数据状态。 WMS管理...
7. **备份与恢复**:数据库内的文件和数据一同备份,恢复时也能一起还原,保证数据一致性。 8. **工具**:很多开发工具和库提供了方便的API来处理文件的数据库操作,如Java的JDBC、Python的psycopg2等。 9. **最佳...
- **PostgreSQL数据库**:掌握PostgreSQL数据库的模式、表、视图、函数、聚集、转换、域、索引、实体化视图等对象的操作。 - **SQLite数据库**:学习SQLite数据库中表、视图、索引、触发器等对象的创建和管理。 - **...
它提供了丰富的数据库管理和开发功能,如数据模型设计、数据迁移、数据同步、备份还原等,极大地提升了数据库的管理效率和易用性。 系统的主要功能设计涵盖了用户管理、社团管理、活动管理、新闻发布、文件管理等...
Navicat提供了直观的图形用户界面,可以让用户轻松地进行数据库设计、数据维护、数据迁移、备份和还原等操作,极大提升了数据库管理的便捷性和效率。 项目包含的文件列表显示了所有必要的组件,包括源码、数据库...
它提供了图形化的用户界面,可以进行数据库设计、维护、数据迁移、备份和还原等操作,极大地提高了数据库管理的效率。 本项目适用于作为毕业设计、课程设计和期末大作业使用,且不需要做任何修改即可运行。项目中...
Navicat提供了直观的图形化界面,通过它可以更方便地进行数据库设计、管理、维护等操作,同时它还提供了数据迁移、备份、还原等功能,对于数据库的日常维护工作具有重要作用。 系统的功能非常完善,包括但不限于...
Navicat以其直观的图形界面和强大的功能,方便用户进行数据库的管理、数据的导入导出、数据备份和还原等工作。 本项目在宠物养护管理领域具有较高的实际应用价值和市场潜力,它为宠物主人提供了一个智能化、便捷化...
SQLyog是另一个流行的MySQL数据库管理工具,它提供了丰富的功能,如数据库设计工具、数据迁移、备份和还原、数据同步等。SQLyog的用户友好界面和高效性能使其成为处理MySQL数据库的理想选择。 在本项目中,开发工具...
3Oracle 外部表访问参数59Oracle 索引组织表59Oracle 索引组织表选项59Oracle 视图60Oracle 函数或过程61Oracle 数据库链接62Oracle 索引63Oracle Java65Oracle 实体化视图66Oracle 实体化视图日志68Oracle 包69...
2. **备份数据库**:根据JHipster配置,可能是SQL数据库(如MySQL、PostgreSQL)或者NoSQL数据库(如MongoDB)。需使用相应的命令行工具或管理软件进行数据导出。 3. **备份配置文件**:包括application.yml或...
熟悉数据库的备份工具和还原策略可以减少风险。 9. **存储过程和触发器**:在使用存储过程和触发器时,可能出现逻辑错误或调用问题。确保正确编写和测试这些对象,以防止运行时错误。 10. **版本兼容性**:升级或...
对于网络投稿系统的开发,开发者可能使用了常见的Web开发技术,如PHP、Java、Python等后端语言,配合MySQL、PostgreSQL等关系型数据库管理系统,以及HTML、CSS、JavaScript等前端技术。此外,为了提高用户体验,可能...
- **数据库服务器**:Odoo推荐使用PostgreSQL数据库,因为它具有高性能和良好的扩展性。 - **应用服务器架构**:Odoo应用服务器的核心是Python编写的服务器端组件,负责处理HTTP请求,执行业务逻辑等。 #### 二、...
而"数据库"文件可能包含数据库脚本或实际的数据库文件,比如.sql备份,用于还原或初始化数据库结构和数据。 在系统设计时,考虑到安全性,开发者需要应用最佳实践,例如使用HTTPS进行加密通信,防止SQL注入和跨站...
该程序可以帮助您连接到SQL ... 它具有从时间戳记日期到常规日期格式的转换,反之亦然+ MySQL数据库的备份和还原+导出到CSV文件。 无需安装,只需启动并使用。 程序是使用Java 1.7版本创建的,请使用相同版本启动它。