热备份数据库中postgres中未记录的表

时间:2013-09-03 13:45:35

标签: postgresql-9.1

我们有一对以流复制模式运行的posgresql 9.1服务器。在每个服务器中都有2个数据库。

一个是“实时”数据库,其数据必须尽可能接近实时地复制,一个是“缓存”数据库,其数据不重要,可以在一段时间内重新生成或构建

“缓存”数据库使用未记录的表来处理所有内容(因为我们不关心它们是否被截断),并且我们有效地将它用作内存数据库中的一种。它非常好用,因为我们对这些表有很多读/写。我们看到使用未记录表的高负载和大量内存的服务器性能显着提高。

当我们必须在从属端创建另一个“缓存”数据库时,问题就出现了。我们需要这个,以使我们的Web应用程序正常工作。对于数据库处于只读模式的源,这是不可能的......

只是想知道是否有其他人有类似的问题,或者是否有办法在从服务器上创建一个未记录的表?流式复制在postgres中似乎是“全有或全无”,你无法为特定数据库打开/关闭它。

也许我错误地使用了未记录的表格,但到目前为止还没有找到任何可行的方法。

任何指针都会非常感激......

1 个答案:

答案 0 :(得分:0)

  

流式复制似乎是“全有或全无”"在postgres中,您无法为特定数据库打开/关闭它。

不幸的是,这是正确的。 WAL复制适用于整个数据库集群,并且您要求主服务器上的集群内的数据库不被记录,因此无法将其显示在从服务器上。

我找到的最佳解决方案是在slave上运行第二个守护程序/集群,并在那里创建未记录的缓存数据库。同时运行多个postgres守护进程并不存在任何问题 - 您只需要确保指定一个不同的套接字/端口供其监听。