PostgreSQLのバージョン9.0には、ストリーミングレプリケーション用の組み込みのマスタースレーブメカニズムがあります。
ただし、その出現により、古いトリガーメカニズムは破棄されません。
一般的な場合、DBサーバー全体の完全に正確なコピーが複数必要な場合、トリガーは残ります。
そのような状況の例:
- フェールオーバーが必要な場合(つまり、マスターが停止し、すべての要求が一時的にスレーブに送られ、起動されたマスターがスレーブで現在の状態に追いつき始めます)。
- マスターとスレーブは1:1ではありません。 たとえば、何らかの理由で、追加のデータ(データベース/テーブル)をスレーブに保存するか、すべてのデータベース/テーブルをマスターからコピーする必要はありません。または、データを削除した場合、スレーブに保存する必要があります。
- プロジェクトでは、食料品「動物園」を使用する必要があります-つまり マスターとスレーブは、何らかの理由でバージョンが異なるか、バージョンが同じですが、OSの「ビット」が異なります。
- このプロジェクトでは、Master-Slave1-Slave2-Slave3の再帰的な複製が必要です。または、実際にロードされたINSERT / UPDATEプロジェクトでは、複数のスレーブが並行してマスターに接続されます(ただし、一部のプロジェクトには5-6個までのスレーブが正常に動作できる負荷があります)。
- 何らかの理由で、マスターとスレーブのベースオブジェクトへの異なるアクセス権が必要な場合。
コメントに追加オプションを追加します。
注:フェイルオーバーを構築する機能は、バージョン9.1で「同期レプリケーション」という名前で1か月前に宣言されました。 しかし、個人的には、まだ実験を行っていません。