SlideShare a Scribd company logo
1 of 38
Download to read offline
Copyright © 2012 NTT DATA Corporation 
2012年10月18日 NTTデータ/JPUG 藤井雅雄 
PostgreSQLレプリケーション徹底紹介
2 
Copyright © 2012NTT DATA Corporation 
謝辞 
本資料は、NTT OSSセンタ様の以前の講演資料を 
ベースにしております。ご提供承諾いただきありがとう 
ございます。
3 
Copyright © 2012NTT DATA Corporation 
目次 
 レプリケーションとは? 
 PostgreSQLレプリケーション 
1. 特徴 
2. 同期/非同期 
3. 利用事例
Copyright © 2012 NTT DATA Corporation 
4 
レプリケーションとは?
Copyright © 2012 NTT DATA Corporation 5 
レプリケーションとは? 
クライアント クライアント 
更新 更新 
DBサーバ 
更新 
複製 
DBサーバ 
更新 
中継サーバ 
複数のサーバにデータベースを自動的に複製する機能
Copyright © 2012 NTT DATA Corporation 6 
なぜレプリケーションが必要か? 
24時間365日システムを安定運用するのに必要! 
高可用性 
負荷分散 
1台が故障しても、別サーバが処理を引き継げる 
システム全体としてDBサービスが停止するのを回避できる 
SQL実行の負荷を複数のサーバに分散できる 
負荷が一箇所に集中しないので、システム全体として性能向上できる 
クライアント クライアント 
SQL SQL SQL 
高可用 負荷分散 
DBサーバ DBサーバ
Copyright © 2012 NTT DATA Corporation 7 
PostgreSQLレプリケーションの歴史 
2007 
2008 
2009 
2010 
2012 
2011 
9.0(2010/9リリース) 
• 非同期レプリケーション 
9.1(2011/9) 
• 同期レプリケーション 
• レプリケーション監視機能強化 
• 物理バックアップ取得ツール 
9.2(2012/9) 
• カスケードレプリケーション 
• スタンバイからの 
物理バックアップ取得 
• 同期モードの拡張 
Slony-I 
Bucardo Londiste 
Sequoia 
PGCluster 
PostgresForest 
Postgres-R 
Mammoth 
PL/Proxy 
pgpool-II 
rubyrep 
Postgres-XC 
GridSQL 
syncreplicator 
レプリケーションツールが乱立! 
当初コミュニティはPostgreSQL本体にレプリケーション機能を組み込まない方針だったが、 
ユーザの声を受けて、9.0から本体にレプリケーション機能を搭載! 
以降、レプリケーションは着実に進化中
Copyright © 2012 NTT DATA Corporation 
8 
PostgreSQLレプリケーションの特徴
Copyright © 2012 NTT DATA Corporation 9 
シングルマスタ/マルチスタンバイ構成 
シングルマスタ 
マルチスタンバイ マルチスタンバイ 
複製 複製 
更新SQL 
参照SQL 
参照SQL 
参照SQL 
マスタ1台からスタンバイ複数台へのレプリケーション 
カスケードレプリケーション 
マスタは更新と参照SQL両方、スタンバイは参照SQLのみ実行可能 
参照系処理のスケールアウトに利用可能
10 
Copyright © 2012 NTT DATA Corporation 
スタンバイで実行可能/不可能なSQL 
オンライン・バックアップ 
–(論理) pg_dump 
–(物理) pg_basebackup 
メンテナンス・コマンド 
–VACUUM, ANALYZE 
※マスタからメンテナンスの実行結 果が複製されるため、スタンバイ では実行不要 
実行可能 
クエリ・アクセス 
–SELECT 
–PREPARE, EXECUTE 
–カーソル操作 
実行不可能 
データ操作言語(DML) 
–INSERT, UPDATE, DELETE 
–SELECT FOR UPDATE 
データ定義言語(DDL) 
–CREATE, DROP, ALTER 
一時テーブル
Copyright © 2012 NTT DATA Corporation 11 
ログシッピング 
マスタからスタンバイにトランザクションログ(WAL)を転送 
スタンバイはリカバリモード 
転送されたWALをリカバリすることで、スタンバイはデータベースを複製 
マスタ スタンバイ リカバリ 
更新SQL クライアント 
WAL書き込み 
WAL転送 
WAL書き込み
12 
Copyright © 2012 NTT DATA Corporation 
ログシッピングによる制約 
マスタとスタンバイでは以下2点が同じでなければならない 
 ハードウェアとOSのアーキテクチャ 
 PostgreSQLのメジャーバージョン 
異なる環境間のレプリケーション(ローリングアップグレード)には 
Slony-Iを利用 
マスタ 
スタンバイ 
64ビットOS 
PostgreSQL9.2.1 
PostgreSQL9.1.0 
32ビットOS 
64ビットOS 
PostgreSQL9.2.0 
NG 
NG 
OK 
2 
1
13 
Copyright © 2012 NTT DATA Corporation 
データベースクラスタ単位のレプリケーション 
データベースクラスタ単位 
テーブル単位 
マスタ 
スタンバイ 
マスタ 
スタンバイ 
すべてのデータベースオブジェクトが基本的にレプリケーション対象 
テーブル単位のレプリケーション指定は不可 
テーブル単位のレプリケーションにはSlony-Iを利用
14 
Copyright © 2012 NTT DATA Corporation 
(参考)UNLOGGED TABLE 
WALを書かないテーブルを作成可能! 
レプリケーション対象にならない 
更新性能が著しく向上 
クラッシュ時にテーブルが空になる 
信頼性より性能を必要とするテーブルに有効 
通常のテーブル 
更新 
UNLOGGED TABLE 
WALの書き込みとレプリケーションがなく 非常に高速! 
更新 
書き込み 
WAL領域 
スタンバイ 
レプリケー ション
Copyright © 2012 NTT DATA Corporation 15 
レプリケーション構成への移行が容易 
テーブル定義の変更不要 
 例)テーブルにプライマリキーを定義する必要がない 
SQLの書き換え不要 
 例)実行するまで結果が確定しないSQLを矛盾なく実行可能 
 PostgreSQLがサポートするすべてのSQLをマスタで実行可能 
クライアント 
PostgreSQL単体 
クライアント 
マスタ スタンバイ 
容易な移行
Copyright © 2012 NTT DATA Corporation 16 
SQLの振り分け 
PostgreSQLはSQLの振り分け機能を提供しない 
 クライアント側で振り分けを独自実装 
 振り分けを行うソフトウェア(pgpool-II)を利用 
クライアント クライアント 
更新SQL 参照SQL 
マスタ 
更新SQL 
更新/参照SQL 
振り分けソフト 
スタンバイ 
参照SQL 
マスタ スタンバイ 
独自に実装 振り分けソフトの利用
17 
Copyright © 2012 NTT DATA Corporation 
(参考)pgpool-IIによるSQLの振り分け 
BEGIN → 
SELECT → 
SELECT (一時テーブル) → 
SELECT FOR UPDATE → 
UPDATE → 
SELECT → 
COMMIT → 
マスタ 
スタンバイ 
マスタ 
マスタ 
マスタ 
マスタ 
マスタ 
トランザクション内の参照SQLも スタンバイに振り分け 
スタンバイで実行できない 
参照SQLはマスタに振り分け 
更新SQLはマスタに振り分け 
更新SQL後の参照SQLは 
マスタに振り分け。 
更新SQLの実行結果を、 
参照SQLがすぐに参照する 
必要があるため 
スタンバイの遅れが閾値を 
超えていたら、マスタに振り分け
Copyright © 2012 NTT DATA Corporation 18 
フェイルオーバ 
PostgreSQLは自動的なフェイルオーバ機能を提供しない 
 スタンバイはいつでもマスタに昇格可能(pg_ctl promote) 
 自動的な故障検知とフェイルオーバにはクラスタソフトと要連携 
クライアント クライアント 
マスタ 
pgpool-II 
マスタ スタンバイ スタンバイ 
Pacemaker pgpool-II 
VIP 
PostgreSQLレプリケーションの 
クラスタリング機能搭載済!
19 
Copyright © 2012 NTT DATA Corporation 
レプリケーションの監視 
=# SELECT * FROM pg_stat_replication; 
-[ RECORD 1 ]----+------------------------------ 
procpid | 26531 
usesysid | 10 
usename | postgres 
application_name | tokyo 
client_addr | 192.168.1.2 
client_hostname | 
client_port | 39654 
backend_start | 2012-02-01 18:54:49.429459+09 
state | streaming 
sent_location | 0/406E7CC 
write_location | 0/406E7CC 
flush_location | 0/406E7CC 
replay_location | 0/406E1B0 
sync_priority | 1 
sync_state | sync 
レプリケーションの進捗 
マスタはどこまでWALを送信したか? 
スタンバイがどこまでWALを 
書き込み/フラッシュ/リカバリしたか? 
レプリケーション接続情報 
スタンバイのIPアドレス、ポート番号、 
レプリケーションに使用するユーザ名、 
レプリケーションの開始日時など 
レプリケーションの状態 
どの同期モードで動作中か? 
スタンバイはマスタに追いつき中か?済か?
20 
Copyright © 2012 NTT DATA Corporation 
その他 
クラッシュセーフなマスタとスタンバイ 
クラッシュしたマスタ/スタンバイを再起動するだけでレプリケーション 
再開可能 
スタンバイのオンライン追加・削除 
マスタ稼働中にスタンバイを追加・削除可能 
スケールアウト時にサービスの一時停止が発生しない 
リカバリの一時停止・再開 
スタンバイ側でリカバリを一時停止し、静止点を作成可能 
2 
1 
3
Copyright © 2012 NTT DATA Corporation 21 
(参考)pg_receivexlog 
WALの受信と書き込みを繰り返すクライアントツール 
 オペミス対策でWALの多重化などの用途 
リカバリ 
マスタ スタンバイ 
更新SQL クライアント 
WAL書き込み 
WAL転送 
WAL書き込み 
pg_receivexlogは、赤枠の 
部分をツール化したもの
Copyright © 2012 NTT DATA Corporation 
22 
PostgreSQLレプリケーションの同期/非同期
23 
Copyright © 2012 NTT DATA Corporation 
レプリケーションモード 
レプリケーションモードを選択可能 
非同期 
同期
Copyright © 2012 NTT DATA Corporation 24 
非同期レプリケーション 
COMMIT時にレプリケーションの完了を待たない 
 COMMIT成功時にWALがスタンバイに届いている保証なし 
フェイルオーバ時にCOMMIT済データを失う可能性あり 
スタンバイの参照SQLで古いデータが見える可能性あり 
レプリケーション完了を待たないので比較的高性能! 
リカバリ 
マスタ スタンバイ 
COMMIT クライアント 
WAL書き込み 
WAL転送 
WAL書き込み 
OK 
1 
2 
3 
4 
5 
6 
と の間でフェイル 
オーバが発生すると、 
COMMIT済データを損失 
3 4 
 
 

Copyright © 2012 NTT DATA Corporation 25 
同期レプリケーション 
COMMIT時にレプリケーションの完了を待つ 
 COMMIT成功時にWALがマスタ・スタンバイ両方に書き込み済と保証 
フェイルオーバ時にCOMMIT済データを失わない! 
レプリケーション完了を待つので比較的低性能 
スタンバイの参照SQLで古いデータが見える可能性あり 
 「同期レプリケーション=COMMIT済データをすぐにスタンバイで参照可能」 
ではないことに注意!! 
リカバリ 
マスタ スタンバイ 
COMMIT クライアント 
WAL書き込み 
WAL転送 
WAL書き込み 
OK 
1 
2 
6 
3 
4 
7 
5 応答 
 
 
WAL転送は同期的だが、 
リカバリは非同期的に実行 

Copyright © 2012 NTT DATA Corporation 26 
3 
4 
同期レプリケーション 
応答が届くまでトランザクションの結果は別トランザクションから参照不可 
 参照を許すと、未COMMITのデータが参照される可能性がある 
リカバリ 
マスタ スタンバイ 
COMMIT クライアント 
WAL書き込み 
WAL転送 
WAL書き込み 
OK 
1 
2 
8 
5 
6 
9 
7 応答 
クライアント 
参照SQL 
参照結果 
応答待ちのトランザクションの結果を が参照した場合 
と の間でフェイルオーバが発生すると、 
応答待ちのトランザクションの結果はスタンバイに存在しない 
では未COMMITのデータを参照したことになる 
4 5 
4 
4
27 
Copyright © 2012 NTT DATA Corporation 
スタンバイごとのレプリケーションモード選択 
スタンバイごとにレプリケーションモードを選択可能 
同期レプリケーションを実行できるスタンバイは同時に1台のみ 
同期レプリケーションの実行優先度をスタンバイに設定可能 
カスケードレプリケーションは非同期モードのみ選択可能 
同期 
非同期 
非同期 
同期モードを選択 優先度高 
同期モードを選択 優先度低 
非同期モードを選択 
同期 
非同期 
スタンバイ 
スタンバイ 
故障 
復旧 
次に優先度の高いスタンバイ (同期モード選択)が自動的に 
同期レプリケーションを引き継ぎ 
最も優先度の高いスタンバイ 
(同期モード選択)が自動的に 
同期レプリケーションを再開
Copyright © 2012 NTT DATA Corporation 28 
トランザクションごとのデータ保護レベル選択 
同期レプリケーションでは、トランザクションごとにデータ保護レベルを選択可能 
データ保護レベル 
マスタ スタンバイ 
WALフラッシュ WAL書き込み WALフラッシュ 
off 待たない 待たない 待たない 
local 待つ 待たない 待たない 
remote_write 待つ 待つ 待たない 
on 待つ 待つ 待つ 
リカバリ 
マスタ スタンバイ 
COMMIT クライアント 
WALフラッシュ 
WAL転送 
WALのファイルキャッシュへの書き込み 
OK 
応答 
WALのディスクへのフラッシュ 
高性能 
保護レベル高
Copyright © 2012 NTT DATA Corporation 29 
非同期レプリケーション継続不可時の挙動 
故障により単独稼働するマスタの挙動に注意! 
 マスタ故障(フェイルオーバ) 
 スタンバイ故障 
 ネットワーク故障 
マスタ単独でトランザクションを処理 
 故障によりトランザクションが停止することはない 
レプリケーション 
COMMIT 
WAL転送 
OK 
マスタ スタンバイ 
クライアント 
COMMIT 
OK 
マスタ スタンバイ 
故障 
復旧 
→ 新マスタ単独稼働 
→ 既存マスタ単独稼働 
クライアント 
マスタ単独
Copyright © 2012 NTT DATA Corporation 30 
同期レプリケーション継続不可時の挙動 
COMMIT時に(スタンバイからの届くことのない)応答を待ち続ける 
 故障によりトランザクションは停止する! 
 復旧により応答が届くようになったら、トランザクション再開 
復旧にかかる時間だけシステム停止 
クライアント 
COMMIT 
WAL転送 
OK 
マスタ スタンバイ 
クライアント 
COMMIT 
マスタ スタンバイ 
故障 
復旧 
応答 
レプリケーション マスタ単独 
レプリケーション完了応答を 
待ち続ける
31 
Copyright © 2012 NTT DATA Corporation 
同期レプリケーション継続不可時の挙動 
トランザクション停止は、データ保護を最優先するため 
COMMIT成功時に確実にWALが複数箇所に書き込み済と保証 
マスタ 
スタンバイ 
更新SQL 
WAL転送 
応答 
OK 
更新SQL 
更新SQL 
OK 
OK 
マスタのディスク故障により 
COMMIT済データを損失!! 
マスタ単独でのトランザクション処理を 許可すると、COMMIT成功時にWALは マスタのディスクのみに書き込み済
Copyright © 2012 NTT DATA Corporation 32 
同期レプリケーションでの高可用の実現 
マルチスタンバイ構成 
故障/復旧時にレプリケーションモードを非同期/同期に設定変更 
データ損失リスクは依然あるため、(RAID等)ディスク故障対策が必要 
状況に応じてモードを設定変更する機能をPacemakerは搭載済! 
クライアント 
COMMIT 
WAL転送 
OK 
マスタ スタンバイ 
クライアント 
COMMIT 
マスタ スタンバイ 
故障 
復旧 
応答 
レプリケーション マスタ単独 
OK 
レプリケーション再開時は 
同期に設定 
マスタ単独時は 
非同期に設定 
2 
1
Copyright © 2012 NTT DATA Corporation 
33 
PostgreSQLレプリケーションの利用事例
34 
Copyright © 2012 NTT DATA Corporation 
利用事例: Instagram 
・・・ 
・・・ 
レプリケーション 
マスタ12台 
スタンバイ12台 
利用者4000万人超の写真データを保管 
データベースをマスタ12台に水平分散 
マスタ12台、スタンバイ12台でレプリケーション 
写真共有アプリ/SNS。Facebookが10億ドルで買収 
(出典:Scaling Instagram @ AirBnB Tech Talk 2012)
35 
Copyright © 2012 NTT DATA Corporation 
レプリケーション構成事例 
共有ディスク型とレプリケーションの組み合わせ 
日本と遠隔地に共有ディスク型の高可用構成 
激甚対策として遠隔地にレプリケーション 
マスタ 
共有ディスク 
スタン バイ 
マスタ 
共有ディスク 
スタン バイ
Copyright © 2011 NTT DATA Corporation 
Copyright © 2012 NTT DATA Corporation
Copyright © 2012 NTT DATA Corporation 
37 
PostgreSQLレプリケーションのアーキテクチャ
Copyright © 2012 NTT DATA Corporation 38 
プロセス構成 
walsender walreceiver startup 
データベース 
クライアント 
変更 
書き込み 
WAL WAL 
読み込み 
WAL転送 
書き込み 読み込み 
リカバリ 
参照 
更新SQL 参照SQL 
bbaacckkeenndd backend 
bbaacckkeenndd backend 
マスタ スタンバイ 
データベース 
walsender 
読み込み WAL転送 
ディスク 
領域 メモリ領 
域 プ ロ セ ス 
凡例 
OK 
応答 応答 
walsender 
読み込み WAL転送

More Related Content

What's hot

PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...NTT DATA Technology & Innovation
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...NTT DATA Technology & Innovation
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)NTT DATA Technology & Innovation
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...NTT DATA Technology & Innovation
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 
PostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もうPostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もう
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Similar to PostgreSQLレプリケーション徹底紹介

PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説Masao Fujii
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tipsMasayuki Ozawa
 
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場Toshiaki Baba
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)Shinya Sugiyama
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)NTT DATA OSS Professional Services
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介Masao Fujii
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQLRyusuke Kajiyama
 
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!株式会社クライム
 
PostgreSQL9.1でつくる高可用性にまつわるエトセトラ
PostgreSQL9.1でつくる高可用性にまつわるエトセトラPostgreSQL9.1でつくる高可用性にまつわるエトセトラ
PostgreSQL9.1でつくる高可用性にまつわるエトセトラNTT DATA OSS Professional Services
 
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...Insight Technology, Inc.
 
Azure SQLデータベース最新動向&TIPS
Azure SQLデータベース最新動向&TIPSAzure SQLデータベース最新動向&TIPS
Azure SQLデータベース最新動向&TIPSnishioka1
 
Active directory の移行 (2011年6月の資料)
Active directory の移行 (2011年6月の資料)Active directory の移行 (2011年6月の資料)
Active directory の移行 (2011年6月の資料)wintechq
 
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)オラクルエンジニア通信
 
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...yoshimotot
 
C13 SQL Server2012知られざるTips集 by 平山理
C13 SQL Server2012知られざるTips集 by 平山理C13 SQL Server2012知られざるTips集 by 平山理
C13 SQL Server2012知られざるTips集 by 平山理Insight Technology, Inc.
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Oda Shinsuke
 

Similar to PostgreSQLレプリケーション徹底紹介 (20)

PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tips
 
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
 
Oracle Database Applianceのご紹介(詳細)
Oracle Database Applianceのご紹介(詳細)Oracle Database Applianceのご紹介(詳細)
Oracle Database Applianceのご紹介(詳細)
 
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
 
PostgreSQL9.1でつくる高可用性にまつわるエトセトラ
PostgreSQL9.1でつくる高可用性にまつわるエトセトラPostgreSQL9.1でつくる高可用性にまつわるエトセトラ
PostgreSQL9.1でつくる高可用性にまつわるエトセトラ
 
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
 
Azure SQLデータベース最新動向&TIPS
Azure SQLデータベース最新動向&TIPSAzure SQLデータベース最新動向&TIPS
Azure SQLデータベース最新動向&TIPS
 
Active directory の移行 (2011年6月の資料)
Active directory の移行 (2011年6月の資料)Active directory の移行 (2011年6月の資料)
Active directory の移行 (2011年6月の資料)
 
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)
 
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
私はここでつまづいた! Oracle database 11g から 12cへのアップグレードと Oracle Database 12c の新機能@201...
 
C13 SQL Server2012知られざるTips集 by 平山理
C13 SQL Server2012知られざるTips集 by 平山理C13 SQL Server2012知られざるTips集 by 平山理
C13 SQL Server2012知られざるTips集 by 平山理
 
クラウドで始める事業継続[クラウドEXPO2012]
クラウドで始める事業継続[クラウドEXPO2012]クラウドで始める事業継続[クラウドEXPO2012]
クラウドで始める事業継続[クラウドEXPO2012]
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
 

More from NTT DATA OSS Professional Services

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力NTT DATA OSS Professional Services
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~NTT DATA OSS Professional Services
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~NTT DATA OSS Professional Services
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのことNTT DATA OSS Professional Services
 

More from NTT DATA OSS Professional Services (20)

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
 
Apache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development statusApache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development status
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
 
Application of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jpApplication of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jp
 
Application of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructureApplication of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructure
 
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 

PostgreSQLレプリケーション徹底紹介

  • 1. Copyright © 2012 NTT DATA Corporation 2012年10月18日 NTTデータ/JPUG 藤井雅雄 PostgreSQLレプリケーション徹底紹介
  • 2. 2 Copyright © 2012NTT DATA Corporation 謝辞 本資料は、NTT OSSセンタ様の以前の講演資料を ベースにしております。ご提供承諾いただきありがとう ございます。
  • 3. 3 Copyright © 2012NTT DATA Corporation 目次  レプリケーションとは?  PostgreSQLレプリケーション 1. 特徴 2. 同期/非同期 3. 利用事例
  • 4. Copyright © 2012 NTT DATA Corporation 4 レプリケーションとは?
  • 5. Copyright © 2012 NTT DATA Corporation 5 レプリケーションとは? クライアント クライアント 更新 更新 DBサーバ 更新 複製 DBサーバ 更新 中継サーバ 複数のサーバにデータベースを自動的に複製する機能
  • 6. Copyright © 2012 NTT DATA Corporation 6 なぜレプリケーションが必要か? 24時間365日システムを安定運用するのに必要! 高可用性 負荷分散 1台が故障しても、別サーバが処理を引き継げる システム全体としてDBサービスが停止するのを回避できる SQL実行の負荷を複数のサーバに分散できる 負荷が一箇所に集中しないので、システム全体として性能向上できる クライアント クライアント SQL SQL SQL 高可用 負荷分散 DBサーバ DBサーバ
  • 7. Copyright © 2012 NTT DATA Corporation 7 PostgreSQLレプリケーションの歴史 2007 2008 2009 2010 2012 2011 9.0(2010/9リリース) • 非同期レプリケーション 9.1(2011/9) • 同期レプリケーション • レプリケーション監視機能強化 • 物理バックアップ取得ツール 9.2(2012/9) • カスケードレプリケーション • スタンバイからの 物理バックアップ取得 • 同期モードの拡張 Slony-I Bucardo Londiste Sequoia PGCluster PostgresForest Postgres-R Mammoth PL/Proxy pgpool-II rubyrep Postgres-XC GridSQL syncreplicator レプリケーションツールが乱立! 当初コミュニティはPostgreSQL本体にレプリケーション機能を組み込まない方針だったが、 ユーザの声を受けて、9.0から本体にレプリケーション機能を搭載! 以降、レプリケーションは着実に進化中
  • 8. Copyright © 2012 NTT DATA Corporation 8 PostgreSQLレプリケーションの特徴
  • 9. Copyright © 2012 NTT DATA Corporation 9 シングルマスタ/マルチスタンバイ構成 シングルマスタ マルチスタンバイ マルチスタンバイ 複製 複製 更新SQL 参照SQL 参照SQL 参照SQL マスタ1台からスタンバイ複数台へのレプリケーション カスケードレプリケーション マスタは更新と参照SQL両方、スタンバイは参照SQLのみ実行可能 参照系処理のスケールアウトに利用可能
  • 10. 10 Copyright © 2012 NTT DATA Corporation スタンバイで実行可能/不可能なSQL オンライン・バックアップ –(論理) pg_dump –(物理) pg_basebackup メンテナンス・コマンド –VACUUM, ANALYZE ※マスタからメンテナンスの実行結 果が複製されるため、スタンバイ では実行不要 実行可能 クエリ・アクセス –SELECT –PREPARE, EXECUTE –カーソル操作 実行不可能 データ操作言語(DML) –INSERT, UPDATE, DELETE –SELECT FOR UPDATE データ定義言語(DDL) –CREATE, DROP, ALTER 一時テーブル
  • 11. Copyright © 2012 NTT DATA Corporation 11 ログシッピング マスタからスタンバイにトランザクションログ(WAL)を転送 スタンバイはリカバリモード 転送されたWALをリカバリすることで、スタンバイはデータベースを複製 マスタ スタンバイ リカバリ 更新SQL クライアント WAL書き込み WAL転送 WAL書き込み
  • 12. 12 Copyright © 2012 NTT DATA Corporation ログシッピングによる制約 マスタとスタンバイでは以下2点が同じでなければならない  ハードウェアとOSのアーキテクチャ  PostgreSQLのメジャーバージョン 異なる環境間のレプリケーション(ローリングアップグレード)には Slony-Iを利用 マスタ スタンバイ 64ビットOS PostgreSQL9.2.1 PostgreSQL9.1.0 32ビットOS 64ビットOS PostgreSQL9.2.0 NG NG OK 2 1
  • 13. 13 Copyright © 2012 NTT DATA Corporation データベースクラスタ単位のレプリケーション データベースクラスタ単位 テーブル単位 マスタ スタンバイ マスタ スタンバイ すべてのデータベースオブジェクトが基本的にレプリケーション対象 テーブル単位のレプリケーション指定は不可 テーブル単位のレプリケーションにはSlony-Iを利用
  • 14. 14 Copyright © 2012 NTT DATA Corporation (参考)UNLOGGED TABLE WALを書かないテーブルを作成可能! レプリケーション対象にならない 更新性能が著しく向上 クラッシュ時にテーブルが空になる 信頼性より性能を必要とするテーブルに有効 通常のテーブル 更新 UNLOGGED TABLE WALの書き込みとレプリケーションがなく 非常に高速! 更新 書き込み WAL領域 スタンバイ レプリケー ション
  • 15. Copyright © 2012 NTT DATA Corporation 15 レプリケーション構成への移行が容易 テーブル定義の変更不要  例)テーブルにプライマリキーを定義する必要がない SQLの書き換え不要  例)実行するまで結果が確定しないSQLを矛盾なく実行可能  PostgreSQLがサポートするすべてのSQLをマスタで実行可能 クライアント PostgreSQL単体 クライアント マスタ スタンバイ 容易な移行
  • 16. Copyright © 2012 NTT DATA Corporation 16 SQLの振り分け PostgreSQLはSQLの振り分け機能を提供しない  クライアント側で振り分けを独自実装  振り分けを行うソフトウェア(pgpool-II)を利用 クライアント クライアント 更新SQL 参照SQL マスタ 更新SQL 更新/参照SQL 振り分けソフト スタンバイ 参照SQL マスタ スタンバイ 独自に実装 振り分けソフトの利用
  • 17. 17 Copyright © 2012 NTT DATA Corporation (参考)pgpool-IIによるSQLの振り分け BEGIN → SELECT → SELECT (一時テーブル) → SELECT FOR UPDATE → UPDATE → SELECT → COMMIT → マスタ スタンバイ マスタ マスタ マスタ マスタ マスタ トランザクション内の参照SQLも スタンバイに振り分け スタンバイで実行できない 参照SQLはマスタに振り分け 更新SQLはマスタに振り分け 更新SQL後の参照SQLは マスタに振り分け。 更新SQLの実行結果を、 参照SQLがすぐに参照する 必要があるため スタンバイの遅れが閾値を 超えていたら、マスタに振り分け
  • 18. Copyright © 2012 NTT DATA Corporation 18 フェイルオーバ PostgreSQLは自動的なフェイルオーバ機能を提供しない  スタンバイはいつでもマスタに昇格可能(pg_ctl promote)  自動的な故障検知とフェイルオーバにはクラスタソフトと要連携 クライアント クライアント マスタ pgpool-II マスタ スタンバイ スタンバイ Pacemaker pgpool-II VIP PostgreSQLレプリケーションの クラスタリング機能搭載済!
  • 19. 19 Copyright © 2012 NTT DATA Corporation レプリケーションの監視 =# SELECT * FROM pg_stat_replication; -[ RECORD 1 ]----+------------------------------ procpid | 26531 usesysid | 10 usename | postgres application_name | tokyo client_addr | 192.168.1.2 client_hostname | client_port | 39654 backend_start | 2012-02-01 18:54:49.429459+09 state | streaming sent_location | 0/406E7CC write_location | 0/406E7CC flush_location | 0/406E7CC replay_location | 0/406E1B0 sync_priority | 1 sync_state | sync レプリケーションの進捗 マスタはどこまでWALを送信したか? スタンバイがどこまでWALを 書き込み/フラッシュ/リカバリしたか? レプリケーション接続情報 スタンバイのIPアドレス、ポート番号、 レプリケーションに使用するユーザ名、 レプリケーションの開始日時など レプリケーションの状態 どの同期モードで動作中か? スタンバイはマスタに追いつき中か?済か?
  • 20. 20 Copyright © 2012 NTT DATA Corporation その他 クラッシュセーフなマスタとスタンバイ クラッシュしたマスタ/スタンバイを再起動するだけでレプリケーション 再開可能 スタンバイのオンライン追加・削除 マスタ稼働中にスタンバイを追加・削除可能 スケールアウト時にサービスの一時停止が発生しない リカバリの一時停止・再開 スタンバイ側でリカバリを一時停止し、静止点を作成可能 2 1 3
  • 21. Copyright © 2012 NTT DATA Corporation 21 (参考)pg_receivexlog WALの受信と書き込みを繰り返すクライアントツール  オペミス対策でWALの多重化などの用途 リカバリ マスタ スタンバイ 更新SQL クライアント WAL書き込み WAL転送 WAL書き込み pg_receivexlogは、赤枠の 部分をツール化したもの
  • 22. Copyright © 2012 NTT DATA Corporation 22 PostgreSQLレプリケーションの同期/非同期
  • 23. 23 Copyright © 2012 NTT DATA Corporation レプリケーションモード レプリケーションモードを選択可能 非同期 同期
  • 24. Copyright © 2012 NTT DATA Corporation 24 非同期レプリケーション COMMIT時にレプリケーションの完了を待たない  COMMIT成功時にWALがスタンバイに届いている保証なし フェイルオーバ時にCOMMIT済データを失う可能性あり スタンバイの参照SQLで古いデータが見える可能性あり レプリケーション完了を待たないので比較的高性能! リカバリ マスタ スタンバイ COMMIT クライアント WAL書き込み WAL転送 WAL書き込み OK 1 2 3 4 5 6 と の間でフェイル オーバが発生すると、 COMMIT済データを損失 3 4   
  • 25. Copyright © 2012 NTT DATA Corporation 25 同期レプリケーション COMMIT時にレプリケーションの完了を待つ  COMMIT成功時にWALがマスタ・スタンバイ両方に書き込み済と保証 フェイルオーバ時にCOMMIT済データを失わない! レプリケーション完了を待つので比較的低性能 スタンバイの参照SQLで古いデータが見える可能性あり  「同期レプリケーション=COMMIT済データをすぐにスタンバイで参照可能」 ではないことに注意!! リカバリ マスタ スタンバイ COMMIT クライアント WAL書き込み WAL転送 WAL書き込み OK 1 2 6 3 4 7 5 応答   WAL転送は同期的だが、 リカバリは非同期的に実行 
  • 26. Copyright © 2012 NTT DATA Corporation 26 3 4 同期レプリケーション 応答が届くまでトランザクションの結果は別トランザクションから参照不可  参照を許すと、未COMMITのデータが参照される可能性がある リカバリ マスタ スタンバイ COMMIT クライアント WAL書き込み WAL転送 WAL書き込み OK 1 2 8 5 6 9 7 応答 クライアント 参照SQL 参照結果 応答待ちのトランザクションの結果を が参照した場合 と の間でフェイルオーバが発生すると、 応答待ちのトランザクションの結果はスタンバイに存在しない では未COMMITのデータを参照したことになる 4 5 4 4
  • 27. 27 Copyright © 2012 NTT DATA Corporation スタンバイごとのレプリケーションモード選択 スタンバイごとにレプリケーションモードを選択可能 同期レプリケーションを実行できるスタンバイは同時に1台のみ 同期レプリケーションの実行優先度をスタンバイに設定可能 カスケードレプリケーションは非同期モードのみ選択可能 同期 非同期 非同期 同期モードを選択 優先度高 同期モードを選択 優先度低 非同期モードを選択 同期 非同期 スタンバイ スタンバイ 故障 復旧 次に優先度の高いスタンバイ (同期モード選択)が自動的に 同期レプリケーションを引き継ぎ 最も優先度の高いスタンバイ (同期モード選択)が自動的に 同期レプリケーションを再開
  • 28. Copyright © 2012 NTT DATA Corporation 28 トランザクションごとのデータ保護レベル選択 同期レプリケーションでは、トランザクションごとにデータ保護レベルを選択可能 データ保護レベル マスタ スタンバイ WALフラッシュ WAL書き込み WALフラッシュ off 待たない 待たない 待たない local 待つ 待たない 待たない remote_write 待つ 待つ 待たない on 待つ 待つ 待つ リカバリ マスタ スタンバイ COMMIT クライアント WALフラッシュ WAL転送 WALのファイルキャッシュへの書き込み OK 応答 WALのディスクへのフラッシュ 高性能 保護レベル高
  • 29. Copyright © 2012 NTT DATA Corporation 29 非同期レプリケーション継続不可時の挙動 故障により単独稼働するマスタの挙動に注意!  マスタ故障(フェイルオーバ)  スタンバイ故障  ネットワーク故障 マスタ単独でトランザクションを処理  故障によりトランザクションが停止することはない レプリケーション COMMIT WAL転送 OK マスタ スタンバイ クライアント COMMIT OK マスタ スタンバイ 故障 復旧 → 新マスタ単独稼働 → 既存マスタ単独稼働 クライアント マスタ単独
  • 30. Copyright © 2012 NTT DATA Corporation 30 同期レプリケーション継続不可時の挙動 COMMIT時に(スタンバイからの届くことのない)応答を待ち続ける  故障によりトランザクションは停止する!  復旧により応答が届くようになったら、トランザクション再開 復旧にかかる時間だけシステム停止 クライアント COMMIT WAL転送 OK マスタ スタンバイ クライアント COMMIT マスタ スタンバイ 故障 復旧 応答 レプリケーション マスタ単独 レプリケーション完了応答を 待ち続ける
  • 31. 31 Copyright © 2012 NTT DATA Corporation 同期レプリケーション継続不可時の挙動 トランザクション停止は、データ保護を最優先するため COMMIT成功時に確実にWALが複数箇所に書き込み済と保証 マスタ スタンバイ 更新SQL WAL転送 応答 OK 更新SQL 更新SQL OK OK マスタのディスク故障により COMMIT済データを損失!! マスタ単独でのトランザクション処理を 許可すると、COMMIT成功時にWALは マスタのディスクのみに書き込み済
  • 32. Copyright © 2012 NTT DATA Corporation 32 同期レプリケーションでの高可用の実現 マルチスタンバイ構成 故障/復旧時にレプリケーションモードを非同期/同期に設定変更 データ損失リスクは依然あるため、(RAID等)ディスク故障対策が必要 状況に応じてモードを設定変更する機能をPacemakerは搭載済! クライアント COMMIT WAL転送 OK マスタ スタンバイ クライアント COMMIT マスタ スタンバイ 故障 復旧 応答 レプリケーション マスタ単独 OK レプリケーション再開時は 同期に設定 マスタ単独時は 非同期に設定 2 1
  • 33. Copyright © 2012 NTT DATA Corporation 33 PostgreSQLレプリケーションの利用事例
  • 34. 34 Copyright © 2012 NTT DATA Corporation 利用事例: Instagram ・・・ ・・・ レプリケーション マスタ12台 スタンバイ12台 利用者4000万人超の写真データを保管 データベースをマスタ12台に水平分散 マスタ12台、スタンバイ12台でレプリケーション 写真共有アプリ/SNS。Facebookが10億ドルで買収 (出典:Scaling Instagram @ AirBnB Tech Talk 2012)
  • 35. 35 Copyright © 2012 NTT DATA Corporation レプリケーション構成事例 共有ディスク型とレプリケーションの組み合わせ 日本と遠隔地に共有ディスク型の高可用構成 激甚対策として遠隔地にレプリケーション マスタ 共有ディスク スタン バイ マスタ 共有ディスク スタン バイ
  • 36. Copyright © 2011 NTT DATA Corporation Copyright © 2012 NTT DATA Corporation
  • 37. Copyright © 2012 NTT DATA Corporation 37 PostgreSQLレプリケーションのアーキテクチャ
  • 38. Copyright © 2012 NTT DATA Corporation 38 プロセス構成 walsender walreceiver startup データベース クライアント 変更 書き込み WAL WAL 読み込み WAL転送 書き込み 読み込み リカバリ 参照 更新SQL 参照SQL bbaacckkeenndd backend bbaacckkeenndd backend マスタ スタンバイ データベース walsender 読み込み WAL転送 ディスク 領域 メモリ領 域 プ ロ セ ス 凡例 OK 応答 応答 walsender 読み込み WAL転送