Movatterモバイル変換


[0]ホーム

URL:


オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)

オンライン物理バックアップの排他モードと非排他モードについて~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)2022年7月29日NTTデータ技術開発本部 先進コンピューティング技術センタ藤井 雅雄

Embed presentation

© 2022 NTT DATA Corporation 1第34回 PostgreSQLアンカンファレンス@オンラインオンライン物理バックアップの排他モードと非排他モードについて~PostgreSQLバージョン15対応版~2022年7月29日株式会社NTTデータ 藤井 雅雄
© 2022 NTT DATA Corporation 2自己紹介藤井 雅雄Database Technical Lead @ NTTデータデータベース研究開発PostgreSQL 技術支援PostgreSQLコミッタレプリケーションWAL圧縮バックアップ進捗確認pg_bigm(全文検索モジュール) コミッタfujii_masaoMasaoFujii
© 2022 NTT DATA Corporation 3本講演について講演資料は、後日、NTTデータのSlideShareアカウント上で公開予定です。https://www.slideshare.net/nttdata-tech今日紹介するPostgreSQL15に関する内容は、正式リリースまでの間に変更となる可能性があることにご注意ください!!
© 2022 NTT DATA Corporation 4オンライン物理バックアップの排他モードと非排他モードについて
© 2022 NTT DATA Corporation 5PostgreSQLで利用できるバックアップ手法バックアップ論理バックアップ(SQLダンプ)pg_dump /pg_dumpall物理バックアップオフラインバックアップ(コールドバックアップ)独自スクリプト(pg_ctlstop + rsyncなど)オンラインバックアップ(ホットバックアップ)pg_basebackup外部ツール(pg_rman、Barmanなど)独自スクリプト(pg_start_backup +pg_stop_backup)排他モード非排他モード
© 2022 NTT DATA Corporation 6PostgreSQLで利用できるバックアップ手法バックアップ論理バックアップ(SQLダンプ)pg_dump /pg_dumpall物理バックアップオフラインバックアップ(コールドバックアップ)独自スクリプト(pg_ctlstop + rsyncなど)オンラインバックアップ(ホットバックアップ)pg_basebackup外部ツール(pg_rman、Barmanなど)独自スクリプト(pg_start_backup +pg_stop_backup)排他モード非排他モード今日取り上げるバックアップ手法
© 2022 NTT DATA Corporation 7ご存じでしょうか?PostgreSQL14以前のドキュメント非排他的な手法が推奨され、排他的な手法は推奨されず、将来的に削除されます。https://www.postgresql.jp/document/13/html/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP
© 2022 NTT DATA Corporation 8ご存じでしょうか?PostgreSQL15リリースノートRemove long-deprecated exclusive backup modeFunctions pg_start_backup()/pg_stop_backup() have beenrenamed to pg_backup_start()/pg_backup_stop()https://www.postgresql.org/docs/release/15.0/
© 2022 NTT DATA Corporation 9排他モード (v14以前)① バックアップモードの開始$ psql -c "SELECT pg_start_backup('mybackup')"② DBクラスタのバックアップOSコマンドやスナップショットなどを使って、DBクラスタと全テーブルスペースを物理的にバックアップ$ cp -a $PGDATA /tblspc1 /tblspc2 /backup③ バックアップモードの終了$ psql -c "SELECT pg_stop_backup()"
© 2022 NTT DATA Corporation 10非排他モード (v14以前)① バックアップモードの開始$ psql=# SELECT pg_start_backup('mybackup', false, false);② DBクラスタのバックアップOSコマンドやスナップショットなどを使って、DBクラスタと全テーブルスペースを物理的にバックアップ$ cp -a $PGDATA /tblspc1 /tblspc2 /backup③ バックアップモードの終了=# SELECT pg_stop_backup(false);④ backup_labelとtablespace_mapのバックアップpg_stop_backup()の戻り値の内容からbackup_labelとtablespace_mapの2つのファイルを作成して、バックアップに含める・第3引数にfalseを指定・pg_start_backupを実行したセッションをpg_stop_backupまで維持・第1引数にfalseを指定・pg_start_backupを実行したセッションでpg_stop_backupを実行
© 2022 NTT DATA Corporation 11非排他モード (v14以前)=# SELECT * FROM pg_stop_backup(false);lsn | labelfile | spcmapfile-----------+---------------------------------------------------------------+-------------------------------0/3000138 | START WAL LOCATION: 0/3000028 (file 000000010000000000000003)+| 16386 /dav/head-pgsql/tblspc2+| CHECKPOINT LOCATION: 0/3000060 +| 16385 /dav/head-pgsql/tblspc1+| BACKUP METHOD: streamed +|| BACKUP FROM: master +|| START TIME: 2022-07-06 23:55:11 JST +|| LABEL: mybackup +|| START TIMELINE: 1 +|| |(1 row)④-2 backup_labelとtablespace_mapをバックアップに格納$ mv backup_label tablespace_map /backup④-1 pg_stop_backup()の戻り値からbackup_labelとtablespace_mapのファイルを作成backup_label tablespace_map
© 2022 NTT DATA Corporation 12排他モードと非排他モードの比較排他モード 非排他モード利用可能なバージョン v8.0以降 (v15でPostgreSQL本体から削除) v9.6以降バックアップの同時実行可能数1 複数スタンバイからのバックアップ不可 可能pg_start_backupとpg_stop_backupを実行するセッション同じまたは異なるセッション バックアップ中のセッション断による影響はない pg_stop_backupを忘れるとバックアップモードは終了しない(次回のバックアップ取得が失敗する)同じセッション セッション断によりバックアップが失敗する(pg_start_backupからやり直し) セッションが切れればバックアップモードは終了するbackup_labelとtablespace_mapの作成pg_start_backupがDBクラスタ内に作成 DBクラスタをバックアップすれば、各ファイルは自動的にバックアップに含まれる バックアップ中にPostgreSQLがクラッシュすると、クラッシュリカバリが失敗する可能性がある(backup_labelがDBクラスタ内にある状態でクラッシュリカバリが始まるため)pg_stop_backupからユーザが作成 ユーザが各ファイルをバックアップに含める必要がある 左記のリカバリ失敗の可能性はない(DBクラスタ内にbackup_labelは存在しないため)
© 2022 NTT DATA Corporation 13排他モードでバックアップ中にクラッシュした場合のリカバリ失敗についてpg_start_backupCHECKPOINT12345? WALファイル凡例クラッシュCHECKPOINTpg_stop_backup各操作とWAL生成の流れクラッシュリカバリでは最新CHECKPOINT以降のWALを適用backup_labelがある状態でクラッシュリカバリが始まると、pg_start_backup以降のWALを適用• backup_labelがpg_start_backup以降のWAL適用を指示 ②~④のWALが削除済だとリカバリ失敗 未削除の場合もリカバリ時間が長くなる
© 2022 NTT DATA Corporation 14PostgreSQL15での変更点排他モードは削除、排他モード用の関数も削除非排他モードも関数名や引数指定が変更モード 操作 v14以前 v15以降排他モードバックアップの開始 pg_start_backup()利用不可バックアップの終了 pg_stop_backup()バックアップを実行中かの確認 pg_is_in_backup()バックアップ開始時刻の取得 pg_backup_start_time()非排他モードバックアップの開始pg_start_backup()で第3引数をfalseに指定pg_backup_start()バックアップの終了pg_stop_backup()で第1引数をfalseに指定pg_backup_stop()https://www.postgresql.org/docs/release/15.0/
© 2022 NTT DATA Corporation 15排他モード利用者のPostgreSQL15以降での選択肢1. pg_basebackupまたは外部ツールに移行できるのであれば移行する2. 独自スクリプトを改修して、非排他モードに移行する3. PostgreSQL15以降でも排他モードをサポートするエクステンションを利用する
© 2022 NTT DATA Corporation 16排他モードから非排他モード(v15以降)への移行例$ psql -c "SELECT pg_start_backup('test')"$ cp -a /pgdata/data /backup$ psql -c "SELECT pg_stop_backup()"$ psql -f backup.sqlSELECT * FROM pg_backup_start('test', false);! cp -a /pgdata/data /backupSELECT * FROM pg_backup_stop() gsetpset tuples_only onpset format unalignedo /backup/data/backup_labelSELECT :'labelfile';o /backup/data/tablespace_mapSELECT :'spcmapfile';排他モード非排他モード(以降)v15• 同一セッション内でpg_backup_start()とpg_backup_stop()を簡単に実行できるように、バックアップのすべての操作をpsql内で実行する• OSコマンドはpsqlメタコマンドの!を介して実行• pg_backup_stop()の結果をpsqlメタコマンドのgsetで保存して、その内容をo経由で書き出すことでbackup_labelとtablespace_mapのファイルを作成する。余計な内容まで書き出さないようにpsetで設定する。
© 2022 NTT DATA Corporation 17PostgreSQL15以降でも排他モードをサポートするエクステンションpg_exclusive_backuphttps://github.com/MasaoFujii/pg_exclusive_backupモード 操作 v14以前、 v15以降+pg_exclusive_backup排他モードバックアップの開始 pg_start_backup()バックアップの終了 pg_stop_backup()バックアップを実行中かの確認 pg_is_in_backup()バックアップ開始時刻の取得 pg_backup_start_time()PostgreSQL15以降で排他モードでバックアップするための関数を提供
© 2022 NTT DATA Corporation 18まとめオンライン物理バックアップには排他モードと非排他モードがある。PostgreSQL15で排他モードは削除され、非排他モードも関数名などが変更される。排他モードの利用者は、PostgreSQL15以降で物理バックアップの方式を見直す必要がある。
© 2022 NTT DATA Corporationその他、記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

Recommended

PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PDF
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
PostgreSQLバックアップの基本
PDF
PostgreSQL 15の新機能を徹底解説
PDF
Vacuum徹底解説
PDF
XIDを周回させてみよう
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PDF
PostgreSQL: XID周回問題に潜む別の問題
PDF
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
PDF
PostgreSQLでスケールアウト
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
使ってみませんか?pg_hint_plan
PDF
Inside vacuum - 第一回PostgreSQLプレ勉強会
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PDF
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLレプリケーション徹底紹介
PDF
OSC北海道2014_JPUG資料
PDF
JPUG 沖縄支部セミナー資料(2013-04-27)

More Related Content

PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PDF
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)

What's hot

PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
PostgreSQLバックアップの基本
PDF
PostgreSQL 15の新機能を徹底解説
PDF
Vacuum徹底解説
PDF
XIDを周回させてみよう
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PDF
PostgreSQL: XID周回問題に潜む別の問題
PDF
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
PDF
PostgreSQLでスケールアウト
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
使ってみませんか?pg_hint_plan
PDF
Inside vacuum - 第一回PostgreSQLプレ勉強会
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PDF
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLレプリケーション徹底紹介
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQLバックアップの基本
PostgreSQL 15の新機能を徹底解説
Vacuum徹底解説
XIDを周回させてみよう
アーキテクチャから理解するPostgreSQLのレプリケーション
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQL: XID周回問題に潜む別の問題
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
PostgreSQLでスケールアウト
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
使ってみませんか?pg_hint_plan
Inside vacuum - 第一回PostgreSQLプレ勉強会
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLレプリケーション徹底紹介

Similar to オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)

PDF
OSC北海道2014_JPUG資料
PDF
JPUG 沖縄支部セミナー資料(2013-04-27)
PDF
OSC東京2013/Spring_JPUG資料
PDF
PostgreSQLレプリケーション(pgcon17j_t4)
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
PDF
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQL10徹底解説
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PDF
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
PPTX
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
MySQLとPostgreSQLの基本的なバックアップ比較
PDF
PostgreSQL 9.6 新機能紹介
PDF
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
PDF
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
PDF
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PPTX
PostgreSQLのソース・ターゲットエンドポイントとしての利用
PDF
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
PDF
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSC北海道2014_JPUG資料
JPUG 沖縄支部セミナー資料(2013-04-27)
OSC東京2013/Spring_JPUG資料
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLの運用・監視にまつわるエトセトラ
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL10徹底解説
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
MySQLとPostgreSQLの基本的なバックアップ比較
PostgreSQL 9.6 新機能紹介
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PostgreSQLのソース・ターゲットエンドポイントとしての利用
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)

More from NTT DATA Technology & Innovation

PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
PDF
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
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講演資料)
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
開発中の新機能 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講演資料)

オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス@オンライン 発表資料)

  • 1.
    © 2022 NTTDATA Corporation 1第34回 PostgreSQLアンカンファレンス@オンラインオンライン物理バックアップの排他モードと非排他モードについて~PostgreSQLバージョン15対応版~2022年7月29日株式会社NTTデータ 藤井 雅雄
  • 2.
    © 2022 NTTDATA Corporation 2自己紹介藤井 雅雄Database Technical Lead @ NTTデータデータベース研究開発PostgreSQL 技術支援PostgreSQLコミッタレプリケーションWAL圧縮バックアップ進捗確認pg_bigm(全文検索モジュール) コミッタfujii_masaoMasaoFujii
  • 3.
    © 2022 NTTDATA Corporation 3本講演について講演資料は、後日、NTTデータのSlideShareアカウント上で公開予定です。https://www.slideshare.net/nttdata-tech今日紹介するPostgreSQL15に関する内容は、正式リリースまでの間に変更となる可能性があることにご注意ください!!
  • 4.
    © 2022 NTTDATA Corporation 4オンライン物理バックアップの排他モードと非排他モードについて
  • 5.
    © 2022 NTTDATA Corporation 5PostgreSQLで利用できるバックアップ手法バックアップ論理バックアップ(SQLダンプ)pg_dump /pg_dumpall物理バックアップオフラインバックアップ(コールドバックアップ)独自スクリプト(pg_ctlstop + rsyncなど)オンラインバックアップ(ホットバックアップ)pg_basebackup外部ツール(pg_rman、Barmanなど)独自スクリプト(pg_start_backup +pg_stop_backup)排他モード非排他モード
  • 6.
    © 2022 NTTDATA Corporation 6PostgreSQLで利用できるバックアップ手法バックアップ論理バックアップ(SQLダンプ)pg_dump /pg_dumpall物理バックアップオフラインバックアップ(コールドバックアップ)独自スクリプト(pg_ctlstop + rsyncなど)オンラインバックアップ(ホットバックアップ)pg_basebackup外部ツール(pg_rman、Barmanなど)独自スクリプト(pg_start_backup +pg_stop_backup)排他モード非排他モード今日取り上げるバックアップ手法
  • 7.
    © 2022 NTTDATA Corporation 7ご存じでしょうか?PostgreSQL14以前のドキュメント非排他的な手法が推奨され、排他的な手法は推奨されず、将来的に削除されます。https://www.postgresql.jp/document/13/html/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP
  • 8.
    © 2022 NTTDATA Corporation 8ご存じでしょうか?PostgreSQL15リリースノートRemove long-deprecated exclusive backup modeFunctions pg_start_backup()/pg_stop_backup() have beenrenamed to pg_backup_start()/pg_backup_stop()https://www.postgresql.org/docs/release/15.0/
  • 9.
    © 2022 NTTDATA Corporation 9排他モード (v14以前)① バックアップモードの開始$ psql -c "SELECT pg_start_backup('mybackup')"② DBクラスタのバックアップOSコマンドやスナップショットなどを使って、DBクラスタと全テーブルスペースを物理的にバックアップ$ cp -a $PGDATA /tblspc1 /tblspc2 /backup③ バックアップモードの終了$ psql -c "SELECT pg_stop_backup()"
  • 10.
    © 2022 NTTDATA Corporation 10非排他モード (v14以前)① バックアップモードの開始$ psql=# SELECT pg_start_backup('mybackup', false, false);② DBクラスタのバックアップOSコマンドやスナップショットなどを使って、DBクラスタと全テーブルスペースを物理的にバックアップ$ cp -a $PGDATA /tblspc1 /tblspc2 /backup③ バックアップモードの終了=# SELECT pg_stop_backup(false);④ backup_labelとtablespace_mapのバックアップpg_stop_backup()の戻り値の内容からbackup_labelとtablespace_mapの2つのファイルを作成して、バックアップに含める・第3引数にfalseを指定・pg_start_backupを実行したセッションをpg_stop_backupまで維持・第1引数にfalseを指定・pg_start_backupを実行したセッションでpg_stop_backupを実行
  • 11.
    © 2022 NTTDATA Corporation 11非排他モード (v14以前)=# SELECT * FROM pg_stop_backup(false);lsn | labelfile | spcmapfile-----------+---------------------------------------------------------------+-------------------------------0/3000138 | START WAL LOCATION: 0/3000028 (file 000000010000000000000003)+| 16386 /dav/head-pgsql/tblspc2+| CHECKPOINT LOCATION: 0/3000060 +| 16385 /dav/head-pgsql/tblspc1+| BACKUP METHOD: streamed +|| BACKUP FROM: master +|| START TIME: 2022-07-06 23:55:11 JST +|| LABEL: mybackup +|| START TIMELINE: 1 +|| |(1 row)④-2 backup_labelとtablespace_mapをバックアップに格納$ mv backup_label tablespace_map /backup④-1 pg_stop_backup()の戻り値からbackup_labelとtablespace_mapのファイルを作成backup_label tablespace_map
  • 12.
    © 2022 NTTDATA Corporation 12排他モードと非排他モードの比較排他モード 非排他モード利用可能なバージョン v8.0以降 (v15でPostgreSQL本体から削除) v9.6以降バックアップの同時実行可能数1 複数スタンバイからのバックアップ不可 可能pg_start_backupとpg_stop_backupを実行するセッション同じまたは異なるセッション バックアップ中のセッション断による影響はない pg_stop_backupを忘れるとバックアップモードは終了しない(次回のバックアップ取得が失敗する)同じセッション セッション断によりバックアップが失敗する(pg_start_backupからやり直し) セッションが切れればバックアップモードは終了するbackup_labelとtablespace_mapの作成pg_start_backupがDBクラスタ内に作成 DBクラスタをバックアップすれば、各ファイルは自動的にバックアップに含まれる バックアップ中にPostgreSQLがクラッシュすると、クラッシュリカバリが失敗する可能性がある(backup_labelがDBクラスタ内にある状態でクラッシュリカバリが始まるため)pg_stop_backupからユーザが作成 ユーザが各ファイルをバックアップに含める必要がある 左記のリカバリ失敗の可能性はない(DBクラスタ内にbackup_labelは存在しないため)
  • 13.
    © 2022 NTTDATA Corporation 13排他モードでバックアップ中にクラッシュした場合のリカバリ失敗についてpg_start_backupCHECKPOINT12345? WALファイル凡例クラッシュCHECKPOINTpg_stop_backup各操作とWAL生成の流れクラッシュリカバリでは最新CHECKPOINT以降のWALを適用backup_labelがある状態でクラッシュリカバリが始まると、pg_start_backup以降のWALを適用• backup_labelがpg_start_backup以降のWAL適用を指示 ②~④のWALが削除済だとリカバリ失敗 未削除の場合もリカバリ時間が長くなる
  • 14.
    © 2022 NTTDATA Corporation 14PostgreSQL15での変更点排他モードは削除、排他モード用の関数も削除非排他モードも関数名や引数指定が変更モード 操作 v14以前 v15以降排他モードバックアップの開始 pg_start_backup()利用不可バックアップの終了 pg_stop_backup()バックアップを実行中かの確認 pg_is_in_backup()バックアップ開始時刻の取得 pg_backup_start_time()非排他モードバックアップの開始pg_start_backup()で第3引数をfalseに指定pg_backup_start()バックアップの終了pg_stop_backup()で第1引数をfalseに指定pg_backup_stop()https://www.postgresql.org/docs/release/15.0/
  • 15.
    © 2022 NTTDATA Corporation 15排他モード利用者のPostgreSQL15以降での選択肢1. pg_basebackupまたは外部ツールに移行できるのであれば移行する2. 独自スクリプトを改修して、非排他モードに移行する3. PostgreSQL15以降でも排他モードをサポートするエクステンションを利用する
  • 16.
    © 2022 NTTDATA Corporation 16排他モードから非排他モード(v15以降)への移行例$ psql -c "SELECT pg_start_backup('test')"$ cp -a /pgdata/data /backup$ psql -c "SELECT pg_stop_backup()"$ psql -f backup.sqlSELECT * FROM pg_backup_start('test', false);! cp -a /pgdata/data /backupSELECT * FROM pg_backup_stop() gsetpset tuples_only onpset format unalignedo /backup/data/backup_labelSELECT :'labelfile';o /backup/data/tablespace_mapSELECT :'spcmapfile';排他モード非排他モード(以降)v15• 同一セッション内でpg_backup_start()とpg_backup_stop()を簡単に実行できるように、バックアップのすべての操作をpsql内で実行する• OSコマンドはpsqlメタコマンドの!を介して実行• pg_backup_stop()の結果をpsqlメタコマンドのgsetで保存して、その内容をo経由で書き出すことでbackup_labelとtablespace_mapのファイルを作成する。余計な内容まで書き出さないようにpsetで設定する。
  • 17.
    © 2022 NTTDATA Corporation 17PostgreSQL15以降でも排他モードをサポートするエクステンションpg_exclusive_backuphttps://github.com/MasaoFujii/pg_exclusive_backupモード 操作 v14以前、 v15以降+pg_exclusive_backup排他モードバックアップの開始 pg_start_backup()バックアップの終了 pg_stop_backup()バックアップを実行中かの確認 pg_is_in_backup()バックアップ開始時刻の取得 pg_backup_start_time()PostgreSQL15以降で排他モードでバックアップするための関数を提供
  • 18.
    © 2022 NTTDATA Corporation 18まとめオンライン物理バックアップには排他モードと非排他モードがある。PostgreSQL15で排他モードは削除され、非排他モードも関数名などが変更される。排他モードの利用者は、PostgreSQL15以降で物理バックアップの方式を見直す必要がある。
  • 19.
    © 2022 NTTDATA Corporationその他、記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

[8]ページ先頭

©2009-2025 Movatter.jp