当前位置:  开发笔记 > 数据库 > 正文

PostgreSQL还原和备份解决方案

如何解决《PostgreSQL还原和备份解决方案》经验,为你挑选了1个好方法。

A)定期备份大型PostgreSQL数据库(在最新的Ubuntu服务器上运行的8.3版)的最佳解决方案是什么?请不要用那些痛苦的慢插入语句来说pg_dump

B)在现实世界中工作的PostgreSQL数据库复制的最佳解决方案是什么



1> Jimmy Stenke..:

我认为只有一个答案.

PITR,或时间点恢复.它基本上是对事务日志的归档,据我所知,这是备份的最佳方式.

我已经为8.1设置了几次,但它在8.3中应该是相同的.

在postgresql.conf中你需要做的就是添加:

archive_command = 'test ! -f /path/to/your/backups/archive_logs/%f && cp -i %p /path/to/your/backups/archive_logs/%f 

此命令将存档日志复制到指定目录,您可以使用您选择的备份软件安全地备份它.

要进行完整备份,您需要先告诉PostgreSQL您正在进行备份.它是通过psql命令psql "SELECT pg_start_backup('my_backup');" 完成的.之后只需用rsync,cpio或其他工具复制数据目录.如果数据库被大量使用,文件将在复制期间发生变化,因此工具可以正确处理并且不会挽救,这一点非常重要.

复制完成后,只需运行psql "SELECT pg_stop_backup();"告诉PostgreSQL再次停止它.这些命令的作用是在备份开始的归档日志中放置一个标记,因此在恢复中,它知道从哪里开始读取.

此技术还可用于为复制提供热备份,但它不可读,只是在紧急情况下准备好接管.在我认为版本8.4中计划完全热备用,所以在那之前我认为没有其他选择.

如果您使用PITR,那么一件好事就是您可以指定何时需要追加存档日志的时间戳.因此它还可以保存数据库免于意外(例如删除或更改某些数据)

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有