過去問ドリル

LinuCレベル4 システムアーキテクト 可用性の設計 問25

可用性の設計/データレプリケーションと災害対策

本番のPostgreSQLデータベースに含まれる売上・在庫・請求の3テーブルのデータを、リアルタイムに分析用の別DBサーバーへ複製する仕組みを設計している。ストリーミングレプリケーションではなくロジカルレプリケーションを採用する主な理由として最も適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「可用性の設計」に対応。実際の試験問題ではありません)

正解:D

解説

ストリーミングレプリケーションはWALをブロックレベルでクラスタ全体に適用するため、特定のテーブルだけを選んで複製したり、サブスクライバー側に本番とは異なるスキーマ構造を持たせたりすることはできません。ロジカルレプリケーションはパブリケーションで複製対象テーブルを指定でき、サブスクライバーは独立した書き込みやインデックス追加が可能です。なお、ストリーミングレプリケーションは非同期モードも使用でき、ロジカルレプリケーションのWALデコードは追加のCPUオーバーヘッドを伴い、双方向同期は自動では行われません。

選択肢ごとの解説

  • A誤り。ストリーミングレプリケーションは非同期モードでも動作し、遠隔地への非同期配信に使えます。
  • B誤り。PostgreSQLのロジカルレプリケーションは一方向が基本です。サブスクライバーへの書き込みは自動的に本番DBへ反映されません。
  • C誤り。ロジカルレプリケーションはWALをSQL相当の変更イベントにデコードするため、ストリーミングより本番DBのCPUオーバーヘッドが大きくなります。
  • D正しい。ロジカルレプリケーションはテーブルを選んで複製でき、分析DB側で独自のインデックス追加や集計テーブルの作成も本番DBに影響しません。
LinuCレベル4 システムアーキテクトの問題を演習モードで解く