SlideShare a Scribd company logo
1 of 35
Download to read offline
PostgreSQLバックアップの基本




      アップタイム・テクノロジーズ

                      永安 悟史

                      2012.8.29


  Copyright 2012 Uptime Technologies LLC, All rights reserved.   1
自己紹介
•   永安 悟史 (ながやす さとし)

•   略歴
    – 1997年よりネットベンチャーにてインターネットサービス開発・運用に従事。
    – 2004年より(株)NTTデータにて、並列分散データベースの研究開発、技術支援・保守
      サポート業務を経て、データセンタの新規サービス開発、運用チームの立ち上げなど
      に参画。
    – 2009年、アップタイム・テクノロジーズを創業。

•   専門分野
    – データベースシステム、並列分散システム、クラスタシステム
    – オープンソース・インフラ技術
    – ITサービスマネジメント(ITIL)、ITインフラ運用管理(運用設計~運用)

•   本業@アップタイム・テクノロジーズ
    –   オープンソース導入サポートサービスの提供
    –   セミナ、トレーニングの提供
    –   学習用コンテンツのオンライン販売
    –   その他、OSSおよびDB系技術コンサルティング



                Copyright 2012 Uptime Technologies LLC, All rights reserved.   2
PostgreSQLバックアップの基本
                  アジェンダ
(1)アーキテクチャ概要

(2)バックアップ・リカバリ ~ 概論

(3)バックアップ・リカバリ ~ PITR

(4)バックアップ・リカバリ ~ 運用

(5)バックアップ・リカバリ ~ ツール




             Copyright 2012 Uptime Technologies LLC, All rights reserved.   3
(1)アーキテクチャ概要




Copyright 2012 Uptime Technologies LLC, All rights reserved.   4
実行中のプロセス
$ ps -aef | grep postgres
postgres 22169     1 0 23:37 ?         00:00:00 /usr/pgsql-9.0/bin/postmaster -p 5432 -D
    /var/lib/pgsql/9.0/data
postgres 22179 22169 0 23:37 ?         00:00:00 postgres: logger process
postgres 22182 22169 0 23:37 ?         00:00:00 postgres: writer process
postgres 22183 22169 0 23:37 ?         00:00:00 postgres: wal writer process
postgres 22184 22169 0 23:37 ?         00:00:00 postgres: autovacuum launcher process
postgres 22185 22169 0 23:37 ?         00:00:00 postgres: archiver process   archiving
    00000001000000D60000004E
postgres 22187 22169 0 23:37 ?         00:00:00 postgres: stats collector process
postgres 23436 22169 16 23:42 ?        00:00:34 postgres: postgres pgbench [local] UPDATE
    waiting
postgres 23437 22169 16 23:42 ?        00:00:34 postgres: postgres pgbench [local] UPDATE
    waiting
postgres 23438 22169 16 23:42 ?        00:00:34 postgres: postgres pgbench [local] COMMIT
postgres 24283 22169 5 23:45 ?         00:00:02 postgres: postgres postgres [local] idle
postgres 24301 22169 0 23:45 ?         00:00:00 postgres: postgres postgres [local] idle
postgres 24581 22169 0 23:45 ?         00:00:00 postgres: autovacuum worker process
    pgbench
postgres 24527 22185 0 23:45 ?         00:00:00 cp pg_xlog/00000001000000D60000004E
    /var/lib/pgsql/9.0/backups/archlog/00000001000000D60000004E
$




                         Copyright 2012 Uptime Technologies LLC, All rights reserved.       5
実行中のデータベースクラスタ(ディレクトリ)
# ls -l
total 116
drwx------ 10 postgres postgres 4096 Dec 14 19:00 base
drwx------ 2 postgres postgres 4096 Jan 10 00:28 global
drwx------ 2 postgres postgres 4096 Dec 13 08:40 pg_clog
-rw------- 1 postgres postgres 3768 Dec 14 15:50 pg_hba.conf
-rw------- 1 postgres postgres 1636 Dec 4 13:47 pg_ident.conf
drwx------ 2 postgres postgres 4096 Jan 10 00:00 pg_log
drwx------ 4 postgres postgres 4096 Dec 4 13:47 pg_multixact
drwx------ 2 postgres postgres 4096 Jan 8 10:14 pg_notify
drwx------ 2 postgres postgres 4096 Jan 10 15:43 pg_stat_tmp
drwx------ 2 postgres postgres 4096 Dec 28 14:41 pg_subtrans
drwx------ 2 postgres postgres 4096 Dec 4 14:47 pg_tblspc
drwx------ 2 postgres postgres 4096 Dec 4 13:47 pg_twophase
-rw------- 1 postgres postgres     4 Dec 4 13:47 PG_VERSION
drwxr-xr-x 3 postgres postgres 4096 Jan 10 15:40 pg_xlog
-rw------- 1 postgres postgres 18015 Dec 14 15:50 postgresql.conf
-rw------- 1 postgres postgres 17952 Dec 14 15:05 postgresql.conf.orig
-rw------- 1 postgres postgres    71 Jan 8 10:14 postmaster.opts
-rw------- 1 postgres postgres    49 Jan 8 10:14 postmaster.pid
#

                         Copyright 2012 Uptime Technologies LLC, All rights reserved.   6
PostgreSQLの構成要素
   PostgreSQLは、さまざまなプロセス・メモリ領域・ファイルによって構
  成されている。


                                                     writer
           postgres          logger                                            wal writer    autovacuum
                                                  (バックグラウンド
        (リスナプロセス)          (サーバログ)                                            (WALライタ)      (自動vacuum)
                                                     ライタ)
プロセス群
           archiver stat collector postgres wal sender wal receiver
        (WALアーカイバ) (統計情報収集) (サーバプロセス) (レプリケーション) (レプリケーション)




          shared_buffers         wal_buffers             visibilitymap freespacemap トランザクション
メモリ群      (共有バッファ)              (WALバッファ)               (ブロック情報) (空き領域情報)             制御情報




ファイル群                            テーブル                 インデックス                トランザクション        アーカイブ
           設定ファイル
                                 ファイル                  ファイル                  ログファイル         ログファイル



                      Copyright 2012 Uptime Technologies LLC, All rights reserved.                    7
PostgreSQLの基本的なアーキテクチャ
 共有バッファを中心として、複数のプロセス間で連携しながら処理を
行うマルチプロセス構造。


                postgres
             (リスナプロセス)

                                                                                 (




                                                                                     shared_buffers
                                         postgres                                共
                                           postgres                              有
                                      (サーバプロセス)                                  バ
                                             postgres
                                       (サーバプロセス)
クライアント                                                                           ッ
                                        (サーバプロセス)                                フ
                                                                                 ァ
                                                                                 )
                                                       writer
                                                    (バックグラウンド
                                                       ライタ)
                               wal writer
                              (WALライタ)

                                                      テーブル
                                                      ファイル
                            トランザクション                                    インデックス
                             ログファイル                                      ファイル

         Copyright 2012 Uptime Technologies LLC, All rights reserved.                                 8
メモリ(共有バッファ)
  •    ディスク上のブロックをキャッシュするメモリ領域
        – ディスク上のブロックのうち、アクセスするものだけを読み込む
        – ディスクI/Oを抑えて読み書きを高速化
        – すべてのサーバプロセスで共有
  •    変更されたブロック(dirtyページ)は必要に応じてディスクに書き戻される
        – 契機は、「バッファ入れ替え、チェックポイント、バックグラウンドライタ」
        – 変更の永続性はトランザクションログで担保する

                                                                                writer
      postgres
                                       9 17 5 14
        postgres

       postgres                          共有バッファ                       1 2 3 4 5 6
                                         (メモリ)                        7 8 9 10 11 12
サーバプロセス
                                                                      13 14 15 16 17 18
                 wal writer
                                                                      19 ・・・・
                      トランザクション
                       ログファイル                                                   テーブル/インデックスファイル
                              Copyright 2012 Uptime Technologies LLC, All rights(ディスク)
                                                                                reserved.     9
データファイルの配置
データベースクラスタ(PGDATA)領域

  システムカタログ(global)
                                                                     設定ファイル
              テーブルファイル
              テーブルファイル                                      (postgresql.conf, pg_hba.conf)
               テーブルファイル

              インデックスファイル
              インデックスファイル                                            その他制御ファイル等
               インデックスファイル

  デフォルトテーブルスペース(base)                                         トランザクションログ(pg_xlog)
       ユーザデータベース(OID)
        ユーザデータベース(OID)
         ユーザデータベース(OID)
           テーブルファイル
           テーブルファイル
            テーブルファイル

             インデックスファイル
             インデックスファイル
              インデックスファイル



     外部テーブルスペース
     外部テーブルスペース                                                        アーカイブログ領域
      テーブルスペース領域

       54.1. データベースファイルのレイアウト http://www.postgresql.jp/document/9.0/html/storage-file-layout.html
                 Copyright 2012 Uptime Technologies LLC, All rights reserved.                10
(2)バックアップ・リカバリ(概論)




  Copyright 2012 Uptime Technologies LLC, All rights reserved.   11
バックアップとレストア/リカバリ
• バックアップの難しさ
 –   データはファイルの中にだけあるのではない
 –   通常は、共有バッファの内容が最新
 –   ファイルだけバックアップを取ってもダメ
 –   ミリ秒単位で処理が進む中、すべてを一貫性を保った状態で


• バックアップの種類
 – コールドバックアップ
 – ホットバックアップ
 – PITR(アーカイブログ)バックアップ


• バックアップ&レストア/リカバリはリハーサルをしよう!
 – 簡単な試験や手順書を作るだけで満足してはいけない・・・
 – そのバックアップセットで本当にリカバリできますか?
           Copyright 2012 Uptime Technologies LLC, All rights reserved.   12
コールドバックアップ
•   サーバプロセスをすべてシャットダウンしてデータファイル全体をバックアップ
    – バックアップの間、サービス停止が発生する。
    – リカバリの際には、バックアップ時のデータに戻る。
    – ファイルバックアップなのでレストアが簡単。
•   向いているケース
    – 前回バックアップ以降の更新データを、アプリログなどから復旧できる場合。
    – ストレージスナップショットが一般化した今、案外現実的。
•   向いていないケース
    – サービスを停止させられない場合。
    – 障害発生の直前までの更新データが必要で、DB以外から復旧できない場合。



                                                                                   Crash
               ①サービス
                           WAL1                    WAL2                   WAL3
                停止 &                                                               ②障害発生
                ファイル
                バックアップ
                                                                                    ③レストア

           Index
       Table

                    Copyright 2012 Uptime Technologies LLC, All rights reserved.            13
ホットバックアップ(pg_dump/pg_restore)
•   あるタイミングでデータの一貫性を保ちつつバックアップ(export)
    – シンプルかつ柔軟(テーブル単位のバックアップも可)
    – バックアップ時にサービス停止は起こらない。
    – リカバリの際には、バックアップ時のデータに戻る。
•   向いているケース
    – 前回バックアップ以降の更新データを、アプリログなどから復旧できる場合。
    – データベース単位、テーブル単位でバックアップを取りたい場合。
    – 論理バックアップが必要な場合(メジャーバージョンアップなど)
•   向いていないケース
    – 障害発生の直前までの更新データが必要で、DB以外から復旧できない場合。



                                                                                    Crash
                         WAL1                       WAL2                   WAL3
               ①pg_dumpで                                                            ②障害発生
                スナップショットを
                バックアップ
                                                                                     ③レストア

           Index
       Table

                     Copyright 2012 Uptime Technologies LLC, All rights reserved.            14
(3)バックアップ・リカバリ(PITR)




  Copyright 2012 Uptime Technologies LLC, All rights reserved.   15
用語
•   オンラインWALファイル
    – pg_xlogディレクトリに配置されている(まだアーカイブされていない)WALファイル

•   アーカイブWALファイル(アーカイブログ)
    – アーカイブされたWALファイル

•   完全リカバリ
    – (オンラインWALファイルを用いて)最新の状態まで戻すことのできるリカバリ

•   不完全リカバリ
    – オンラインWALファイルを消失したため、最新の状態ではなく、アーカイブWALファイ
      ルまでしか戻せないリカバリ

•   ベースバックアップ(非一貫性バックアップ)
    – 共有バッファなどの状態に関係なく、ファイルシステムレベルで取得するファイルバック
      アップ。
    – 「データベースのファイル」として一貫性の取れた内容である保証は無い。




               Copyright 2012 Uptime Technologies LLC, All rights reserved.   16
アーカイブWALとPITRを用いたバックアップ
•   ベースバックアップ(基準点)+アーカイブWALファイル(更新差分)
    – サービスを継続したままベースバックアップを取得可能(非一貫性バックアップ)
    – クラッシュ直前の状態に復旧することが可能(完全リカバリの場合)
•   向いているケース
    – データベースクラスタ全体の完全なバックアップを取りたい場合。
    – クラッシュ直前の更新まで復旧させる必要がある場合。
•   向いていないケース
    – データベース単位、テーブル単位などでバックアップを取得したい場合。

                                                                                       Crash
                             WAL1                   WAL2                    WAL3        WAL4
               ①ベースバック
                アップの取得
                (非一貫性              ②WAL1を                  ③WAL2を                  ④WAL3を
                 バックアップ)            アーカイブ                   アーカイブ                   アーカイブ



           Index             WAL1                   WAL2                    WAL3
       Table
                   レストア&リカバリに必要なファイル類
                    Copyright 2012 Uptime Technologies LLC, All rights reserved.               17
アーカイブWALとPITRを用いたリカバリ
•   ベースバックアップ(基準点)+アーカイブWALファイル(更新差分)
    – ベースバックアップをレストア後、アーカイブWALファイルを使ってロールフォワードリカ
      バリする。
    – オンラインWALファイルが残っていれば、完全リカバリが可能。
    – 前回のベースバックアップ以降、長期間が経過しているとアーカイブWALファイルが多
      くなり、ロールフォワードリカバリの時間が長くなる。
    – 所要時間は、「ベースバックアップレストア時間+アーカイブWALファイル適用時間」
                                                                                          ⑥リカバリ完了




                        WAL1                   WAL2                    WAL3            WAL4
             ①ベース                                                                       ⑤オンラインWAL
              バックアップを         ②WAL1を                  ③WAL2を                  ④WAL3を     (WAL4)を適用
              レストア             適用                      適用                      適用



         Index          WAL1                   WAL2                    WAL3
     Table
                 レストア&リカバリに必要なファイル類
                        Copyright 2012 Uptime Technologies LLC, All rights reserved.                 18
障害とリカバリのシナリオ
• データベースクラスタ(テーブルスペース)領域のロスト、障害
 – ベースバックアップからデータベースクラスタをレストアし、アーカイブログを
   用いてリカバリをする必要がある。
 – オンラインWALファイルが残っている場合には「完全リカバリ」が可能。

• オンラインWAL領域のロスト、障害
 – PITRによるリカバリは「不完全リカバリ」となる。完全リカバリは不可。
 – PostgreSQLが起動しなくなる可能性が高いため、ベースバックアップ+アー
   カイブWALからリカバリを実施(不完全リカバリ)。

• アーカイブWAL領域のロスト、障害
 – アーカイブWAL領域の障害は、サービスにはすぐには影響しない。
 – 但し、アーカイブが失敗し始めると、オンラインWAL領域を圧迫し始める。そ
   のため、アーカイブを再開できるよう、アーカイブWAL領域を復旧させる必要
   がある。
 – また、障害が発生した際には、ベースバックアップ以降のすべてのアーカイブ
   WALファイルがないとリカバリできないため、再度、ベースバックアップを取
   得する必要がある。


          Copyright 2012 Uptime Technologies LLC, All rights reserved.   19
リストア、リカバリ手順
•   PostgreSQLサーバを停止する

•   障害の発生したデータベースを保存する(可能であれば)
    – データベースクラスタ
    – テーブルスペース
    – オンラインWALファイル(残っている場合は必ず退避しておく)

•   ベースバックアップをレストアする

•   ベースバックアップ以降のアーカイブWALファイルを、アーカイブWAL領
    域にレストアする

•   退避しておいたオンラインWALファイルを配置する

•   リカバリ設定ファイル(recovery.conf)を作成する

•   PostgreSQLサーバを起動する(リカバリ処理は自動実行される)

               Copyright 2012 Uptime Technologies LLC, All rights reserved.   20
リストア、リカバリ概念図
• ベースバックアップ、アーカイブWALファイル、オンライン
  WALファイルを用いてリカバリを行う。

  通常稼働時                                                  リカバリ時
                                                                                       ②アーカイブWALで
                                                                                        リカバリ
                                                            ②③
                                                          ログ適用
                                                                        ③オンラインWAL
                                                                         でリカバリ

   Table   WAL     WAL                                            Table         WAL   WAL

   Index                                                          Index
                  アーカイブWAL                                                            アーカイブWAL
     障害発生                                                           リカバリ対象
    データベース                                     ①データを                データベース
                                                レストア

   Table                                                          Table

   Index                                                          Index

   ベースバックアップ                                                    ベースバックアップ
                 Copyright 2012 Uptime Technologies LLC, All rights reserved.                    21
PITRのリカバリ動作状況
[2011-12-12 06:32:52 JST] 31582: LOG:           database system was interrupted; last known
    up at 2011-12-12 06:12:28 JST
[2011-12-12 06:32:52 JST] 31582: LOG:           restored log file "00000002.history" from
    archive
[2011-12-12 06:32:52 JST] 31582: LOG:           starting archive recovery
[2011-12-12 06:32:52 JST] 31582: LOG:           restored log file "000000010000000000000005"
    from archive
[2011-12-12 06:32:53 JST] 31582: LOG:           redo starts at 0/5000070
[2011-12-12 06:32:53 JST] 31582: LOG:           consistent recovery state reached at
    0/6000000
[2011-12-12 06:32:53 JST] 31582: LOG:           restored log file "000000010000000000000006"
    from archive
(...snip...)
[2011-12-12 06:33:40 JST] 31582: LOG:           restored log file "00000001000000000000000F"
    from archive
[2011-12-12 06:33:47 JST] 31582: LOG:           restored log file "000000020000000000000010"
    from archive
(...snip...)
[2011-12-12 06:34:49 JST] 31582: LOG:           restored log file "00000002000000000000001A"
    from archive
[2011-12-12 06:34:49 JST] 31582: LOG:           could not open file
    "pg_xlog/00000002000000000000001B"          (log file 0, segment 27): No such file or
    directory
[2011-12-12 06:34:49 JST] 31582: LOG:           redo done at 0/1A00511C
[2011-12-12 06:34:49 JST] 31582: LOG:           last completed transaction was at log time
    2011-12-12 06:23:09.691458+09
[2011-12-12 06:34:49 JST] 31582: LOG:           restored log file "00000002000000000000001A"
    from archive
[2011-12-12 06:34:49 JST] 31582: LOG:           restored log file "00000003.history" from
    archive
[2011-12-12 06:34:49 JST] 31582: LOG:           selected new timeline ID: 4

                      Copyright 2012 Uptime Technologies LLC, All rights reserved.             22
(4)バックアップ・リカバリ(運用)




  Copyright 2012 Uptime Technologies LLC, All rights reserved.   23
バックアップ、リカバリの運用
•   指定したサイクルで定期的にベースバックアップを取得
    – ベースバックアップスクリプトをcron等で実行し、ベースバックアップを取得
    – 世代ごとにサブディレクトリが作られてベースバックアップを保存
    – 指定した世代数を超えたベースバックアップは削除
    – もっとも古い世代のベースバックアップ以前のアーカイブログを削除

•   障害が発生した場合は、ベースバックアップおよびアーカイブWALからリ
    カバリ
    – オンラインWALバックアップスクリプトを実行し、オンラインWALファイルを退
      避する
    – リカバリスクリプトを実行し、最新のベースバックアップ、およびオンライン
      WALファイルをレストアし、リカバリ設定ファイルを作成する
    – PostgreSQLサービスを起動し、リカバリを実行する




             Copyright 2012 Uptime Technologies LLC, All rights reserved.   24
ベースバックアップの世代管理
•   指定したバックアップ世代数に合わせて、ベースバックアップとアーカイブログを
    管理する
    – 最新のベースバックアップを取得できたら、もっとも古いベースバックアップを削除する
    – アーカイブログは、もっとも古いベースバックアップ以前のものを削除する

    (例)ベースバックアップを3世代分保持する場合
                                    コピー
         データベース                                            スナップショット
          クラスタ                                              (一時領域)
                                                                                    アーカイブ、圧縮
                                                            第0世代
           WAL
                                                                                Rotate
                                                            第1世代
                                                                                Rotate
                  アーカイビング                                   第2世代
                                                                                第0世代を取得後に削除
                                                            第3世代


                                                                                 第2世代以降に生成された
                                                           アーカイブログ
                                                                                 アーカイブログを保持

                                                                       バックアップ用ストレージ
                 Copyright 2012 Uptime Technologies LLC, All rights reserved.                  25
リカバリ時の動作
•   オンラインWALファイルを保存、最新の世代のベースバックアップからレストアし、
    リカバリ実施に必要な設定ファイルを作成する
    –   データベースクラスタに残っているオンラインWALファイルを保存する(①)
    –   ベースバックアップからレストアする(②)
    –   オンラインWALファイルを再度配置する(③)
    –   リカバリを開始したら、アーカイブWALファイルを適用していく(④)


           データベース                                             スナップショット
                                     ②レストア                     (一時領域)
            クラスタ
                                                               第0世代
              WAL

                                          ①オンライン               第1世代
                                           WAL保存
                                                               第2世代
                      ④適用
                                          ③オンライン 最新WAL
                                           WAL配置

                                                                                   第2世代以降に生成された
                                                              アーカイブログ
                                                                                   アーカイブWALを保持

                                                                          バックアップ用ストレージ
                    Copyright 2012 Uptime Technologies LLC, All rights reserved.              26
アーカイブWALファイルの消し込み
•   ベースバックアップを取得すると、そのベースバックアップより前のアーカイ
    ブWALファイルは不要になる
    – 具体的には ”START WAL LOCATION” より前のWALファイル
    – ベースバックアップ②を取得したら、アーカイブWAL①は不要
    – 但し、世代管理は必要


                  アーカイブWAL①                                  アーカイブWAL②

              WAL WAL WAL WAL                         WAL WAL WAL WAL




          ベース                            ベース
        バックアップ①                        バックアップ②


•   消し込みの方法
    – pg_archivecleanupコマンドを使う(contribモジュール)
    – tmpwatchでタイムスタンプで判断(24時間以上経過したら削除、等)


                  Copyright 2012 Uptime Technologies LLC, All rights reserved.   27
(5)バックアップ・リカバリ(ツール)




   Copyright 2012 Uptime Technologies LLC, All rights reserved.   28
pg_rman
•   NTT OSSセンターの開発したPostgreSQLバックアップツール
    –   バックアップの取得
    –   リストア/リカバリの実行
    –   バックアップセットの管理
    –   D2D (Disk to Disk)のツール


•   運用方法
    – バックアップ取得(full、incremental、archive)
    – バックアップ検証(validate)
    – バックアップ消込(delete)
    – レストア/リカバリ実施




                                              pg-rman - PostgreSQL Recovery Manager - Google Project Hosting
                                              http://code.google.com/p/pg-rman/

                    Copyright 2012 Uptime Technologies LLC, All rights reserved.                     29
Barman
• 2ndQuadrantの開発したPostgreSQLバックアップツール
  –   バックアップの取得(複数サーバ、ネットワーク経由)
  –   リストア/リカバリの実行
  –   バックアップセットの管理
  –   D2D (Disk to Disk)のツール
  –   複数サーバを対象としたバックアップ管理が可能




                  Barman - Backup and Recovery Manager for business critical PostgreSQL databases
                  http://www.pgbarman.org/

             Copyright 2012 Uptime Technologies LLC, All rights reserved.                  30
Q&A




Copyright 2012 Uptime Technologies LLC, All rights reserved.   31
さらに詳しくなりたい方は
•   PostgreSQLアーキテクチャ入門(自習用教材)
    –   内容:プレゼンテーションを録画した動画、及び使用しているスライド
    –   動画時間:約55分
    –   スライドページ数:54ページ
    –   ファイル形式:MP4(動画)およびPDF(スライド)


•   OSDL DBT-3によるPostgreSQLの性能評価(SATA HDD&SATA
    SSD編)
    – 内容:技術検証レポート
    – ページ数:54ページ
    – ファイル形式:PDF



    いずれも http://www.uptime.jp から購入できます。


                Copyright 2012 Uptime Technologies LLC, All rights reserved.   32
PostgreSQLパフォーマンスチューニング入門
•   日時:2012年9月14日(金) 14:30~17:30 (約3時間)
•   場所:クロスコープ青山 セミナールーム (東京メトロ 外苑前駅)

•   概要
    –   PostgreSQLを利用する際に必要となるパフォーマンス管理およびチューニングについて、その仕組み
        や手順などの基本的な知識を獲得することを目的とします。

•   対象
    –   PostgreSQLを使っているアプリケーション開発者の方
    –   PostgreSQLをこれから使い始めるデータベース管理者の方
    –   現在、他のRDBMSを使っており、今後のPostgreSQLの利用を検討している方
    –   PostgreSQLを使っているがパフォーマンス問題に困っている方

•   前回の参加者の皆さまからのコメント(アンケートより)
    –   丁寧な内容で構築・運用時に押さえるべき点を把握できた
    –   各パラメータについてはある程度知っていたが体系的に学ぶことができた
    –   ツールや分析方法に知らないことが多かった
    –   全体のアーキテクチャの説明により、チューニングの基本が納得できた

•   詳細
    –   http://bit.ly/MgYKPB




                               Copyright 2012 Uptime Technologies LLC, All rights reserved.   33
アップタイム・テクノロジーズについて
•   オープンソース導入サポートサービスの提供
     –   各種OSS(ミドルウェア、ツールなど)についての調査・情報提供
     –   設計(基盤~アプリ)、開発の支援
     –   機能検証・性能見積もり支援(機能検証、性能検証)、試験設計支援
     –   OSSコミュニティエスカレーション、等


•   セミナ、トレーニングの提供
     – 「PostgreSQLパフォーマンスチューニング入門」(7/27)
     – 「LifeKeeper for Linuxで構築・運用する高可用PostgreSQLシステム」


•   学習用コンテンツのオンライン販売
     – PostgreSQLアーキテクチャ入門(自習用教材)
     – OSDL DBT-3によるPostgreSQLの性能評価~SATA HDD&SATA SSD編 (技術検
       証レポート)

    詳細は http://www.uptime.jp をご覧ください。



                     Copyright 2012 Uptime Technologies LLC, All rights reserved.   34
【お問い合わせ先】
アップタイム・テクノロジーズ合同会社
永安 悟史
E-mail: snaga@uptime.jp
Web: http://www.uptime.jp/

                  Copyright 2012 Uptime Technologies LLC, All rights reserved.   35

More Related Content

What's hot

PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...NTT DATA Technology & Innovation
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)Uptime Technologies LLC (JP)
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...NTT DATA Technology & Innovation
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)kasaharatt
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例kazuhcurry
 

What's hot (20)

PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題PostgreSQL: XID周回問題に潜む別の問題
PostgreSQL: XID周回問題に潜む別の問題
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
 

Similar to PostgreSQLバックアップの基本

PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)Uptime Technologies LLC (JP)
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努Insight Technology, Inc.
 
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014Shigeru Hanada
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説Shoken Fujisaki
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoPostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoShigeru Hanada
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009Ryota Watabe
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)Kosuke Kida
 
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012Shigeru Hanada
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会Shigeru Hanada
 
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャKohei KaiGai
 
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化Takatoshi Matsuo
 
LTO/オートローダー/仮想テープライブラリの基礎知識
LTO/オートローダー/仮想テープライブラリの基礎知識LTO/オートローダー/仮想テープライブラリの基礎知識
LTO/オートローダー/仮想テープライブラリの基礎知識MKT International Inc.
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 

Similar to PostgreSQLバックアップの基本 (20)

PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
 
PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5
 
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
 
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
 
Fluentd casual
Fluentd casualFluentd casual
Fluentd casual
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoPostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
 
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
 
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
 
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
HBase on EC2
HBase on EC2HBase on EC2
HBase on EC2
 
LTO/オートローダー/仮想テープライブラリの基礎知識
LTO/オートローダー/仮想テープライブラリの基礎知識LTO/オートローダー/仮想テープライブラリの基礎知識
LTO/オートローダー/仮想テープライブラリの基礎知識
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 

More from Uptime Technologies LLC (JP)

PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるPL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるUptime Technologies LLC (JP)
 
pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法Uptime Technologies LLC (JP)
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisitedUptime Technologies LLC (JP)
 
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告Uptime Technologies LLC (JP)
 
Uptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビューUptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビューUptime Technologies LLC (JP)
 
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#135ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13Uptime Technologies LLC (JP)
 

More from Uptime Technologies LLC (JP) (10)

PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみるPL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみる
 
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
 
Postgres Toolkit
Postgres ToolkitPostgres Toolkit
Postgres Toolkit
 
Postgres Toolkitのご紹介
Postgres Toolkitのご紹介Postgres Toolkitのご紹介
Postgres Toolkitのご紹介
 
pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
 
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
 
PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"
 
Uptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビューUptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビュー
 
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#135ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
 

PostgreSQLバックアップの基本

  • 1. PostgreSQLバックアップの基本 アップタイム・テクノロジーズ 永安 悟史 2012.8.29 Copyright 2012 Uptime Technologies LLC, All rights reserved. 1
  • 2. 自己紹介 • 永安 悟史 (ながやす さとし) • 略歴 – 1997年よりネットベンチャーにてインターネットサービス開発・運用に従事。 – 2004年より(株)NTTデータにて、並列分散データベースの研究開発、技術支援・保守 サポート業務を経て、データセンタの新規サービス開発、運用チームの立ち上げなど に参画。 – 2009年、アップタイム・テクノロジーズを創業。 • 専門分野 – データベースシステム、並列分散システム、クラスタシステム – オープンソース・インフラ技術 – ITサービスマネジメント(ITIL)、ITインフラ運用管理(運用設計~運用) • 本業@アップタイム・テクノロジーズ – オープンソース導入サポートサービスの提供 – セミナ、トレーニングの提供 – 学習用コンテンツのオンライン販売 – その他、OSSおよびDB系技術コンサルティング Copyright 2012 Uptime Technologies LLC, All rights reserved. 2
  • 3. PostgreSQLバックアップの基本 アジェンダ (1)アーキテクチャ概要 (2)バックアップ・リカバリ ~ 概論 (3)バックアップ・リカバリ ~ PITR (4)バックアップ・リカバリ ~ 運用 (5)バックアップ・リカバリ ~ ツール Copyright 2012 Uptime Technologies LLC, All rights reserved. 3
  • 4. (1)アーキテクチャ概要 Copyright 2012 Uptime Technologies LLC, All rights reserved. 4
  • 5. 実行中のプロセス $ ps -aef | grep postgres postgres 22169 1 0 23:37 ? 00:00:00 /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data postgres 22179 22169 0 23:37 ? 00:00:00 postgres: logger process postgres 22182 22169 0 23:37 ? 00:00:00 postgres: writer process postgres 22183 22169 0 23:37 ? 00:00:00 postgres: wal writer process postgres 22184 22169 0 23:37 ? 00:00:00 postgres: autovacuum launcher process postgres 22185 22169 0 23:37 ? 00:00:00 postgres: archiver process archiving 00000001000000D60000004E postgres 22187 22169 0 23:37 ? 00:00:00 postgres: stats collector process postgres 23436 22169 16 23:42 ? 00:00:34 postgres: postgres pgbench [local] UPDATE waiting postgres 23437 22169 16 23:42 ? 00:00:34 postgres: postgres pgbench [local] UPDATE waiting postgres 23438 22169 16 23:42 ? 00:00:34 postgres: postgres pgbench [local] COMMIT postgres 24283 22169 5 23:45 ? 00:00:02 postgres: postgres postgres [local] idle postgres 24301 22169 0 23:45 ? 00:00:00 postgres: postgres postgres [local] idle postgres 24581 22169 0 23:45 ? 00:00:00 postgres: autovacuum worker process pgbench postgres 24527 22185 0 23:45 ? 00:00:00 cp pg_xlog/00000001000000D60000004E /var/lib/pgsql/9.0/backups/archlog/00000001000000D60000004E $ Copyright 2012 Uptime Technologies LLC, All rights reserved. 5
  • 6. 実行中のデータベースクラスタ(ディレクトリ) # ls -l total 116 drwx------ 10 postgres postgres 4096 Dec 14 19:00 base drwx------ 2 postgres postgres 4096 Jan 10 00:28 global drwx------ 2 postgres postgres 4096 Dec 13 08:40 pg_clog -rw------- 1 postgres postgres 3768 Dec 14 15:50 pg_hba.conf -rw------- 1 postgres postgres 1636 Dec 4 13:47 pg_ident.conf drwx------ 2 postgres postgres 4096 Jan 10 00:00 pg_log drwx------ 4 postgres postgres 4096 Dec 4 13:47 pg_multixact drwx------ 2 postgres postgres 4096 Jan 8 10:14 pg_notify drwx------ 2 postgres postgres 4096 Jan 10 15:43 pg_stat_tmp drwx------ 2 postgres postgres 4096 Dec 28 14:41 pg_subtrans drwx------ 2 postgres postgres 4096 Dec 4 14:47 pg_tblspc drwx------ 2 postgres postgres 4096 Dec 4 13:47 pg_twophase -rw------- 1 postgres postgres 4 Dec 4 13:47 PG_VERSION drwxr-xr-x 3 postgres postgres 4096 Jan 10 15:40 pg_xlog -rw------- 1 postgres postgres 18015 Dec 14 15:50 postgresql.conf -rw------- 1 postgres postgres 17952 Dec 14 15:05 postgresql.conf.orig -rw------- 1 postgres postgres 71 Jan 8 10:14 postmaster.opts -rw------- 1 postgres postgres 49 Jan 8 10:14 postmaster.pid # Copyright 2012 Uptime Technologies LLC, All rights reserved. 6
  • 7. PostgreSQLの構成要素 PostgreSQLは、さまざまなプロセス・メモリ領域・ファイルによって構 成されている。 writer postgres logger wal writer autovacuum (バックグラウンド (リスナプロセス) (サーバログ) (WALライタ) (自動vacuum) ライタ) プロセス群 archiver stat collector postgres wal sender wal receiver (WALアーカイバ) (統計情報収集) (サーバプロセス) (レプリケーション) (レプリケーション) shared_buffers wal_buffers visibilitymap freespacemap トランザクション メモリ群 (共有バッファ) (WALバッファ) (ブロック情報) (空き領域情報) 制御情報 ファイル群 テーブル インデックス トランザクション アーカイブ 設定ファイル ファイル ファイル ログファイル ログファイル Copyright 2012 Uptime Technologies LLC, All rights reserved. 7
  • 8. PostgreSQLの基本的なアーキテクチャ 共有バッファを中心として、複数のプロセス間で連携しながら処理を 行うマルチプロセス構造。 postgres (リスナプロセス) ( shared_buffers postgres 共 postgres 有 (サーバプロセス) バ postgres (サーバプロセス) クライアント ッ (サーバプロセス) フ ァ ) writer (バックグラウンド ライタ) wal writer (WALライタ) テーブル ファイル トランザクション インデックス ログファイル ファイル Copyright 2012 Uptime Technologies LLC, All rights reserved. 8
  • 9. メモリ(共有バッファ) • ディスク上のブロックをキャッシュするメモリ領域 – ディスク上のブロックのうち、アクセスするものだけを読み込む – ディスクI/Oを抑えて読み書きを高速化 – すべてのサーバプロセスで共有 • 変更されたブロック(dirtyページ)は必要に応じてディスクに書き戻される – 契機は、「バッファ入れ替え、チェックポイント、バックグラウンドライタ」 – 変更の永続性はトランザクションログで担保する writer postgres 9 17 5 14 postgres postgres 共有バッファ 1 2 3 4 5 6 (メモリ) 7 8 9 10 11 12 サーバプロセス 13 14 15 16 17 18 wal writer 19 ・・・・ トランザクション ログファイル テーブル/インデックスファイル Copyright 2012 Uptime Technologies LLC, All rights(ディスク) reserved. 9
  • 10. データファイルの配置 データベースクラスタ(PGDATA)領域 システムカタログ(global) 設定ファイル テーブルファイル テーブルファイル (postgresql.conf, pg_hba.conf) テーブルファイル インデックスファイル インデックスファイル その他制御ファイル等 インデックスファイル デフォルトテーブルスペース(base) トランザクションログ(pg_xlog) ユーザデータベース(OID) ユーザデータベース(OID) ユーザデータベース(OID) テーブルファイル テーブルファイル テーブルファイル インデックスファイル インデックスファイル インデックスファイル 外部テーブルスペース 外部テーブルスペース アーカイブログ領域 テーブルスペース領域 54.1. データベースファイルのレイアウト http://www.postgresql.jp/document/9.0/html/storage-file-layout.html Copyright 2012 Uptime Technologies LLC, All rights reserved. 10
  • 11. (2)バックアップ・リカバリ(概論) Copyright 2012 Uptime Technologies LLC, All rights reserved. 11
  • 12. バックアップとレストア/リカバリ • バックアップの難しさ – データはファイルの中にだけあるのではない – 通常は、共有バッファの内容が最新 – ファイルだけバックアップを取ってもダメ – ミリ秒単位で処理が進む中、すべてを一貫性を保った状態で • バックアップの種類 – コールドバックアップ – ホットバックアップ – PITR(アーカイブログ)バックアップ • バックアップ&レストア/リカバリはリハーサルをしよう! – 簡単な試験や手順書を作るだけで満足してはいけない・・・ – そのバックアップセットで本当にリカバリできますか? Copyright 2012 Uptime Technologies LLC, All rights reserved. 12
  • 13. コールドバックアップ • サーバプロセスをすべてシャットダウンしてデータファイル全体をバックアップ – バックアップの間、サービス停止が発生する。 – リカバリの際には、バックアップ時のデータに戻る。 – ファイルバックアップなのでレストアが簡単。 • 向いているケース – 前回バックアップ以降の更新データを、アプリログなどから復旧できる場合。 – ストレージスナップショットが一般化した今、案外現実的。 • 向いていないケース – サービスを停止させられない場合。 – 障害発生の直前までの更新データが必要で、DB以外から復旧できない場合。 Crash ①サービス WAL1 WAL2 WAL3 停止 & ②障害発生 ファイル バックアップ ③レストア Index Table Copyright 2012 Uptime Technologies LLC, All rights reserved. 13
  • 14. ホットバックアップ(pg_dump/pg_restore) • あるタイミングでデータの一貫性を保ちつつバックアップ(export) – シンプルかつ柔軟(テーブル単位のバックアップも可) – バックアップ時にサービス停止は起こらない。 – リカバリの際には、バックアップ時のデータに戻る。 • 向いているケース – 前回バックアップ以降の更新データを、アプリログなどから復旧できる場合。 – データベース単位、テーブル単位でバックアップを取りたい場合。 – 論理バックアップが必要な場合(メジャーバージョンアップなど) • 向いていないケース – 障害発生の直前までの更新データが必要で、DB以外から復旧できない場合。 Crash WAL1 WAL2 WAL3 ①pg_dumpで ②障害発生 スナップショットを バックアップ ③レストア Index Table Copyright 2012 Uptime Technologies LLC, All rights reserved. 14
  • 15. (3)バックアップ・リカバリ(PITR) Copyright 2012 Uptime Technologies LLC, All rights reserved. 15
  • 16. 用語 • オンラインWALファイル – pg_xlogディレクトリに配置されている(まだアーカイブされていない)WALファイル • アーカイブWALファイル(アーカイブログ) – アーカイブされたWALファイル • 完全リカバリ – (オンラインWALファイルを用いて)最新の状態まで戻すことのできるリカバリ • 不完全リカバリ – オンラインWALファイルを消失したため、最新の状態ではなく、アーカイブWALファイ ルまでしか戻せないリカバリ • ベースバックアップ(非一貫性バックアップ) – 共有バッファなどの状態に関係なく、ファイルシステムレベルで取得するファイルバック アップ。 – 「データベースのファイル」として一貫性の取れた内容である保証は無い。 Copyright 2012 Uptime Technologies LLC, All rights reserved. 16
  • 17. アーカイブWALとPITRを用いたバックアップ • ベースバックアップ(基準点)+アーカイブWALファイル(更新差分) – サービスを継続したままベースバックアップを取得可能(非一貫性バックアップ) – クラッシュ直前の状態に復旧することが可能(完全リカバリの場合) • 向いているケース – データベースクラスタ全体の完全なバックアップを取りたい場合。 – クラッシュ直前の更新まで復旧させる必要がある場合。 • 向いていないケース – データベース単位、テーブル単位などでバックアップを取得したい場合。 Crash WAL1 WAL2 WAL3 WAL4 ①ベースバック アップの取得 (非一貫性 ②WAL1を ③WAL2を ④WAL3を バックアップ) アーカイブ アーカイブ アーカイブ Index WAL1 WAL2 WAL3 Table レストア&リカバリに必要なファイル類 Copyright 2012 Uptime Technologies LLC, All rights reserved. 17
  • 18. アーカイブWALとPITRを用いたリカバリ • ベースバックアップ(基準点)+アーカイブWALファイル(更新差分) – ベースバックアップをレストア後、アーカイブWALファイルを使ってロールフォワードリカ バリする。 – オンラインWALファイルが残っていれば、完全リカバリが可能。 – 前回のベースバックアップ以降、長期間が経過しているとアーカイブWALファイルが多 くなり、ロールフォワードリカバリの時間が長くなる。 – 所要時間は、「ベースバックアップレストア時間+アーカイブWALファイル適用時間」 ⑥リカバリ完了 WAL1 WAL2 WAL3 WAL4 ①ベース ⑤オンラインWAL バックアップを ②WAL1を ③WAL2を ④WAL3を (WAL4)を適用 レストア 適用 適用 適用 Index WAL1 WAL2 WAL3 Table レストア&リカバリに必要なファイル類 Copyright 2012 Uptime Technologies LLC, All rights reserved. 18
  • 19. 障害とリカバリのシナリオ • データベースクラスタ(テーブルスペース)領域のロスト、障害 – ベースバックアップからデータベースクラスタをレストアし、アーカイブログを 用いてリカバリをする必要がある。 – オンラインWALファイルが残っている場合には「完全リカバリ」が可能。 • オンラインWAL領域のロスト、障害 – PITRによるリカバリは「不完全リカバリ」となる。完全リカバリは不可。 – PostgreSQLが起動しなくなる可能性が高いため、ベースバックアップ+アー カイブWALからリカバリを実施(不完全リカバリ)。 • アーカイブWAL領域のロスト、障害 – アーカイブWAL領域の障害は、サービスにはすぐには影響しない。 – 但し、アーカイブが失敗し始めると、オンラインWAL領域を圧迫し始める。そ のため、アーカイブを再開できるよう、アーカイブWAL領域を復旧させる必要 がある。 – また、障害が発生した際には、ベースバックアップ以降のすべてのアーカイブ WALファイルがないとリカバリできないため、再度、ベースバックアップを取 得する必要がある。 Copyright 2012 Uptime Technologies LLC, All rights reserved. 19
  • 20. リストア、リカバリ手順 • PostgreSQLサーバを停止する • 障害の発生したデータベースを保存する(可能であれば) – データベースクラスタ – テーブルスペース – オンラインWALファイル(残っている場合は必ず退避しておく) • ベースバックアップをレストアする • ベースバックアップ以降のアーカイブWALファイルを、アーカイブWAL領 域にレストアする • 退避しておいたオンラインWALファイルを配置する • リカバリ設定ファイル(recovery.conf)を作成する • PostgreSQLサーバを起動する(リカバリ処理は自動実行される) Copyright 2012 Uptime Technologies LLC, All rights reserved. 20
  • 21. リストア、リカバリ概念図 • ベースバックアップ、アーカイブWALファイル、オンライン WALファイルを用いてリカバリを行う。 通常稼働時 リカバリ時 ②アーカイブWALで リカバリ ②③ ログ適用 ③オンラインWAL でリカバリ Table WAL WAL Table WAL WAL Index Index アーカイブWAL アーカイブWAL 障害発生 リカバリ対象 データベース ①データを データベース レストア Table Table Index Index ベースバックアップ ベースバックアップ Copyright 2012 Uptime Technologies LLC, All rights reserved. 21
  • 22. PITRのリカバリ動作状況 [2011-12-12 06:32:52 JST] 31582: LOG: database system was interrupted; last known up at 2011-12-12 06:12:28 JST [2011-12-12 06:32:52 JST] 31582: LOG: restored log file "00000002.history" from archive [2011-12-12 06:32:52 JST] 31582: LOG: starting archive recovery [2011-12-12 06:32:52 JST] 31582: LOG: restored log file "000000010000000000000005" from archive [2011-12-12 06:32:53 JST] 31582: LOG: redo starts at 0/5000070 [2011-12-12 06:32:53 JST] 31582: LOG: consistent recovery state reached at 0/6000000 [2011-12-12 06:32:53 JST] 31582: LOG: restored log file "000000010000000000000006" from archive (...snip...) [2011-12-12 06:33:40 JST] 31582: LOG: restored log file "00000001000000000000000F" from archive [2011-12-12 06:33:47 JST] 31582: LOG: restored log file "000000020000000000000010" from archive (...snip...) [2011-12-12 06:34:49 JST] 31582: LOG: restored log file "00000002000000000000001A" from archive [2011-12-12 06:34:49 JST] 31582: LOG: could not open file "pg_xlog/00000002000000000000001B" (log file 0, segment 27): No such file or directory [2011-12-12 06:34:49 JST] 31582: LOG: redo done at 0/1A00511C [2011-12-12 06:34:49 JST] 31582: LOG: last completed transaction was at log time 2011-12-12 06:23:09.691458+09 [2011-12-12 06:34:49 JST] 31582: LOG: restored log file "00000002000000000000001A" from archive [2011-12-12 06:34:49 JST] 31582: LOG: restored log file "00000003.history" from archive [2011-12-12 06:34:49 JST] 31582: LOG: selected new timeline ID: 4 Copyright 2012 Uptime Technologies LLC, All rights reserved. 22
  • 23. (4)バックアップ・リカバリ(運用) Copyright 2012 Uptime Technologies LLC, All rights reserved. 23
  • 24. バックアップ、リカバリの運用 • 指定したサイクルで定期的にベースバックアップを取得 – ベースバックアップスクリプトをcron等で実行し、ベースバックアップを取得 – 世代ごとにサブディレクトリが作られてベースバックアップを保存 – 指定した世代数を超えたベースバックアップは削除 – もっとも古い世代のベースバックアップ以前のアーカイブログを削除 • 障害が発生した場合は、ベースバックアップおよびアーカイブWALからリ カバリ – オンラインWALバックアップスクリプトを実行し、オンラインWALファイルを退 避する – リカバリスクリプトを実行し、最新のベースバックアップ、およびオンライン WALファイルをレストアし、リカバリ設定ファイルを作成する – PostgreSQLサービスを起動し、リカバリを実行する Copyright 2012 Uptime Technologies LLC, All rights reserved. 24
  • 25. ベースバックアップの世代管理 • 指定したバックアップ世代数に合わせて、ベースバックアップとアーカイブログを 管理する – 最新のベースバックアップを取得できたら、もっとも古いベースバックアップを削除する – アーカイブログは、もっとも古いベースバックアップ以前のものを削除する (例)ベースバックアップを3世代分保持する場合 コピー データベース スナップショット クラスタ (一時領域) アーカイブ、圧縮 第0世代 WAL Rotate 第1世代 Rotate アーカイビング 第2世代 第0世代を取得後に削除 第3世代 第2世代以降に生成された アーカイブログ アーカイブログを保持 バックアップ用ストレージ Copyright 2012 Uptime Technologies LLC, All rights reserved. 25
  • 26. リカバリ時の動作 • オンラインWALファイルを保存、最新の世代のベースバックアップからレストアし、 リカバリ実施に必要な設定ファイルを作成する – データベースクラスタに残っているオンラインWALファイルを保存する(①) – ベースバックアップからレストアする(②) – オンラインWALファイルを再度配置する(③) – リカバリを開始したら、アーカイブWALファイルを適用していく(④) データベース スナップショット ②レストア (一時領域) クラスタ 第0世代 WAL ①オンライン 第1世代 WAL保存 第2世代 ④適用 ③オンライン 最新WAL WAL配置 第2世代以降に生成された アーカイブログ アーカイブWALを保持 バックアップ用ストレージ Copyright 2012 Uptime Technologies LLC, All rights reserved. 26
  • 27. アーカイブWALファイルの消し込み • ベースバックアップを取得すると、そのベースバックアップより前のアーカイ ブWALファイルは不要になる – 具体的には ”START WAL LOCATION” より前のWALファイル – ベースバックアップ②を取得したら、アーカイブWAL①は不要 – 但し、世代管理は必要 アーカイブWAL① アーカイブWAL② WAL WAL WAL WAL WAL WAL WAL WAL ベース ベース バックアップ① バックアップ② • 消し込みの方法 – pg_archivecleanupコマンドを使う(contribモジュール) – tmpwatchでタイムスタンプで判断(24時間以上経過したら削除、等) Copyright 2012 Uptime Technologies LLC, All rights reserved. 27
  • 28. (5)バックアップ・リカバリ(ツール) Copyright 2012 Uptime Technologies LLC, All rights reserved. 28
  • 29. pg_rman • NTT OSSセンターの開発したPostgreSQLバックアップツール – バックアップの取得 – リストア/リカバリの実行 – バックアップセットの管理 – D2D (Disk to Disk)のツール • 運用方法 – バックアップ取得(full、incremental、archive) – バックアップ検証(validate) – バックアップ消込(delete) – レストア/リカバリ実施 pg-rman - PostgreSQL Recovery Manager - Google Project Hosting http://code.google.com/p/pg-rman/ Copyright 2012 Uptime Technologies LLC, All rights reserved. 29
  • 30. Barman • 2ndQuadrantの開発したPostgreSQLバックアップツール – バックアップの取得(複数サーバ、ネットワーク経由) – リストア/リカバリの実行 – バックアップセットの管理 – D2D (Disk to Disk)のツール – 複数サーバを対象としたバックアップ管理が可能 Barman - Backup and Recovery Manager for business critical PostgreSQL databases http://www.pgbarman.org/ Copyright 2012 Uptime Technologies LLC, All rights reserved. 30
  • 31. Q&A Copyright 2012 Uptime Technologies LLC, All rights reserved. 31
  • 32. さらに詳しくなりたい方は • PostgreSQLアーキテクチャ入門(自習用教材) – 内容:プレゼンテーションを録画した動画、及び使用しているスライド – 動画時間:約55分 – スライドページ数:54ページ – ファイル形式:MP4(動画)およびPDF(スライド) • OSDL DBT-3によるPostgreSQLの性能評価(SATA HDD&SATA SSD編) – 内容:技術検証レポート – ページ数:54ページ – ファイル形式:PDF いずれも http://www.uptime.jp から購入できます。 Copyright 2012 Uptime Technologies LLC, All rights reserved. 32
  • 33. PostgreSQLパフォーマンスチューニング入門 • 日時:2012年9月14日(金) 14:30~17:30 (約3時間) • 場所:クロスコープ青山 セミナールーム (東京メトロ 外苑前駅) • 概要 – PostgreSQLを利用する際に必要となるパフォーマンス管理およびチューニングについて、その仕組み や手順などの基本的な知識を獲得することを目的とします。 • 対象 – PostgreSQLを使っているアプリケーション開発者の方 – PostgreSQLをこれから使い始めるデータベース管理者の方 – 現在、他のRDBMSを使っており、今後のPostgreSQLの利用を検討している方 – PostgreSQLを使っているがパフォーマンス問題に困っている方 • 前回の参加者の皆さまからのコメント(アンケートより) – 丁寧な内容で構築・運用時に押さえるべき点を把握できた – 各パラメータについてはある程度知っていたが体系的に学ぶことができた – ツールや分析方法に知らないことが多かった – 全体のアーキテクチャの説明により、チューニングの基本が納得できた • 詳細 – http://bit.ly/MgYKPB Copyright 2012 Uptime Technologies LLC, All rights reserved. 33
  • 34. アップタイム・テクノロジーズについて • オープンソース導入サポートサービスの提供 – 各種OSS(ミドルウェア、ツールなど)についての調査・情報提供 – 設計(基盤~アプリ)、開発の支援 – 機能検証・性能見積もり支援(機能検証、性能検証)、試験設計支援 – OSSコミュニティエスカレーション、等 • セミナ、トレーニングの提供 – 「PostgreSQLパフォーマンスチューニング入門」(7/27) – 「LifeKeeper for Linuxで構築・運用する高可用PostgreSQLシステム」 • 学習用コンテンツのオンライン販売 – PostgreSQLアーキテクチャ入門(自習用教材) – OSDL DBT-3によるPostgreSQLの性能評価~SATA HDD&SATA SSD編 (技術検 証レポート) 詳細は http://www.uptime.jp をご覧ください。 Copyright 2012 Uptime Technologies LLC, All rights reserved. 34
  • 35. 【お問い合わせ先】 アップタイム・テクノロジーズ合同会社 永安 悟史 E-mail: snaga@uptime.jp Web: http://www.uptime.jp/ Copyright 2012 Uptime Technologies LLC, All rights reserved. 35