最終章は運用についてです。運用でまず重要なのは,バックアップとリストアです。データの死はサービスの死と言っても過言ではありません。PostgreSQLのバックアップとリストアを学んでいきましょう。本節では,はじめにRDBMSのバックアップの種類とリストアの設計をおさらいします。そのあと,PostgreSQLでのバックアップツールや勘どころを紹介します。自分のバックアップのやり方を見なおす機会にご活用ください。そのあとの節では,運用で役立つレプリケーション,パーティション,バージョンアップ,日本語ドキュメントについて解説します。各節を通して,PostgreSQLを実際に使っていくうえでの勘どころを押さえましょう。バックアップの種類バックアップには次の種類があります。論理バックアップSQLをそのまま保存する。無停止かつお手軽に実施できる。バックアップした時点までしか戻せない物理バックアップサーバを止めてデータファイルをコピーする。多くの場合,論理バックアップより高速に実施できる。Recovery)無停止でデータファイルとWALアーカイブをコピーする。最新状態までの任意の時点に戻せる。運用コストは高くなる論理バックアップは一般的に,無停止でお手軽な反面,データサイズが大きくなるとバックアップの時間が延び,リストア時間もそれに合わせて長くなります。それに対して物理バックアップは,停止を伴いますが,rsyncなどでファイルバックアップすればよく,高速に実行できます。どちらも運用はシンプルですが,リストアはバックアップした時点までしか戻せません。バックアップした直後から最新状態までの任意の時点に戻すには,バックアップ後からの差分が必要になります。この差分を埋めるために,WALを利用したバックアップと,リストアの手法としてPITRを利用する必要があります。PITRは万能に見えますが,データファイルとWALアーカイブの両方の管理が必要なため運用コストが高くなり,リストアにはエンジニアのスキルが必要になります。このようにそれぞれ,メリットとデメリットがあります。リストアの設計リストアを設計するうえでのポイントは稼働率です。表1のように,稼働率から年間の停止可能時間が決まるわけですから,それによって障害対応する場合のバックアップとリストアの方針も決まります。月に複数回のメンテナンス時間を設けることができる。オンプレミスなら予備のマシンが必要になる。無停止で運用する専用サーバや,大規模な冗長構成のシステムやハードウェアが必要になり,急激にコストが高くなる稼働率を高くするにはオンラインで行えるバックアップは必須ですし,夜間などで定期的に停止できるのであれば物理バックアップは高速でお手軽です。どちらも優越ではなく,バックアップの種類と稼働率を踏まえながら,自分たちに合った計画を組むことが重要です。自分たちの稼働率を決めて,運用方針を決めれば,次は具体的なバックアップとリストアの手法です。以降では,PostgreSQLのバックアップ手法を見ていきましょう。pg_dump─⁠─オンラインで論理バックアップ一番スタンダートなのは論理バックアップツールであるpg_dumpです。pg_dumpはPostgreSQLに同梱されており,次の4種類からバックアップファイルの形式を選べます。プレーンテキスト形式(SQL)カスタムアーカイブ形式(圧縮したバイナリ)ディレクトリ形式(表単位で圧縮したバイナリ)TAR形式(表単位のバイナリ)お勧めは,カスタムアーカイブ形式です。カスタムアーカイブ形式は,サイズを圧縮できるうえに,リストアの際に必要なテーブルやスキーマ定義だけを分離できます。必要であればプレーンテキスト形式にも変換できるため,いざという場合はSQL文を手作業で編集できます。カスタムアーカイブ形式でのバックアップとリストアは次のように実行します。/tmp/dump.customこのようにDBの停止を伴わずコマンド一つでバックアップし,復旧方法もコマンド一つですから,運用はシンプルになります。pg_basebackup─⁠─PITRのためのオンラインバックアップpg_basebackupは,pg_dumpと同様にPostgreSQLに同梱されており,PITRでリストアするためのデータファイルをオンラインでバックアップするツールです。9.1から提供されました。pg_basebackupはDBを停止しないため,バックアップ中も更新が発生します。そこで,バックアップ中に発生したWALの更新履歴を取得するために,postgresql.confを次のように変更してWALアーカイブモードを有効にしておく必要があります。/usr/local/pgsql/backup/%f'wal_levelのデフォルトはreplicaになっており,9.6までのデフォルトのminimalの場合はarchive_modeの設定は無視されます。wal_levelにreplicaが設定されたうえで,archive_modeをonにした場合,アーカイブしたWALを保存するコマンドをarchive_commandに指定する必要があります。上記の例では同じサーバに保存していますが,rsyncなどで別のサーバに保存することもできます。pg_basebackupで作成したバックアップファイルとアーカイブされたWALの合わせ技で,オンラインで完全にデータをバックアップでき,リストアの際も完全に復旧できるのです。具体的なバックアップとリストアの方法は,次の手順になります。バックアップはオンラインで行えますが,リストアの際はDBへの接続をなくすためにDBを停止してから行いましょう。ユーザー名ここからリストア手順。startリストア時には,pg_basebackupで取得したバックアップからデータファイルを展開します。そのあと,避難した最新のWALを配置してPostgreSQLを起動すると,WALからバックアップとの差分を取得し,DBを復旧してくれます。recovery.confで指定しているrestore_commandは,前述のarchive_commandで保存したWALアーカイブの保存先から取得するコマンドです。recovery_target_timeには,リカバリで戻したい日時を指定します。recovery_target_timeを指定しなかった場合,WALアーカイブとWALファイルから復元できるところまで復元します。このようにpg_basebackupと稼働中の差分のWALさえあれば,障害直前まで戻すことができます。これが,PostgreSQLのPITRのしくみです。pg_rman─⁠─PITRを助けてくれるツール「PITRをしたいけどリストア手順が多くて難しい......」という人にお勧めのツールがpg_rmanです。11にも対応しており,ソースコードも公開されています。pg_rmanはpg_basebackupを使ったバックアップとPITRのリストアを簡略化して実施するためのツールです。pg_rmanを利用して作成したバックアップであれば,次のように簡単に最新の状態に復旧できます。PITRのメリットである任意の時間にも対応しています。千佳⁠)⁠」が公開されています。当日の登壇資料も公開されています。リストア著者プロフィール曽根壮大(そねたけとも)株式会社オミカレ副社長兼CTO。Engineer)を経て現職。MVPをはじめ,日本PostgreSQLユーザ会の理事として勉強会の開催を担当し,各地で登壇している。2017,YAPC::Kansaiなどのイベントでベストスピーカーを受賞し,分かりやすく実践的な内容のトークに定評がある。他に,岡山Python勉強会を主催し,オープンラボ備後にも所属。Design』誌で,データベースに関する連載「RDBアンチパターン」をまとめた『失敗から学ぶRDBの正しい歩き方』を執筆。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。