PostgreSql数据库备份通过Hibernate作为Web应用程序中的持久层

时间:2013-03-18 20:14:21

标签: hibernate postgresql

我有一个运行使用PostgreSQL的Web应用程序的Tomcat Web服务器。组织的所有手动过程都通过Web应用程序自动执行,持久层为Hibernate。我想为用户提供备份和还原选项。

备份会以某种方式从数据库获取所有数据/架构(可能不是架构)并压缩它并通过Web应用程序将其发送给用户,以允许它们将备份保存在本地计算机上。然后,他们可以选择此备份文件,将数据库恢复到备份时的状态。

我们正在使用Tomcat容器,Spring + Hibernate和PostgreSql。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

我见过人们将自定义备份例程放在一起。我真的,真的不推荐它。当出现问题时,他们往往会犯错误。

您最好的选择是使用经过充分测试的工具,这些工具是其他人的代码。 IMO的最佳选择是调用shell转义并运行pg_dump。这为您提供了相当多的灵活性和比您自己更强大的稳健性。然后打开文件,并将其发送到客户端。这就是我们使用自己的持久层和Perl对LedgerSMB所做的事情,但在任何其他系统上它应该或多或少相同。

备份非常重要。确保备份内部一致的主要代码最好不要保留在内部。