在web应用中通过Hibernate作为持久层备份PostgreSql数据库
我有一个运行使用PostgreSQL的web应用程序的Tomcat web服务器。组织的所有手动过程都通过web应用程序实现自动化,持久层为Hibernate。我想为用户提供一个备份和恢复选项 备份将以某种方式从数据库获取所有数据/模式(可能不是模式),并将其压缩,然后通过web应用程序发送给用户,以允许他们将备份保存在本地计算机上。然后,他们可以选择此备份文件将数据库恢复到备份时的状态 我们正在使用Tomcat容器,Spring+Hibernate和PostgreSql在web应用中通过Hibernate作为持久层备份PostgreSql数据库,hibernate,postgresql,Hibernate,Postgresql,我有一个运行使用PostgreSQL的web应用程序的Tomcat web服务器。组织的所有手动过程都通过web应用程序实现自动化,持久层为Hibernate。我想为用户提供一个备份和恢复选项 备份将以某种方式从数据库获取所有数据/模式(可能不是模式),并将其压缩,然后通过web应用程序发送给用户,以允许他们将备份保存在本地计算机上。然后,他们可以选择此备份文件将数据库恢复到备份时的状态 我们正在使用Tomcat容器,Spring+Hibernate和PostgreSql 如何做到这一点?我见过
如何做到这一点?我见过有人将自定义备份例程放在一起。我真的,真的不推荐。当事情出错时,他们往往会犯下可怕的错误 您最好的选择是使用经过良好测试的工具,这些工具是其他人的代码。IMO的最佳选择是调用shell escape并运行pg_dump。这为您提供了相当多的灵活性和比您自己更强大的健壮性。然后打开文件,并将其发送到客户端。这就是我们用自己的持久层和Perl来处理LedgerSMB的方法,但在任何其他系统上都应该差不多
备份很重要。确保备份内部一致性的主代码最好不要保存在内部。我见过有人编写自定义备份例程。我真的,真的不推荐。当事情出错时,他们往往会犯下可怕的错误 您最好的选择是使用经过良好测试的工具,这些工具是其他人的代码。IMO的最佳选择是调用shell escape并运行pg_dump。这为您提供了相当多的灵活性和比您自己更强大的健壮性。然后打开文件,并将其发送到客户端。这就是我们用自己的持久层和Perl来处理LedgerSMB的方法,但在任何其他系统上都应该差不多
备份很重要。确保备份内部一致性的主代码最好不要保存在内部。我会尝试组合
pg_dump--data only--clean
,然后获取脚本的输出。我会尝试组合pg_dump--data only--clean
,然后获取脚本的输出。