Postgres 9.2のストリーミングレプリケーションは、スキーマの変更と初期テーブル設定をどのように処理しますか?


8

プライマリ物理データベースサーバーのすぐ下にある物理サーバーにバックアップデータベースをセットアップしたいと考えています。私はPostgres 9.2を使用しており、同期のストリーミングレプリケーション(アトミック性のため)を使用したいのですが、A)初期テーブルセットアップがサーバー1からサーバー2に転送される(たとえば、syncdbサーバー1)に一連のテーブルを作成する私のDjangoアプリから、およびB)サーバー1からサーバー2への継続的なスキーマ変更の実行方法(たとえば、Django South移行をALTER TABLE実行し、クエリを送信するだけでなく、追加/インデックスの削除など)。これらはストリーミングレプリケーションで透過的に処理されますか、それとも両方のサーバー間でこの変更に影響を与えるために何かしなければならないことがありますか?

回答:


14

PostgreSQLのビルトインストリーミングレプリケーションを使用する場合は、元のデータベースのファイルシステムレベルのコピーであるベースバックアップをレプリカにシードします。したがって、マスターからのすべてのテーブルとデータがすでにあります。pg_basebackup通常これに使用されます。

ストリーミングレプリケーションは、先行書き込みログからブロックレベルで変更を読み取るため、データベースは物理的に同じに保たれます。DDLはDMLと同様にWALに記録されるため、DDLとDMLはどちらも透過的に複製されます。

詳細については、PostgreSQLでのHAとレプリケーションに関するドキュメントをご覧ください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.