我正在寻找一种复制postgresql数据库(运行服务器版本9.1)的方法。我希望镜像能够有一个服务器(从)站在我们的防火墙外面。我一直在研究slony和流式复制--在这两种情况下,从服务器都需要与主服务器进行回话,出于安全原因,我不希望出现这种情况。理想情况下,我希望主只将更改发送到奴隶,而不需要任何答案。有这样的系统吗?
(当然,我知道如果奴隶倒下了,或者由于其他原因无法接收数据,主人将不知道,但是由于我们有其他工具监视服务器问题,这是可以接受的。)
发布于 2012-10-23 13:35:06
您可以使用原木装运备用函数来完成这一任务,这实际上是连续归档的一个扩展。
首先,您将PostgreSQL配置为将所有*更改写入预写日志,方法是:
wal_level = hot_standby
archive_mode = on一旦日志文件已满(16 MB写入)或发生可配置超时(archive_timeout),PostgreSQL将开始写入下一个日志文件,并使用刚刚完成的日志的文件名调用archive_command。您的archive_command将是一个脚本,它使用其他适当的技术将日志文件从主服务器上推开--也许您想将它上传到像亚马逊S3这样的对象商店,或者您想要使用SCP将其直接推到从服务器上,或者您想要完全地做其他事情。
您可以设置与主服务器类似的从站,但它的数据目录将包含一个recovery.conf,表示standby_mode = on。如果主服务器直接将日志复制到从服务器的pg_xlog目录中,那么您就完成了;如果没有,则该从服务器将需要一个restore_command脚本作为archive_command的逆序,并从您放置的任何位置检索指定的归档日志。
最后,复制一个基本备份(如连续归档文档中所描述的),启动PostgreSQL,然后您的从站将跟随主站,而不需要任何直接通信。
https://dba.stackexchange.com/questions/27474
复制相似问题