SlideShare a Scribd company logo
© 2020 NTT DATA Corporation 1 © 2020 NTT DATA Corporation
第13回 PostgreSQLアンカンファレンス@オンライン
PostgreSQL13での
pg_basebackupの改善について
2020年5月21日
株式会社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
© 2020 NTT DATA Corporation 4
PostgreSQL13 での
pg_basebackup の改善について
© 2020 NTT DATA Corporation 5
PostgreSQL 13
• 現在コミュニティで開発中の最新バージョン
• Feature Freeze済。機能一覧はリリースノートから
https://postgresql.org/docs/devel/release-13.html
• 5月にβ1、10~11月に正式リリースの予定
今日紹介する内容は、正式リリースまでの間に
変更となる可能性があることにご注意ください!!
© 2020 NTT DATA Corporation 6
pg_basebackupとは
PostgreSQLのベースバックアップを取得するコマンド
$ pg_basebackup -h 192.168.0.x -D /bkp/data
バックアップDBデータ
© 2020 NTT DATA Corporation 7
新機能(1)
バックアップ取得の進捗状況の確認
© 2020 NTT DATA Corporation 8
クライアント側でのバックアップ取得の進捗状況
以前のバージョンから、--progressオプションを指定することで、
バックアップ取得の進捗状況をクライアント側で確認することは可能
$ pg_basebackup -h 192.168.0.x -D /bkp/data --progress
1339087/2894148 kB (46%), 2/4 tablespaces
バックアップDBデータ
© 2020 NTT DATA Corporation 9
サーバ側でのバックアップ取得の進捗状況 (PostgreSQL13)
PostgreSQL13からは、
バックアップ取得の進捗状況をサーバ側でもSQLで確認することが可能に!
$ psql
=# SELECT * FROM pg_stat_progress_basebackup;
バックアップDBデータ
© 2020 NTT DATA Corporation 10
pg_stat_progress_basebackup
=# SELECT * FROM pg_stat_progress_basebackup;
-[ RECORD 1 ]:--------+---------------------------
pid | 58783
phase | streaming database files
backup_total | 2963609088
backup_streamed | 1372009984
tablespaces_total | 4
tablespaces_streamed| 3
• バックアップを担当するサーバ側プロセスのPID
• バックアップ取得の現在の処理フェーズ
• バックアップ対象データのトータルサイズ
• 現在転送済み(取得済み)のバックアップのサイズ
• バックアップ対象のテーブルスペースの数
• 現在転送済み(取得済み)のテーブルスペースの数
© 2020 NTT DATA Corporation 11
バックアップ取得の処理フェーズ
① 初期準備
③ サイズ評価
④ バックアップ転送
バックアップ開始
バックアップ完了
⑤ WAL転送/アーカイブ
② チェックポイント
=# SELECT * FROM pg_stat_progress_basebackup;
-[ RECORD 1 ]:--------+---------------------------
pid | 58783
phase | streaming database files
backup_total | 2963609088
backup_streamed | 1372009984
tablespaces_total | 4
tablespaces_streamed| 3
© 2020 NTT DATA Corporation 12
(参考) PostgreSQLのコマンド進捗機能
9.6
• pg_stat_progress_vacuum → VACUUM や autovacuum の進捗確認
12
• pg_stat_progress_cluster → CLUSTER や VACUUM FULL の進捗確認
• pg_stat_progress_create_index → CREATE INDEX や REINDEX の進捗確認
13
• pg_stat_progress_analyze → ANALYZE や autoanalyze の進捗確認
• pg_stat_progress_basebackup → pg_basebackup の進捗確認
© 2020 NTT DATA Corporation 13
新機能(2)
バックアップ・マニフェスト
© 2020 NTT DATA Corporation 14
バックアップで困るケース
バックアップをリストアしてDBデータを復旧したいとき、
バックアップがリストアできる正常状態なのか、破損しているのか判断つかない!?
バックアップ
© 2020 NTT DATA Corporation 15
バックアップ・マニフェスト (PostgreSQL13)
PostgreSQL13からは、
① バックアップ取得時に、バックアップの妥当性を検証するための情報である
バックアップ・マニフェスト (backup_manifest) を取得可能に!
② pg_verifybackup コマンドを使って、バックアップ・マニフェストから
バックアップの妥当性を検証可能に!
backup_manifest
バックアップDBデータ
© 2020 NTT DATA Corporation 16
バックアップ・マニフェストの取得
$ pg_basebackup -h 192.168.0.x -D /bkp/data
$ ls /bkp/data
PG_VERSION pg_dynshmem pg_replslot pg_tblspc
backup_label pg_hba.conf pg_serial pg_twophase
backup_manifest pg_ident.conf pg_snapshots pg_wal
base pg_logical pg_stat pg_xact
global pg_multixact pg_stat_tmp postgresql.auto.conf
pg_commit_ts pg_notify pg_subtrans postgresql.conf
© 2020 NTT DATA Corporation 17
バックアップ・マニフェストの取得
$ cat /bkp/data/backup_manifest
{ "PostgreSQL-Backup-Manifest-Version": 1,
"Files": [
{ "Path": "backup_label", "Size": 224, "Last-Modified": "2020-05-14 15:47:21
GMT", "Checksum-Algorithm": "CRC32C", "Checksum": "0dc6dc58" },
{ "Path": "pg_multixact/members/0000", "Size": 8192, "Last-Modified": "2020-
05-14 15:46:01 GMT", "Checksum-Algorithm": "CRC32C", "Checksum":
"23464490" },
...
バックアップに含まれるすべてのファイルについて、
ファイルパスやサイズ、最終変更日時、チェックサム、チェックサム・アルゴリズムを
JSON形式で一覧化したファイル
© 2020 NTT DATA Corporation 18
バックアップの妥当性の検証
$ pg_verifybackup /bkp/data
バックアップの妥当性検証に成功
backup successfully verified
バックアップ取得時には存在していたファイルが、現在のバックアップから消えている
pg_verifybackup: error: "PG_VERSION" is present in the manifest but not on disk
バックアップ取得時にはなかったファイルが、現在のバックアップに存在している
pg_verifybackup: error: "hoge" is present on disk but not in the manifest
バックアップ取得時と現在とでファイルのサイズが異なる
pg_verifybackup: error: "PG_VERSION" has size 0 on disk but size 3 in the manifest
バックアップ取得時と現在とでファイルの内容(チェックサム)が異なる
pg_verifybackup: error: checksum mismatch for file "PG_VERSION"
© 2020 NTT DATA Corporation 19
まとめ
© 2020 NTT DATA Corporation 20
まとめ
PostgreSQL13から、pg_basebackupで
1. バックアップ取得の進捗状況をサーバ側でもSQLで確認
2. バックアップ・マニフェストによりバックアップの妥当性を判断
できるようになります。
v13βがリリースされたら、ぜひ機能をお試しいただければ!!
© 2020 NTT DATA Corporation本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

More Related Content

PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
PPTX
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
アーキテクチャから理解するPostgreSQLのレプリケーション

What's hot (20)

PDF
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
PPTX
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PDF
PostgreSQLバックアップの基本
PDF
Vacuum徹底解説
PPTX
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PDF
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
PPTX
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLバックアップの基本
Vacuum徹底解説
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
Ad

Similar to PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン) (20)

PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PDF
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
OSC北海道2014_JPUG資料
PPTX
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
PDF
PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PDF
JPUG 沖縄支部セミナー資料(2013-04-27)
PDF
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQL 9.6 新機能紹介
PDF
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
PDF
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
PDF
OSC東京2013/Spring_JPUG資料
PDF
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
PDF
PostgreSQL13を検証してみた
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSC北海道2014_JPUG資料
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
JPUG 沖縄支部セミナー資料(2013-04-27)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 9.6 新機能紹介
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSC東京2013/Spring_JPUG資料
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
PostgreSQL13を検証してみた
Ad

More from NTT DATA Technology & Innovation (20)

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

PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)

  • 1. © 2020 NTT DATA Corporation 1 © 2020 NTT DATA Corporation 第13回 PostgreSQLアンカンファレンス@オンライン PostgreSQL13での pg_basebackupの改善について 2020年5月21日 株式会社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
  • 4. © 2020 NTT DATA Corporation 4 PostgreSQL13 での pg_basebackup の改善について
  • 5. © 2020 NTT DATA Corporation 5 PostgreSQL 13 • 現在コミュニティで開発中の最新バージョン • Feature Freeze済。機能一覧はリリースノートから https://postgresql.org/docs/devel/release-13.html • 5月にβ1、10~11月に正式リリースの予定 今日紹介する内容は、正式リリースまでの間に 変更となる可能性があることにご注意ください!!
  • 6. © 2020 NTT DATA Corporation 6 pg_basebackupとは PostgreSQLのベースバックアップを取得するコマンド $ pg_basebackup -h 192.168.0.x -D /bkp/data バックアップDBデータ
  • 7. © 2020 NTT DATA Corporation 7 新機能(1) バックアップ取得の進捗状況の確認
  • 8. © 2020 NTT DATA Corporation 8 クライアント側でのバックアップ取得の進捗状況 以前のバージョンから、--progressオプションを指定することで、 バックアップ取得の進捗状況をクライアント側で確認することは可能 $ pg_basebackup -h 192.168.0.x -D /bkp/data --progress 1339087/2894148 kB (46%), 2/4 tablespaces バックアップDBデータ
  • 9. © 2020 NTT DATA Corporation 9 サーバ側でのバックアップ取得の進捗状況 (PostgreSQL13) PostgreSQL13からは、 バックアップ取得の進捗状況をサーバ側でもSQLで確認することが可能に! $ psql =# SELECT * FROM pg_stat_progress_basebackup; バックアップDBデータ
  • 10. © 2020 NTT DATA Corporation 10 pg_stat_progress_basebackup =# SELECT * FROM pg_stat_progress_basebackup; -[ RECORD 1 ]:--------+--------------------------- pid | 58783 phase | streaming database files backup_total | 2963609088 backup_streamed | 1372009984 tablespaces_total | 4 tablespaces_streamed| 3 • バックアップを担当するサーバ側プロセスのPID • バックアップ取得の現在の処理フェーズ • バックアップ対象データのトータルサイズ • 現在転送済み(取得済み)のバックアップのサイズ • バックアップ対象のテーブルスペースの数 • 現在転送済み(取得済み)のテーブルスペースの数
  • 11. © 2020 NTT DATA Corporation 11 バックアップ取得の処理フェーズ ① 初期準備 ③ サイズ評価 ④ バックアップ転送 バックアップ開始 バックアップ完了 ⑤ WAL転送/アーカイブ ② チェックポイント =# SELECT * FROM pg_stat_progress_basebackup; -[ RECORD 1 ]:--------+--------------------------- pid | 58783 phase | streaming database files backup_total | 2963609088 backup_streamed | 1372009984 tablespaces_total | 4 tablespaces_streamed| 3
  • 12. © 2020 NTT DATA Corporation 12 (参考) PostgreSQLのコマンド進捗機能 9.6 • pg_stat_progress_vacuum → VACUUM や autovacuum の進捗確認 12 • pg_stat_progress_cluster → CLUSTER や VACUUM FULL の進捗確認 • pg_stat_progress_create_index → CREATE INDEX や REINDEX の進捗確認 13 • pg_stat_progress_analyze → ANALYZE や autoanalyze の進捗確認 • pg_stat_progress_basebackup → pg_basebackup の進捗確認
  • 13. © 2020 NTT DATA Corporation 13 新機能(2) バックアップ・マニフェスト
  • 14. © 2020 NTT DATA Corporation 14 バックアップで困るケース バックアップをリストアしてDBデータを復旧したいとき、 バックアップがリストアできる正常状態なのか、破損しているのか判断つかない!? バックアップ
  • 15. © 2020 NTT DATA Corporation 15 バックアップ・マニフェスト (PostgreSQL13) PostgreSQL13からは、 ① バックアップ取得時に、バックアップの妥当性を検証するための情報である バックアップ・マニフェスト (backup_manifest) を取得可能に! ② pg_verifybackup コマンドを使って、バックアップ・マニフェストから バックアップの妥当性を検証可能に! backup_manifest バックアップDBデータ
  • 16. © 2020 NTT DATA Corporation 16 バックアップ・マニフェストの取得 $ pg_basebackup -h 192.168.0.x -D /bkp/data $ ls /bkp/data PG_VERSION pg_dynshmem pg_replslot pg_tblspc backup_label pg_hba.conf pg_serial pg_twophase backup_manifest pg_ident.conf pg_snapshots pg_wal base pg_logical pg_stat pg_xact global pg_multixact pg_stat_tmp postgresql.auto.conf pg_commit_ts pg_notify pg_subtrans postgresql.conf
  • 17. © 2020 NTT DATA Corporation 17 バックアップ・マニフェストの取得 $ cat /bkp/data/backup_manifest { "PostgreSQL-Backup-Manifest-Version": 1, "Files": [ { "Path": "backup_label", "Size": 224, "Last-Modified": "2020-05-14 15:47:21 GMT", "Checksum-Algorithm": "CRC32C", "Checksum": "0dc6dc58" }, { "Path": "pg_multixact/members/0000", "Size": 8192, "Last-Modified": "2020- 05-14 15:46:01 GMT", "Checksum-Algorithm": "CRC32C", "Checksum": "23464490" }, ... バックアップに含まれるすべてのファイルについて、 ファイルパスやサイズ、最終変更日時、チェックサム、チェックサム・アルゴリズムを JSON形式で一覧化したファイル
  • 18. © 2020 NTT DATA Corporation 18 バックアップの妥当性の検証 $ pg_verifybackup /bkp/data バックアップの妥当性検証に成功 backup successfully verified バックアップ取得時には存在していたファイルが、現在のバックアップから消えている pg_verifybackup: error: "PG_VERSION" is present in the manifest but not on disk バックアップ取得時にはなかったファイルが、現在のバックアップに存在している pg_verifybackup: error: "hoge" is present on disk but not in the manifest バックアップ取得時と現在とでファイルのサイズが異なる pg_verifybackup: error: "PG_VERSION" has size 0 on disk but size 3 in the manifest バックアップ取得時と現在とでファイルの内容(チェックサム)が異なる pg_verifybackup: error: checksum mismatch for file "PG_VERSION"
  • 19. © 2020 NTT DATA Corporation 19 まとめ
  • 20. © 2020 NTT DATA Corporation 20 まとめ PostgreSQL13から、pg_basebackupで 1. バックアップ取得の進捗状況をサーバ側でもSQLで確認 2. バックアップ・マニフェストによりバックアップの妥当性を判断 できるようになります。 v13βがリリースされたら、ぜひ機能をお試しいただければ!!
  • 21. © 2020 NTT DATA Corporation本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。