SlideShare a Scribd company logo
1 of 43
Download to read offline
PostgreSQL 9.0 アップデート
レプリケーションがやってきた!




日本PostgreSQLユーザ会
NTT OSSセンタ
藤井 雅雄


OSC2010 Kansai@Kyoto
お品書き


• レプリケーション以外の新機能
• レプリケーション
9.0は5年ぶりの「記念リリース」

                • レプリケーションをぜひ使って欲しい!

Ingress
 Ingress
                                                                                        9.0
                 PostgreSQL
                 PostgreSQL                          8.1
                     6.0
                     6.0                                                                      (2010/8予定)
1977                                 7.4
                                     7.4
                                                  •パーティショニング
                                                  •パーティショニング             8.3
       1986                                       •2相コミット
                                                  •2相コミット           •HOT: 更新性能向上
                                                                    •HOT: 更新性能向上
              1996
                      2000
                             2003
                                                  •バッファ管理改良
                                                  •バッファ管理改良         •VACUUM自動化
                                                                    •VACUUM自動化
                                                                                       •レプリケーション
                                    2004
                                                                    •全文テキスト検索
                                                                    •全文テキスト検索
                                                                                       •列 / 条件付きトリガ
                                                                                       •列 / 条件付きトリガ
POSTGRES
POSTGRES                                   2005
                                                                                       •排他制約
                                                     2006                              •排他制約
                     7.3
                     7.3                                                               •Windows 64bit対応
                                                                  2007                 •Windows 64bit対応
                                                                         2008
                                                                                2009
                                8.0                                                        2010
                           •Windows対応                       8.2
                           •Windows対応
                           •セーブポイント
                           •セーブポイント
                                                   •CPUスケール
                                                   •CPUスケール
                           •メディア故障対応(PITR)
                           •メディア故障対応(PITR)         •オンライン索引作成
                                                   •オンライン索引作成                   8.4
                           •テーブルスペース
                           •テーブルスペース               •GIN: 汎用転置索引
                                                   •GIN: 汎用転置索引          Window関数・再帰クエリ
                                                                         Window関数・再帰クエリ
                                                                         •VACUUM用メモリ自動管理
                                                                         •VACUUM用メモリ自動管理
                                                                         •他DBMS互換性向上
                                                                         •他DBMS互換性向上
レプリケーション以外の新機能
1. VACUUM FULLの刷新
VACUUM
         進化し続けるVACUUM                    FULL刷新


                                                       9.0
         autovacuum                         8.4
           コア統合
                                   8.3
VACUUM                       8.2                  自動メモリ管理
遅延設定
                      8.1                  HOT
            8.0
  7.4                  XID周回              複数プロセス
                       管理改善               autovacuum
      REINDEX         インデックスの            参照クエリでの
     ほぼ不要化            VACUUM改良           XID消費抑制
VACUUM vs. VACUUM FULL



id   name             id   name                 id   name
1    京都      VACUUM   1    京都     VACUUM FULL   1    京都
                      2    東京                   3    兵庫
                      3    神奈川                  2    大阪
                                   UPDATE
2    大阪               2    大阪
3    兵庫               3    兵庫
VACUUM FULLは使ってはならない (~8.4)

• 時間がかかる
• 排他ロック
• 順序性が壊れる
• インデックスのゴミが増える
VACUUM FULLの改善

 ~8.4            9.0~
VACUUM FULLの利用価値UP (9.0~)

• 高速
• 排他ロック
• 順序性はそのまま
• インデックスのゴミも掃除
※基本的にはVACUUMで十分
2. 排他制約
範囲や地理データ型の“重なり”を制限

  • 一意性制約 (UNIQUE)
    – “点” の “一致” を禁止

N • 排他制約 (EXCLUDE)
 E
  W
    – “広がり” を持つ型の “重なり” を禁止




   地理データ型の重なり          予約時間の重なり
空間を占めるオブジェクトの重なりを避ける例



 CREATE TABLE placement (
    object text,
    location box, -- 矩形
    EXCLUDE USING gist (location WITH &&)
 );
3. application_name
コネクションに名前を付与できる




                       chat          blog
                                                  shopping




活動状況                                サーバログ
                                    [blog] LOG: unexpected EOF on client connection
SELECT *
  FROM pg_stat_activity             [chat] ERROR: deadlock detected
  WHERE application_name = ‘blog’   ...
その他
• 条件付き 及び 列単位のトリガ
• アクセス制御のデフォルト設定 / 一括変更
• LISTEN/NOTIFY の高速化 / メッセージ送信
• Windows 環境での 64-bit 版サポート
※新機能は Let’s postgres で紹介中!
•   http://lets.postgresql.jp/documents/technical/9.0/
レプリケーション
ウォームスタンバイの発展系


 アーカイブ・
  リカバリ                       9.0
オンライン・
バックアップ         8.3                 レプリケーション

         8.0         ウォーム・
                     スタンバイ
9.0 レプリケーション =

            クライアント
                           ホット・スタンバイ

      SQL            SQL
マスタ                    スタンバイ


            変更


  ストリーミング・レプリケーション
なぜレプリケーションが必要?

高可用性                 負荷分散


      クライアント                     クライアント


               SQL         SQL            SQL

マスタ       スタンバイ      マスタ             スタンバイ
特徴
マスタ / 複数スタンバイ

              クライアント



      更新SQL            参照SQL   複数スタンバイ

マスタ


               変更
カスケード     NG
      クライアント


                 参照SQL     複数スタンバイ
 更新SQL

マスタ           スタンバイ


         変更           変更
ログシッピング        クライアント




       更新SQL
 マスタ                          スタンバイ



               WAL
                               リカバリ

  WAL                   WAL           データベース
メジャーバージョンとアーキテクチャの一致

             クライアント   スタンバイ

                              OS: 32bit


マスタ

                              PG: v9.1.0


OS: 64bit
PG: v9.0.0                    OS: 64bit
                              PG: v9.0.2
既存APをそのままレプリケーションに移行可能



クライアント              クライアント




              マスタ        スタンバイ




 単独
DB全体をレプリケーション


DB全体            テーブルごと




 マスタ   スタンバイ    マスタ      スタンバイ
WALが書かれないものはレプリケーションされない



• サーバログ
• パラメータの設定変更
シェアード・ナッシング


シェアード・ナッシング           共有ディスク



    マスタ       スタンバイ   マスタ      スタンバイ
非同期レプリケーション

              クライアント



  COMMIT


マスタ            “成功”
                       スタンバイ




      fsync



      WAL
ホット・スタンバイ

実行OK                          実行NG


  SELECT                        INSERT / UPDATE / DELETE


  SET                           CREATE / DROP / ALTER


  BEGIN / COMMIT / ROLLBACK     VACUUM / ANALYZE


  バックアップ                        一時テーブル
最新の変更が見えない

 SELECT count(*) =   3件   SELECT count(*) =   2件

              参照                       参照


マスタ                                                スタンバイ


              挿入                       挿入

        INSERT                   リカバリ
参照SQL vs. リカバリ

                            SELECT

                                 参照



マスタ                    競合             スタンバイ


            掃除                   掃除

        VACUUM              リカバリ
手動フェイルオーバ         自動切り離し


      クライアント            クライアント




マスタ       スタンバイ   マスタ       スタンバイ
自動フェイルオーバ
+ Pacemaker           + pgpool-II

         クライアント                   クライアント


       SQL

  仮想IP                                 pgpool-II

                            SQL            SQL




 マスタ          スタンバイ   マスタ             スタンバイ
オンライン再組み込み


      クライアント




マスタ




               スタンバイ
PostgreSQL組み込み

• 簡単なインストール & 使い方

• マルチプラットホーム

• 日本語ドキュメント
• 活発な開発
9.0は5年ぶりの「記念リリース」

                • レプリケーションをぜひ使って欲しい!

Ingress
 Ingress
                                                                                        9.0
                 PostgreSQL
                 PostgreSQL                          8.1
                     6.0
                     6.0                                                                      (2010/8予定)
1977                                 7.4
                                     7.4
                                                  •パーティショニング
                                                  •パーティショニング             8.3
       1986                                       •2相コミット
                                                  •2相コミット           •HOT: 更新性能向上
                                                                    •HOT: 更新性能向上
              1996
                      2000
                             2003
                                                  •バッファ管理改良
                                                  •バッファ管理改良         •VACUUM自動化
                                                                    •VACUUM自動化
                                                                                       •レプリケーション
                                    2004
                                                                    •全文テキスト検索
                                                                    •全文テキスト検索
                                                                                       •列 / 条件付きトリガ
                                                                                       •列 / 条件付きトリガ
POSTGRES
POSTGRES                                   2005
                                                                                       •排他制約
                                                     2006                              •排他制約
                     7.3
                     7.3                                                               •Windows 64bit対応
                                                                  2007                 •Windows 64bit対応
                                                                         2008
                                                                                2009
                                8.0                                                        2010
                           •Windows対応                       8.2
                           •Windows対応
                           •セーブポイント
                           •セーブポイント
                                                   •CPUスケール
                                                   •CPUスケール
                           •メディア故障対応(PITR)
                           •メディア故障対応(PITR)         •オンライン索引作成
                                                   •オンライン索引作成                   8.4
                           •テーブルスペース
                           •テーブルスペース               •GIN: 汎用転置索引
                                                   •GIN: 汎用転置索引          Window関数・再帰クエリ
                                                                         Window関数・再帰クエリ
                                                                         •VACUUM用メモリ自動管理
                                                                         •VACUUM用メモリ自動管理
                                                                         •他DBMS互換性向上
                                                                         •他DBMS互換性向上
ご清聴ありがとうございました
レコード単位のレプリケーション

       レコード単位



                スタンバイ



 マスタ



       ファイル単位   スタンバイ
スタンバイ起動直後は接続できない

マスタ          スタンバイ

バックアップ開始



                     接続NG
      1

バックアップ完了


      2
                     接続OK

      3
使いどころ

• 参照スケールアウト
• データ損失を許す高可用
• ディザスタ・リカバリ

More Related Content

Similar to PostgreSQL9.0アップデート レプリケーションがやってきた!

H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
irix_jp
 
JBoss AS7 rev3
JBoss AS7 rev3JBoss AS7 rev3
JBoss AS7 rev3
nekop
 
Windows Azure AppFabric 第2章
Windows Azure AppFabric 第2章Windows Azure AppFabric 第2章
Windows Azure AppFabric 第2章
Tatsuaki Sakai
 
JBoss AS7 rev2
JBoss AS7 rev2JBoss AS7 rev2
JBoss AS7 rev2
nekop
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
Makoto Kato
 

Similar to PostgreSQL9.0アップデート レプリケーションがやってきた! (20)

Zabbix 1.8の概要と新機能
Zabbix 1.8の概要と新機能Zabbix 1.8の概要と新機能
Zabbix 1.8の概要と新機能
 
オープンソースでシステム監視!統合監視ソフトウェア"Zabbix 1.8"の新機能とデモ
オープンソースでシステム監視!統合監視ソフトウェア"Zabbix 1.8"の新機能とデモオープンソースでシステム監視!統合監視ソフトウェア"Zabbix 1.8"の新機能とデモ
オープンソースでシステム監視!統合監視ソフトウェア"Zabbix 1.8"の新機能とデモ
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
 
[db tech showcase Tokyo 2016] D24: データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第三章 ~デ...
[db tech showcase Tokyo 2016] D24: データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第三章 ~デ...[db tech showcase Tokyo 2016] D24: データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第三章 ~デ...
[db tech showcase Tokyo 2016] D24: データベース環境における検証結果から理解する失敗しないフラッシュ活用法 第三章 ~デ...
 
Info talk #36
Info talk #36Info talk #36
Info talk #36
 
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
 
JBoss AS7 rev3
JBoss AS7 rev3JBoss AS7 rev3
JBoss AS7 rev3
 
OpenStack Rocky リリース
OpenStack Rocky リリースOpenStack Rocky リリース
OpenStack Rocky リリース
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1
 
We Should Know About in this SocialNetwork Era 2011_1112
We Should Know About in this SocialNetwork Era 2011_1112We Should Know About in this SocialNetwork Era 2011_1112
We Should Know About in this SocialNetwork Era 2011_1112
 
Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012Lars George HBase Seminar with O'REILLY Oct.12 2012
Lars George HBase Seminar with O'REILLY Oct.12 2012
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
Windows Azure AppFabric 第2章
Windows Azure AppFabric 第2章Windows Azure AppFabric 第2章
Windows Azure AppFabric 第2章
 
JBoss AS7 rev2
JBoss AS7 rev2JBoss AS7 rev2
JBoss AS7 rev2
 
re:Grouth 2020 : AWS Infrastrucuter Serviceの進化 2020
re:Grouth 2020 : AWS Infrastrucuter Serviceの進化 2020re:Grouth 2020 : AWS Infrastrucuter Serviceの進化 2020
re:Grouth 2020 : AWS Infrastrucuter Serviceの進化 2020
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
dimSTATから見るベンチマーク
dimSTATから見るベンチマークdimSTATから見るベンチマーク
dimSTATから見るベンチマーク
 
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
 
Zabbix勉強会
Zabbix勉強会Zabbix勉強会
Zabbix勉強会
 

More from Masao Fujii

More from Masao Fujii (11)

カスタムプランと汎用プラン
カスタムプランと汎用プランカスタムプランと汎用プラン
カスタムプランと汎用プラン
 
Introduction to pg_cheat_funcs
Introduction to pg_cheat_funcsIntroduction to pg_cheat_funcs
Introduction to pg_cheat_funcs
 
PostgreSQL Quiz
PostgreSQL QuizPostgreSQL Quiz
PostgreSQL Quiz
 
誰か私のTODOを解決してください
誰か私のTODOを解決してください誰か私のTODOを解決してください
誰か私のTODOを解決してください
 
WAL圧縮
WAL圧縮WAL圧縮
WAL圧縮
 
PostgreSQL replication
PostgreSQL replicationPostgreSQL replication
PostgreSQL replication
 
使ってみませんか?pg hint_plan
使ってみませんか?pg hint_plan使ってみませんか?pg hint_plan
使ってみませんか?pg hint_plan
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
 
PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説
 
Streaming Replication (Keynote @ PostgreSQL Conference 2009 Japan)
Streaming Replication (Keynote @ PostgreSQL Conference 2009 Japan)Streaming Replication (Keynote @ PostgreSQL Conference 2009 Japan)
Streaming Replication (Keynote @ PostgreSQL Conference 2009 Japan)
 
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
 

Recently uploaded

Recently uploaded (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

PostgreSQL9.0アップデート レプリケーションがやってきた!