Movatterモバイル変換


[0]ホーム

URL:


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

オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)2020年7月30日株式会社NTTデータ藤井 雅雄@fujii_masao

Embed presentation

© 2020 NTT DATA Corporation 1 © 2020 NTT DATA Corporation第15回 PostgreSQLアンカンファレンス@オンラインオンライン物理バックアップの排他モードと非排他モードについて2020年7月30日株式会社NTTデータ 藤井雅雄 @fujii_masao
© 2020 NTT DATA Corporation 2藤井 雅雄 @fujii_masaoDatabase 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 の改善についてPostgreSQL 13 での レプリケーション関連 の改善について
© 2020 NTT DATA Corporation 4オンライン物理バックアップの排他モードと非排他モードについて
© 2020 NTT DATA Corporation 5PostgreSQLで利用できるバックアップ手法バックアップ論理バックアップ(SQLダンプ)pg_dump /pg_dumpall物理バックアップオフラインバックアップ(コールドバックアップ)独自スクリプト(pg_ctlstop + rsyncなど)オンラインバックアップ(ホットバックアップ)pg_basebackup外部ツール(pg_rman、Barmanなど)独自スクリプト(pg_start_backup +pg_stop_backup)排他モード非排他モード
© 2020 NTT DATA Corporation 6PostgreSQLで利用できるバックアップ手法バックアップ論理バックアップ(SQLダンプ)pg_dump /pg_dumpall物理バックアップオフラインバックアップ(コールドバックアップ)独自スクリプト(pg_ctlstop + rsyncなど)オンラインバックアップ(ホットバックアップ)pg_basebackup外部ツール(pg_rman、Barmanなど)独自スクリプト(pg_start_backup +pg_stop_backup)排他モード非排他モード今日取り上げるバックアップ手法
© 2020 NTT DATA Corporation 7ご存じでしょうか?非排他的な手法が推奨され、排他的な手法は推奨されず、将来的に削除されます。https://www.postgresql.jp/document/current/html/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP
© 2020 NTT DATA Corporation 8排他モード① バックアップモードの開始$ psql -c "SELECT pg_start_backup('mybackup')"② DBクラスタのバックアップOSコマンドやスナップショットなどを使って、DBクラスタと全テーブルスペースを物理的にバックアップ$ cp -a $PGDATA /tblspc1 /tblspc2 /backup③ バックアップモードの終了$ psql -c "SELECT pg_stop_backup()"
© 2020 NTT DATA Corporation 9非排他モード① バックアップモードの開始$ 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を実行
© 2020 NTT DATA Corporation 10非排他モード=# 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: 2020-07-06 23:55:11 JST +|| LABEL: mybackup +|| START TIMELINE: 1 +|| |(1 row)backup_label tablespace_map④-2 backup_labelとtablespace_mapをバックアップに格納$ mv backup_label tablespace_map /backup④-1 pg_stop_backup()の戻り値からbackup_labelとtablespace_mapのファイルを作成
© 2020 NTT DATA Corporation 11排他モードと非排他モードの比較排他モード 非排他モード利用可能なバージョン 8.0以降 9.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は存在しないため)
© 2020 NTT DATA Corporation 12排他モードでバックアップ中にクラッシュした場合のリカバリ失敗についてpg_start_backupCHECKPOINT12345? WALファイル凡例クラッシュCHECKPOINTpg_stop_backup各操作とWAL生成の流れクラッシュリカバリでは最新CHECKPOINT以降のWALを適用backup_labelがある状態でクラッシュリカバリが始まると、pg_start_backup以降のWALを適用• backup_labelがpg_start_backup以降のWAL適用を指示 ②~④のWALが削除済だとリカバリ失敗 未削除の場合もリカバリ時間が長くなる
© 2020 NTT DATA Corporation 13ご存じでしょうか?非排他的な手法が推奨され、排他的な手法は推奨されず、将来的に削除されます。https://www.postgresql.jp/document/current/html/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP
© 2020 NTT DATA Corporation 14排他モードを削除するパッチv14で排他モードを削除するパッチが提案されているRemove deprecated exclusive backup modehttps://commitfest.postgresql.org/28/1913/削除についてまだ議論中だが、v14で削除となる可能性が高い(ように見える)• リカバリ失敗のリスクを危険視する開発者が多い• 排他モードを利用中のユーザがいるため削除に反対する意見もあるが少数• 「排他モードは将来的に削除」とv9.6で明記してから、v14リリース時には5年経過済排他モードが削除されても問題ないでしょうか?
© 2020 NTT DATA Corporation 15排他モードの削除に備えて1. pg_basebackupまたは外部ツールに移行できるのであれば移行する2. 独自スクリプトを改修して、非排他モードに移行する3. (排他モードの必要性を強くコミュニティで主張して、排他モードを削除させない)
© 2020 NTT DATA Corporation 16排他モードから非排他モードへの移行例$ psql -c "SELECT pg_start_backup('test')"$ cp -a /pgdata/data /backup$ psql -c "SELECT pg_stop_backup()"$ psql -f backup.sqlSELECT pg_start_backup('test', false, false);¥! cp -a /pgdata/data /backupSELECTpg_file_write('/tmp/backup_label', labelfile, false),pg_file_write('/tmp/tablespace_map', spcmapfile, false)FROM pg_stop_backup(false);¥! mv /tmp/backup_label /tmp/tablespace_map /backup/data排他モード非排他モード・同一セッション内でpg_start_backupとpg_stop_backupを簡単に実行できるように、バックアップのすべての操作をpsql内で実行する・OSコマンドはpsqlメタコマンドの¥!を介して実行・pg_stop_backupからのbackup_labelとtablespace_mapの作成には、pg_file_write関数を使う・pg_file_write関数を使うにはadminpackのエクステンションをCREATE EXTENSIONする必要がある(セキュリティ上の問題がないかは要確認)
© 2020 NTT DATA Corporation 17まとめpg_start_backupとpg_stop_backupを使ったバックアップには排他モードと非排他モードがある排他モードは将来的に削除される予定 (v14で削除の可能性がある)
© 2020 NTT DATA Corporation本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

Recommended

PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PDF
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQL 15の新機能を徹底解説
PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PDF
Vacuum徹底解説
PDF
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PDF
まずやっとくPostgreSQLチューニング
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
PDF
PostgreSQLレプリケーション徹底紹介
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PDF
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PDF
PostgreSQLでスケールアウト
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PDF
Inside vacuum - 第一回PostgreSQLプレ勉強会
PDF
Oracle Data Guard による高可用性
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PPTX
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
PDF
OSC北海道2014_JPUG資料
PDF
PostgreSQLの運用・監視にまつわるエトセトラ

More Related Content

PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PDF
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQL 15の新機能を徹底解説
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス...
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 15の新機能を徹底解説

What's hot

PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PDF
Vacuum徹底解説
PDF
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PDF
まずやっとくPostgreSQLチューニング
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
PDF
PostgreSQLレプリケーション徹底紹介
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PDF
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PDF
PostgreSQLでスケールアウト
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PDF
Inside vacuum - 第一回PostgreSQLプレ勉強会
PDF
Oracle Data Guard による高可用性
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PPTX
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
Vacuum徹底解説
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
まずやっとくPostgreSQLチューニング
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA と PostgreSQL が挑んだ総力戦
PostgreSQLレプリケーション徹底紹介
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PostgreSQLでスケールアウト
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
Inside vacuum - 第一回PostgreSQLプレ勉強会
Oracle Data Guard による高可用性
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)

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

PDF
OSC北海道2014_JPUG資料
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
PDF
JPUG 沖縄支部セミナー資料(2013-04-27)
PDF
OSC東京2013/Spring_JPUG資料
PDF
PostgreSQLレプリケーション(pgcon17j_t4)
PDF
PostgreSQL10徹底解説
PDF
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PDF
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PDF
PostgreSQL 9.6 新機能紹介
PDF
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
PDF
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
PPTX
PostgreSQLのソース・ターゲットエンドポイントとしての利用
PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PDF
MySQLとPostgreSQLの基本的なバックアップ比較
PDF
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
PDF
PostgreSQL9.3新機能紹介
PDF
20171028 osc-nagaoka-postgre sql-10
OSC北海道2014_JPUG資料
PostgreSQLの運用・監視にまつわるエトセトラ
JPUG 沖縄支部セミナー資料(2013-04-27)
OSC東京2013/Spring_JPUG資料
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQL10徹底解説
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
アーキテクチャから理解するPostgreSQLのレプリケーション
PostgreSQLのgitレポジトリから見える2020年の開発状況(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQL 9.6 新機能紹介
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
PostgreSQLのソース・ターゲットエンドポイントとしての利用
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
MySQLとPostgreSQLの基本的なバックアップ比較
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
PostgreSQL9.3新機能紹介
20171028 osc-nagaoka-postgre sql-10

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講演資料)

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

  • 1.
    © 2020 NTTDATA Corporation 1 © 2020 NTT DATA Corporation第15回 PostgreSQLアンカンファレンス@オンラインオンライン物理バックアップの排他モードと非排他モードについて2020年7月30日株式会社NTTデータ 藤井雅雄 @fujii_masao
  • 2.
    © 2020 NTTDATA Corporation 2藤井 雅雄 @fujii_masaoDatabase Technical Lead @ NTTデータデータベース研究開発、PostgreSQL 技術支援PostgreSQLコミッタレプリケーション(非同期 / 同期 / カスケード / クォーラムコミット)WAL圧縮、バックアップ進捗pg_bigm(全文検索モジュール)コミッタ自己紹介
  • 3.
    © 2020 NTTDATA Corporation 3本講演について講演資料は、後日、NTTデータのSlideShareアカウント上で公開予定です。https://www.slideshare.net/nttdata-tech以前のアンカンファレンスの講演資料は公開済です。PostgreSQL 13 での pg_stat_statements の改善についてPostgreSQL 13 での pg_basebackup の改善についてPostgreSQL 13 での レプリケーション関連 の改善について
  • 4.
    © 2020 NTTDATA Corporation 4オンライン物理バックアップの排他モードと非排他モードについて
  • 5.
    © 2020 NTTDATA Corporation 5PostgreSQLで利用できるバックアップ手法バックアップ論理バックアップ(SQLダンプ)pg_dump /pg_dumpall物理バックアップオフラインバックアップ(コールドバックアップ)独自スクリプト(pg_ctlstop + rsyncなど)オンラインバックアップ(ホットバックアップ)pg_basebackup外部ツール(pg_rman、Barmanなど)独自スクリプト(pg_start_backup +pg_stop_backup)排他モード非排他モード
  • 6.
    © 2020 NTTDATA Corporation 6PostgreSQLで利用できるバックアップ手法バックアップ論理バックアップ(SQLダンプ)pg_dump /pg_dumpall物理バックアップオフラインバックアップ(コールドバックアップ)独自スクリプト(pg_ctlstop + rsyncなど)オンラインバックアップ(ホットバックアップ)pg_basebackup外部ツール(pg_rman、Barmanなど)独自スクリプト(pg_start_backup +pg_stop_backup)排他モード非排他モード今日取り上げるバックアップ手法
  • 7.
    © 2020 NTTDATA Corporation 7ご存じでしょうか?非排他的な手法が推奨され、排他的な手法は推奨されず、将来的に削除されます。https://www.postgresql.jp/document/current/html/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP
  • 8.
    © 2020 NTTDATA Corporation 8排他モード① バックアップモードの開始$ psql -c "SELECT pg_start_backup('mybackup')"② DBクラスタのバックアップOSコマンドやスナップショットなどを使って、DBクラスタと全テーブルスペースを物理的にバックアップ$ cp -a $PGDATA /tblspc1 /tblspc2 /backup③ バックアップモードの終了$ psql -c "SELECT pg_stop_backup()"
  • 9.
    © 2020 NTTDATA Corporation 9非排他モード① バックアップモードの開始$ 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を実行
  • 10.
    © 2020 NTTDATA Corporation 10非排他モード=# 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: 2020-07-06 23:55:11 JST +|| LABEL: mybackup +|| START TIMELINE: 1 +|| |(1 row)backup_label tablespace_map④-2 backup_labelとtablespace_mapをバックアップに格納$ mv backup_label tablespace_map /backup④-1 pg_stop_backup()の戻り値からbackup_labelとtablespace_mapのファイルを作成
  • 11.
    © 2020 NTTDATA Corporation 11排他モードと非排他モードの比較排他モード 非排他モード利用可能なバージョン 8.0以降 9.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は存在しないため)
  • 12.
    © 2020 NTTDATA Corporation 12排他モードでバックアップ中にクラッシュした場合のリカバリ失敗についてpg_start_backupCHECKPOINT12345? WALファイル凡例クラッシュCHECKPOINTpg_stop_backup各操作とWAL生成の流れクラッシュリカバリでは最新CHECKPOINT以降のWALを適用backup_labelがある状態でクラッシュリカバリが始まると、pg_start_backup以降のWALを適用• backup_labelがpg_start_backup以降のWAL適用を指示 ②~④のWALが削除済だとリカバリ失敗 未削除の場合もリカバリ時間が長くなる
  • 13.
    © 2020 NTTDATA Corporation 13ご存じでしょうか?非排他的な手法が推奨され、排他的な手法は推奨されず、将来的に削除されます。https://www.postgresql.jp/document/current/html/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP
  • 14.
    © 2020 NTTDATA Corporation 14排他モードを削除するパッチv14で排他モードを削除するパッチが提案されているRemove deprecated exclusive backup modehttps://commitfest.postgresql.org/28/1913/削除についてまだ議論中だが、v14で削除となる可能性が高い(ように見える)• リカバリ失敗のリスクを危険視する開発者が多い• 排他モードを利用中のユーザがいるため削除に反対する意見もあるが少数• 「排他モードは将来的に削除」とv9.6で明記してから、v14リリース時には5年経過済排他モードが削除されても問題ないでしょうか?
  • 15.
    © 2020 NTTDATA Corporation 15排他モードの削除に備えて1. pg_basebackupまたは外部ツールに移行できるのであれば移行する2. 独自スクリプトを改修して、非排他モードに移行する3. (排他モードの必要性を強くコミュニティで主張して、排他モードを削除させない)
  • 16.
    © 2020 NTTDATA Corporation 16排他モードから非排他モードへの移行例$ psql -c "SELECT pg_start_backup('test')"$ cp -a /pgdata/data /backup$ psql -c "SELECT pg_stop_backup()"$ psql -f backup.sqlSELECT pg_start_backup('test', false, false);¥! cp -a /pgdata/data /backupSELECTpg_file_write('/tmp/backup_label', labelfile, false),pg_file_write('/tmp/tablespace_map', spcmapfile, false)FROM pg_stop_backup(false);¥! mv /tmp/backup_label /tmp/tablespace_map /backup/data排他モード非排他モード・同一セッション内でpg_start_backupとpg_stop_backupを簡単に実行できるように、バックアップのすべての操作をpsql内で実行する・OSコマンドはpsqlメタコマンドの¥!を介して実行・pg_stop_backupからのbackup_labelとtablespace_mapの作成には、pg_file_write関数を使う・pg_file_write関数を使うにはadminpackのエクステンションをCREATE EXTENSIONする必要がある(セキュリティ上の問題がないかは要確認)
  • 17.
    © 2020 NTTDATA Corporation 17まとめpg_start_backupとpg_stop_backupを使ったバックアップには排他モードと非排他モードがある排他モードは将来的に削除される予定 (v14で削除の可能性がある)
  • 18.
    © 2020 NTTDATA Corporation本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

[8]ページ先頭

©2009-2025 Movatter.jp