Postgres 9.2的流复制如何处理模式更改和初始表设置?


8

我想在物理服务器上建立备份数据库,该服务器位于我的主物理数据库服务器下。我正在使用Postgres 9.2,并且想使用同步流复制(出于原子性),但是我完全不知道类似的事情,A)初始表设置是从服务器1转移到服务器2的(例如,我运行syncdb从我的Django应用程序中,该应用程序在服务器1上创建了一系列表,以及B)如何将模式的持续变化从服务器1携带到服务器2(例如,我运行Django South迁移,该迁移发送ALTER TABLE查询以及添加/删除索引等)。这些事情是通过流复制透明地处理的,还是我需要做一些事情来影响两台服务器之间的更改?

Answers:


14

如果打算使用PostgreSQL的内置流复制,则可以使用基本备份(原始数据库的文件系统级副本)为副本添加种子。因此,它已经具有来自主服务器的所有表和数据。pg_basebackup通常用于此目的。

流复制从预写日志中读取块级别的更改,因此数据库在物理上保持相同。由于DDL就像DML一样记录在WAL中,因此DDL和DML都可以透明地复制。

有关更多信息,请参见PostgreSQL中的HA和复制文档

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.