Sin*_*ina 4 postgresql backup postgresql-9.1
我想使用 WAL 归档来增量备份我的数据库。但我的服务器上有两个数据库,但我无力承担用于备份这两个数据库的磁盘空间。所以我只想备份其中之一。我在 PostgreSQL 文档或其他任何地方都没有找到有关多个数据库的任何信息。或者我没有找到任何关于指定 WAL 备份的数据库名称的信息。如果有人可以帮助我,我将不胜感激。
您无法拆分 WAL 归档,因此一个数据库进入一个 WAL 归档流,而其他数据库进入另一个 WAL 归档流。单个预写日志由 PostgreSQL 服务器(PostgreSQL 术语中的“集群”)中的所有数据库共享。由 postmaster 管理的所有数据库都具有相同的 WAL。这有时是当前复制/PITR/归档设计的一个不幸的限制,对于正在开发的 9.3 以及所有和之前的版本来说也是如此。
如果要分离WAL归档,则必须将数据库分离到不同的集群中。您可以通过在一台服务器上运行多个 PostgreSQL 实例来实现这一点;他们只需要有不同的数据目录和不同的监听端口。PostgreSQL 的一些软件包提供了内置工具来执行此操作,例如pg_wrapperDebian 和 Ubuntu 上使用的工具,它具有pg_createcluster. 或者,您始终可以仅用于initdb创建集群,并pg_ctl在编辑新集群postgresql.conf以设置适当的端口后启动集群。
如果需要,可以使用pgbouncer等工具透明地多路复用多个集群,因此 pgbouncer 侦听端口 5432(默认 Pg 端口),并根据其请求的数据库决定将连接发送到哪个服务器。不过,通常在使用每个数据库的应用程序的连接设置中指定一个端口会更容易。
在 PostgreSQL 9.2 及更低版本上,您必须为每个服务器分配一个独占的、不重叠的共享内存区域shared_buffers。shared_buffers当另一台服务器不忙时,一台服务器无法使用另一台服务器的空间。这意味着您正在浪费一些系统资源。PostgreSQL 9.3通过分配shared_buffers匿名内存来改进这一点,为操作系统提供了更多管理内存的自由。
如果您不想运行多个集群,您可以使用基于树外工具(例如 Slony-I、Bucardo 等)的替代复制或备份解决方案来管理数据复制和归档。
| 归档时间: |
|
| 查看次数: |
3215 次 |
| 最近记录: |