SlideShare a Scribd company logo
11
Most read
14
Most read
17
Most read
© 2020 NTT DATA Corporation 1 © 2020 NTT DATA Corporation
第14回 PostgreSQLアンカンファレンス@オンライン
PostgreSQL13での
レプリケーション関連の改善について
2020年6月25日
株式会社NTTデータ 藤井雅雄 @fujii_masao
© 2020 NTT DATA Corporation 2
藤井 雅雄 @fujii_masao
Database Technical Lead @ NTTデータ
データベース研究開発、PostgreSQL 技術支援
PostgreSQLコミッタ
レプリケーション(非同期 / 同期 / カスケード / クォーラムコミット)
WAL圧縮、バックアップ進捗
pg_bigm(全文検索モジュール)コミッタ
自己紹介
© 2020 NTT DATA Corporation 3
本講演について
講演資料は、後日、NTTデータのSlideShareアカウント上で公開予定です。
https://www.slideshare.net/nttdata-tech
以前のアンカンファレンスの講演資料は公開済です。
PostgreSQL 13 での pg_stat_statements の改善について
PostgreSQL 13 での pg_basebackup の改善について
© 2020 NTT DATA Corporation 4
PostgreSQL13 での
レプリケーション関連の改善について
© 2020 NTT DATA Corporation 5
PostgreSQL 13
• 現在コミュニティで開発中の最新バージョン
• 5月21日 β1リリース。機能一覧はリリースノートから
https://postgresql.org/docs/devel/release-13.html
• 10~11月に正式リリースの予定
今日紹介する内容は、正式リリースまでの間に
変更となる可能性があることにご注意ください!!
© 2019 NTT DATA Corporation 6
ストリーミングレプリケーション (物理レプリケーション)
マスタでのデータベースの更新結果を、WALでスタンバイにレプリケーション(複製)
マスタでは更新・参照SQL、スタンバイでは参照SQLのみ実行可能
⑤リカバリ
マスタ スタンバイ
クライアント①更新SQL
②WAL書込
③WAL転送
④WAL書込
© 2020 NTT DATA Corporation 7
新機能(1)
レプリケーション接続先を手軽に再設定
© 2020 NTT DATA Corporation 8
レプリケーション接続先の設定
スタンバイ側で、primary_conninfoパラメータに
レプリケーション接続先を設定
$ cat $PGDATA/postgresql.conf
primary_conninfo = 'host=x.x.x.x port=5432 user=repuser'
マスタ スタンバイ
WAL転送
接続要求
x.x.x.x:5432
© 2020 NTT DATA Corporation 9
レプリケーション接続先を再設定するときの課題 (v12以前)
マスタ
スタンバイ
新マスタ
フェイル
オーバ
WAL転送
接続要求
レプリケーション接続先を再設定するには、スタンバイの再起動が必要
x.x.x.x:5432
y.y.y.y:9999
primary_conninfo = 'host=y.y.y.y port=9999 user=repuser'
再起動
© 2020 NTT DATA Corporation 10
レプリケーション接続先を手軽に再設定 (v13以降)
マスタ
スタンバイ
新マスタ
フェイル
オーバ
WAL転送
接続要求
v13から、設定ファイルの再読み込みで、レプリケーション接続先を再設定可能に!
x.x.x.x:5432
y.y.y.y:9999
primary_conninfo = 'host=y.y.y.y port=9999 user=repuser'
設定ファイル再読み込み
$ pg_ctl $PGDATA reload
© 2020 NTT DATA Corporation 11
レプリケーション接続先を手軽に再設定 (v13以降)
primary_conninfoを空にして設定ファイルを再読み込みすることで、
スタンバイ側でWAL受信を一時停止(walreceiverを停止)可能に!
マスタ スタンバイ
WAL転送
接続要求
x.x.x.x:5432
primary_conninfo = ''
設定ファイル再読み込み
$ pg_ctl $PGDATA reload
一時停止
© 2020 NTT DATA Corporation 12
(参考) 複数のレプリケーション接続先の設定
マスタ
スタンバイ
新マスタ
フェイル
オーバ
WAL転送
接続要求
v10から、複数のレプリケーション接続先を事前に設定して、
自動的に接続先を切り替えることも可能
x.x.x.x:5432
y.y.y.y:9999
primary_conninfo = 'host=x.x.x.x,y.y.y.y port=5432,9999 user=repuser'
接続に成功するまで、
設定された接続先へ
の接続を順番に試す
© 2020 NTT DATA Corporation 13
新機能(2)
レプリケーションスロットで保持できる
WALの最大サイズを設定可能に
© 2020 NTT DATA Corporation 14
レプリケーションで発生するエラー
ERROR: requested WAL segment 0000000100000000000000A7 has already been removed
☞スタンバイに未転送のWALファイルをマスタが削除したため、レプリケーションを継続できない
マスタ スタンバイ
WAL転送
接続要求
スタンバイにどのWALファイルまで
転送済か考慮することなく、
古い不要なWALファイルを判断して削除
© 2020 NTT DATA Corporation 15
エラーを回避するための対策その① (v9.0以降)
wal_keep_segmentsパラメータで最低限保持するWALファイルの数を指定
☞マスタ/スタンバイ間の差分がwal_keep_segments内に収まればエラーを回避できる
マスタ スタンバイ
WAL転送
接続要求
wal_keep_segmentsで指定された個数分は
WALファイルが残るように考慮して、
古い不要なWALファイルを削除
© 2020 NTT DATA Corporation 16
エラーを回避するための対策その① (v9.0以降)
wal_keep_segmentsの課題
① エラーを完全には回避できない。
マスタ/スタンバイ間の差分がwal_keep_segmentsを超えると、未転送
のWALファイルがマスタで削除されて、レプリケーションを継続できない
② スタンバイがマスタに十分追いついているとき、転送済の古いWALファイルは
削除してもよいのに、wal_keep_segmentsの設定により削除できない
(保持される)
© 2020 NTT DATA Corporation 17
エラーを回避するための対策その② (v9.4以降)
スタンバイにどのWALファイルまで転送済みかをレプリケーションスロットで管理
マスタ スタンバイ
WAL転送
接続要求
スタンバイにどのWALファイルまで
転送済か考慮して、
古い不要なWALファイルを判断して削除
レプリケーションスロットの作成
SELECT pg_create_physical_replication_slot('repslot');
レプリケーションスロット利用の設定
primary_slot_name = 'repslot'
© 2020 NTT DATA Corporation 18
エラーを回避するための対策その② (v9.4以降)
レプリケーションスロットの課題
① 未転送のWALファイルをずっと削除できない。
スタンバイが遅延/停止すると、未転送のため削除できないWALファイルがマ
スタ側に蓄積され続ける。
WALの書き出し先がディスクフルになると、マスタ側のPostgreSQLは
PANIC終了する。
© 2020 NTT DATA Corporation 19
エラーを回避するための対策その③ (v13以降)
レプリケーションスロットで保持できるWALファイルの最大サイズを
max_slot_wal_keep_sizeパラメータで設定可能に!
マスタ スタンバイ
WAL転送
接続要求
スタンバイにどのWALファイルまで転送済かと
マスタ側で保持できるWALファイル数を考慮して、
古い不要なWALファイルを判断して削除
レプリケーションスロットの作成とWALファイル保持上限の設定
SELECT pg_create_physical_replication_slot('repslot');
max_slot_wal_keep_size = '1GB'
レプリケーションスロット利用の設定
primary_slot_name = 'repslot'
© 2020 NTT DATA Corporation 20
エラーを回避するための対策の比較
対策
利用できる
バージョン
未転送WALの削除
を回避できるか?
未転送WALを上限
なく保持するか?
転送済WALをすぐ
に削除できるか?
wal_keep_segments 9.0以降
できないこともある
⇨ レプリケーション
失敗のリスクあり
上限がある
できない
⇨ 必要以上にディ
スク消費あり
レプリケーションスロット 9.4以降 完全にできる
上限はない
⇨ マスタPANIC終
了のリスクあり
できる
レプリケーションスロット +
max_slot_wal_keep_size
13以降
できないこともある
⇨ レプリケーション
失敗のリスクあり
上限がある できる
© 2020 NTT DATA Corporation 21
まとめ
© 2020 NTT DATA Corporation 22
まとめ
PostgreSQL13から、レプリケーション関連で
1. レプリケーション接続先を手軽に再設定
2. レプリケーションスロットで保持できる
WALの最大サイズを設定
できるようになります。
v13βで、ぜひ機能をお試しいただければ!!
© 2020 NTT DATA Corporation本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

More Related Content

What's hot (20)

PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
 
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
 
PPTX
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PPTX
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
NTT DATA Technology & Innovation
 
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
 
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
NTT DATA Technology & Innovation
 
PDF
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
NTT DATA Technology & Innovation
 
PDF
Vacuum徹底解説
Masahiko Sawada
 
PDF
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
 
PDF
PostgreSQL 15 開発最新情報
Masahiko Sawada
 
PDF
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
 
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
NTT DATA Technology & Innovation
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
NTT DATA Technology & Innovation
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
NTT DATA Technology & Innovation
 
Vacuum徹底解説
Masahiko Sawada
 
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
 
PostgreSQL 15 開発最新情報
Masahiko Sawada
 
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
 

Similar to PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン) (20)

PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
 
PDF
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLレプリケーション(pgcon17j_t4)
Kosuke Kida
 
PDF
PostgreSQL10徹底解説
Masahiko Sawada
 
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PPTX
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
20171106 ntt-tx-postgre sql-10
Toshi Harada
 
PDF
Chugoku db 20th-postgresql-10-pub
Toshi Harada
 
PDF
10大ニュースで振り返るpg con2013
NTT DATA OSS Professional Services
 
PDF
Ntt tx-study-postgre sql-10
Toshi Harada
 
PDF
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
 
PDF
Jpug study-postgre sql-10-pub
Toshi Harada
 
PDF
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
 
PDF
Postgre sql update_20170310
Haruka Takatsuka
 
PDF
【Jpug勉強会】10大ニュースで振り返るpg con2013
Daichi Egawa
 
PDF
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
 
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLレプリケーション(pgcon17j_t4)
Kosuke Kida
 
PostgreSQL10徹底解説
Masahiko Sawada
 
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
20171106 ntt-tx-postgre sql-10
Toshi Harada
 
Chugoku db 20th-postgresql-10-pub
Toshi Harada
 
10大ニュースで振り返るpg con2013
NTT DATA OSS Professional Services
 
Ntt tx-study-postgre sql-10
Toshi Harada
 
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
 
Jpug study-postgre sql-10-pub
Toshi Harada
 
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
 
Postgre sql update_20170310
Haruka Takatsuka
 
【Jpug勉強会】10大ニュースで振り返るpg con2013
Daichi Egawa
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
NTT DATA Technology & Innovation
 
Ad

More from NTT DATA Technology & Innovation (20)

PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
NTT DATA Technology & Innovation
 
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
 
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
 
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
 
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
 
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
 
PDF
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
 
PDF
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PDF
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PDF
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
NTT DATA Technology & Innovation
 
2025年現在のNewSQL (最強DB講義 #36 発表資料)
NTT DATA Technology & Innovation
 
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
 
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
 
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
 
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
 
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
 
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
 
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
 
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
 
Ad

Recently uploaded (8)

PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
2023年版Web3技術の理想と現実
Syuhei Hiya
 
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
2023年版Web3技術の理想と現実
Syuhei Hiya
 
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 

PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)

  • 1. © 2020 NTT DATA Corporation 1 © 2020 NTT DATA Corporation 第14回 PostgreSQLアンカンファレンス@オンライン PostgreSQL13での レプリケーション関連の改善について 2020年6月25日 株式会社NTTデータ 藤井雅雄 @fujii_masao
  • 2. © 2020 NTT DATA Corporation 2 藤井 雅雄 @fujii_masao Database Technical Lead @ NTTデータ データベース研究開発、PostgreSQL 技術支援 PostgreSQLコミッタ レプリケーション(非同期 / 同期 / カスケード / クォーラムコミット) WAL圧縮、バックアップ進捗 pg_bigm(全文検索モジュール)コミッタ 自己紹介
  • 3. © 2020 NTT DATA Corporation 3 本講演について 講演資料は、後日、NTTデータのSlideShareアカウント上で公開予定です。 https://www.slideshare.net/nttdata-tech 以前のアンカンファレンスの講演資料は公開済です。 PostgreSQL 13 での pg_stat_statements の改善について PostgreSQL 13 での pg_basebackup の改善について
  • 4. © 2020 NTT DATA Corporation 4 PostgreSQL13 での レプリケーション関連の改善について
  • 5. © 2020 NTT DATA Corporation 5 PostgreSQL 13 • 現在コミュニティで開発中の最新バージョン • 5月21日 β1リリース。機能一覧はリリースノートから https://postgresql.org/docs/devel/release-13.html • 10~11月に正式リリースの予定 今日紹介する内容は、正式リリースまでの間に 変更となる可能性があることにご注意ください!!
  • 6. © 2019 NTT DATA Corporation 6 ストリーミングレプリケーション (物理レプリケーション) マスタでのデータベースの更新結果を、WALでスタンバイにレプリケーション(複製) マスタでは更新・参照SQL、スタンバイでは参照SQLのみ実行可能 ⑤リカバリ マスタ スタンバイ クライアント①更新SQL ②WAL書込 ③WAL転送 ④WAL書込
  • 7. © 2020 NTT DATA Corporation 7 新機能(1) レプリケーション接続先を手軽に再設定
  • 8. © 2020 NTT DATA Corporation 8 レプリケーション接続先の設定 スタンバイ側で、primary_conninfoパラメータに レプリケーション接続先を設定 $ cat $PGDATA/postgresql.conf primary_conninfo = 'host=x.x.x.x port=5432 user=repuser' マスタ スタンバイ WAL転送 接続要求 x.x.x.x:5432
  • 9. © 2020 NTT DATA Corporation 9 レプリケーション接続先を再設定するときの課題 (v12以前) マスタ スタンバイ 新マスタ フェイル オーバ WAL転送 接続要求 レプリケーション接続先を再設定するには、スタンバイの再起動が必要 x.x.x.x:5432 y.y.y.y:9999 primary_conninfo = 'host=y.y.y.y port=9999 user=repuser' 再起動
  • 10. © 2020 NTT DATA Corporation 10 レプリケーション接続先を手軽に再設定 (v13以降) マスタ スタンバイ 新マスタ フェイル オーバ WAL転送 接続要求 v13から、設定ファイルの再読み込みで、レプリケーション接続先を再設定可能に! x.x.x.x:5432 y.y.y.y:9999 primary_conninfo = 'host=y.y.y.y port=9999 user=repuser' 設定ファイル再読み込み $ pg_ctl $PGDATA reload
  • 11. © 2020 NTT DATA Corporation 11 レプリケーション接続先を手軽に再設定 (v13以降) primary_conninfoを空にして設定ファイルを再読み込みすることで、 スタンバイ側でWAL受信を一時停止(walreceiverを停止)可能に! マスタ スタンバイ WAL転送 接続要求 x.x.x.x:5432 primary_conninfo = '' 設定ファイル再読み込み $ pg_ctl $PGDATA reload 一時停止
  • 12. © 2020 NTT DATA Corporation 12 (参考) 複数のレプリケーション接続先の設定 マスタ スタンバイ 新マスタ フェイル オーバ WAL転送 接続要求 v10から、複数のレプリケーション接続先を事前に設定して、 自動的に接続先を切り替えることも可能 x.x.x.x:5432 y.y.y.y:9999 primary_conninfo = 'host=x.x.x.x,y.y.y.y port=5432,9999 user=repuser' 接続に成功するまで、 設定された接続先へ の接続を順番に試す
  • 13. © 2020 NTT DATA Corporation 13 新機能(2) レプリケーションスロットで保持できる WALの最大サイズを設定可能に
  • 14. © 2020 NTT DATA Corporation 14 レプリケーションで発生するエラー ERROR: requested WAL segment 0000000100000000000000A7 has already been removed ☞スタンバイに未転送のWALファイルをマスタが削除したため、レプリケーションを継続できない マスタ スタンバイ WAL転送 接続要求 スタンバイにどのWALファイルまで 転送済か考慮することなく、 古い不要なWALファイルを判断して削除
  • 15. © 2020 NTT DATA Corporation 15 エラーを回避するための対策その① (v9.0以降) wal_keep_segmentsパラメータで最低限保持するWALファイルの数を指定 ☞マスタ/スタンバイ間の差分がwal_keep_segments内に収まればエラーを回避できる マスタ スタンバイ WAL転送 接続要求 wal_keep_segmentsで指定された個数分は WALファイルが残るように考慮して、 古い不要なWALファイルを削除
  • 16. © 2020 NTT DATA Corporation 16 エラーを回避するための対策その① (v9.0以降) wal_keep_segmentsの課題 ① エラーを完全には回避できない。 マスタ/スタンバイ間の差分がwal_keep_segmentsを超えると、未転送 のWALファイルがマスタで削除されて、レプリケーションを継続できない ② スタンバイがマスタに十分追いついているとき、転送済の古いWALファイルは 削除してもよいのに、wal_keep_segmentsの設定により削除できない (保持される)
  • 17. © 2020 NTT DATA Corporation 17 エラーを回避するための対策その② (v9.4以降) スタンバイにどのWALファイルまで転送済みかをレプリケーションスロットで管理 マスタ スタンバイ WAL転送 接続要求 スタンバイにどのWALファイルまで 転送済か考慮して、 古い不要なWALファイルを判断して削除 レプリケーションスロットの作成 SELECT pg_create_physical_replication_slot('repslot'); レプリケーションスロット利用の設定 primary_slot_name = 'repslot'
  • 18. © 2020 NTT DATA Corporation 18 エラーを回避するための対策その② (v9.4以降) レプリケーションスロットの課題 ① 未転送のWALファイルをずっと削除できない。 スタンバイが遅延/停止すると、未転送のため削除できないWALファイルがマ スタ側に蓄積され続ける。 WALの書き出し先がディスクフルになると、マスタ側のPostgreSQLは PANIC終了する。
  • 19. © 2020 NTT DATA Corporation 19 エラーを回避するための対策その③ (v13以降) レプリケーションスロットで保持できるWALファイルの最大サイズを max_slot_wal_keep_sizeパラメータで設定可能に! マスタ スタンバイ WAL転送 接続要求 スタンバイにどのWALファイルまで転送済かと マスタ側で保持できるWALファイル数を考慮して、 古い不要なWALファイルを判断して削除 レプリケーションスロットの作成とWALファイル保持上限の設定 SELECT pg_create_physical_replication_slot('repslot'); max_slot_wal_keep_size = '1GB' レプリケーションスロット利用の設定 primary_slot_name = 'repslot'
  • 20. © 2020 NTT DATA Corporation 20 エラーを回避するための対策の比較 対策 利用できる バージョン 未転送WALの削除 を回避できるか? 未転送WALを上限 なく保持するか? 転送済WALをすぐ に削除できるか? wal_keep_segments 9.0以降 できないこともある ⇨ レプリケーション 失敗のリスクあり 上限がある できない ⇨ 必要以上にディ スク消費あり レプリケーションスロット 9.4以降 完全にできる 上限はない ⇨ マスタPANIC終 了のリスクあり できる レプリケーションスロット + max_slot_wal_keep_size 13以降 できないこともある ⇨ レプリケーション 失敗のリスクあり 上限がある できる
  • 21. © 2020 NTT DATA Corporation 21 まとめ
  • 22. © 2020 NTT DATA Corporation 22 まとめ PostgreSQL13から、レプリケーション関連で 1. レプリケーション接続先を手軽に再設定 2. レプリケーションスロットで保持できる WALの最大サイズを設定 できるようになります。 v13βで、ぜひ機能をお試しいただければ!!
  • 23. © 2020 NTT DATA Corporation本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。