SlideShare a Scribd company logo
2
Most read
5
Most read
7
Most read
PostgreSQL 9.0で標準実装!
5ステップで始めるPostgreSQLレプリケーション




          アップタイム・テクノロジーズ
               永安 悟史




      Copyright 2010 Uptime Technologies LLC, All rights reserved.
レプリケーション概要
•   PostgreSQL 9.0で標準実装されるレプリケーション機能は、「ストリーミ
    ング・レプリケーション(SR)」と呼ばれています。

•   ストリーミングレプリケーションは、1つのマスターノード(読み書き可能)と、
    1つ以上のスレーブノード(読み込みのみ)で構成される、シングルマス
    タ・マルチスレーブ構成です。

•   マスターノードは、マスターノード上で生成された更新情報(トランザクショ
    ンログ)をスレーブノードに転送します(ストリーミング)。

•   スレーブノードは、ログレコードを待ち受け、受信したものを自身のノード
    のWALファイルに適用していきます。

•   スレーブノードでは、リードオンリーのクエリを処理することができます
    (ホットスタンバイモード) 。

              Copyright 2010 Uptime Technologies LLC, All rights reserved.
ストリーミング・レプリケーション概念図
•   ベースバックアップで「基準」を揃え、WALレコードを連続的に転送
    (Streaming)することで「差分」を埋める。


マスター                                                                                      Crash
                                  WAL1                    WAL2                     WAL3
                ①ベースバック
                 アップの取得


            Index                        ③WALレコードを継続的に適用                                  ④フェイル
                                          (Streaming)                                      オーバー
        Table


                ②ベースバック
                 アップを展開
                                  WAL1                    WAL2                     WAL3

スレーブ


                    Copyright 2010 Uptime Technologies LLC, All rights reserved.
WALファイル、WALレコード
• 更新情報を記録していく(追記)
 –   1セグメント16MB。使い終わると次のファイルへ
 –   リカバリの際に読み込まれる
 –   pg_xlog/ 以下に配置
 –   「Write Ahead Log(WAL)」とも呼ばれる



       Aテーブルのレコード1をmに変更
        Bテーブルのレコード6をnに変更
        Aテーブルのレコード4をxに変更
        Aテーブルのレコード1をyに変更
        Bテーブルのレコード2をzに変更


            ファイルの先頭から
            順番に更新情報が
             追記されていく




                 Copyright 2010 Uptime Technologies LLC, All rights reserved.
導入の5ステップ
•   ステップ1:ビルド&インストール
•   ステップ2:データベースクラスタを初期化&複製
•   ステップ3:マスターノードの設定
•   ステップ4:スレーブノードの設定
•   ステップ5:各ノードの起動&動作確認




            Copyright 2010 Uptime Technologies LLC, All rights reserved.
ステップ1:ビルド&インストール
•   まず、ソースをコンパイルし、インストールする。(バイナリパッケージを用
    いる際は省略可)
    –   $ ./configure –-prefix=/usr/local/pgsql
    –   $ make ; make check
    –   $ su
    –   # make install




                        Copyright 2010 Uptime Technologies LLC, All rights reserved.
ステップ2:データベースクラスタを初期化&複製
•   データベースクラスタを初期化する
    – master$ initdb –D $PGDATA –-no-locale –-encoding=UTF8

•   アーカイブログモードを有効にする(postgresql.conf)
    – archive_mode = on
    – archive_command = 'cp %p /var/lib/pgsql/data/pg_xlogarch/%f'

•   ベースバックアップを取得する
    – master$ pg_ctl –D $PGDATA start
    – master$ psql –c "SELECT pg_start_backup('initial backup for SR')"
      template1
    – master$ tar cvf pg_base_backup.tar $PGDATA
    – master$ psql –c "SELECT pg_stop_backup()" template1

•   スレーブノードにベースバックアップを展開する
    – slave$ tar xvf pg_base_backup.tar
    – slave$ rm –f $PGDATA/postmaster.pid
                     Copyright 2010 Uptime Technologies LLC, All rights reserved.
ステップ3:マスターノードの設定
•   WALをスレーブに送信できるように設定(postgresql.conf)。
    –   listen_addresses = ‘*‘
    –   wal_level = hot_standby
    –   max_wal_senders = 5
    –   wal_keep_segments = 32


•   スレーブノードからの接続を受け付けられるように設定(pg_hba.conf)
    – host replication     all     10.0.2.42/32                   trust




                     Copyright 2010 Uptime Technologies LLC, All rights reserved.
ステップ4:スレーブノードの設定
•   スタンバイモードとして設定(postgresql.conf)
    – hot_standby = on


•   スタンバイ用の設定ファイルの作成(recovery.conf)
    –   standby_mode = 'on'
    –   primary_conninfo = 'host=10.0.2.41 port=5432 user=snaga'
    –   trigger_file = '/var/lib/pgsql/data/pg_failover_trigger'
    –   restore_command = 'cp /var/lib/pgsql/data/pg_xlogarch/%f "%p"'




                      Copyright 2010 Uptime Technologies LLC, All rights reserved.
ステップ5:各ノードの起動&動作確認
•   マスターサーバを起動し、スレーブサーバを起動。

•   マスターノードでは以下のようなログが見られる。
    – LOG: replication connection authorized: user=snaga host=10.0.2.42
      port=55811


•   スレーブノードでは以下のようなログが見られる。
    – LOG: streaming replication successfully connected to primary




•   Done! Enjoy your PostgreSQL!




                     Copyright 2010 Uptime Technologies LLC, All rights reserved.
Ad

Recommended

アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
Kosuke Kida
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
NTT DATA Technology & Innovation
 
Ethernetの受信処理
Ethernetの受信処理
Takuya ASADA
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
Tatsuya Watanabe
 
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
Toru Makabe
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
 
OpenStack勉強会
OpenStack勉強会
Yuki Obara
 
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
NTT DATA OSS Professional Services
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
 
MySQLの文字コード事情
MySQLの文字コード事情
Masahiro Tomita
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
 
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
Masao Fujii
 

More Related Content

What's hot (20)

PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
Tatsuya Watanabe
 
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
Toru Makabe
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
 
OpenStack勉強会
OpenStack勉強会
Yuki Obara
 
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
NTT DATA OSS Professional Services
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
 
MySQLの文字コード事情
MySQLの文字コード事情
Masahiro Tomita
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
 
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
Tatsuya Watanabe
 
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
Toru Makabe
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
 
OpenStack勉強会
OpenStack勉強会
Yuki Obara
 
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
Yoshinori Nakanishi
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
 
MySQLの文字コード事情
MySQLの文字コード事情
Masahiro Tomita
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
 
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
 

Viewers also liked (20)

PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
Masao Fujii
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
 
pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法
Uptime Technologies LLC (JP)
 
Uptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビュー
Uptime Technologies LLC (JP)
 
PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"
Uptime Technologies LLC (JP)
 
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
Kuniyasu Suzaki
 
インフラの話
インフラの話
Tomohiro Ikeda
 
Postgres Toolkit
Postgres Toolkit
Uptime Technologies LLC (JP)
 
PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5
Uptime Technologies LLC (JP)
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
Uptime Technologies LLC (JP)
 
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
Uptime Technologies LLC (JP)
 
PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみる
Uptime Technologies LLC (JP)
 
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
Uptime Technologies LLC (JP)
 
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
Masahiro NAKAYAMA
 
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
Uptime Technologies LLC (JP)
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
NTT DATA OSS Professional Services
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
 
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
Uptime Technologies LLC (JP)
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
Masao Fujii
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
 
pgstattuple2: デッドタプル推定のための統計的手法
pgstattuple2: デッドタプル推定のための統計的手法
Uptime Technologies LLC (JP)
 
Uptime Database Appliance テクノロジープレビュー
Uptime Database Appliance テクノロジープレビュー
Uptime Technologies LLC (JP)
 
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
Kuniyasu Suzaki
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
Uptime Technologies LLC (JP)
 
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
Uptime Technologies LLC (JP)
 
PL/Pythonで独自の集約関数を作ってみる
PL/Pythonで独自の集約関数を作ってみる
Uptime Technologies LLC (JP)
 
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
Masahiro NAKAYAMA
 
Ad

Similar to 5ステップで始めるPostgreSQLレプリケーション@hbstudy#13 (20)

[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
Insight Technology, Inc.
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
Insight Technology, Inc.
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説
Masahiko Sawada
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
Kosuke Kida
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
Uptime Technologies LLC (JP)
 
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
Takatoshi Matsuo
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
 
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Takatoshi Matsuo
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
Toshi Harada
 
MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24
Yoshihiko Matsuzaki
 
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
Masao Fujii
 
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
Shinya Sugiyama
 
JPUGしくみ+アプリケーション勉強会(第25回)
JPUGしくみ+アプリケーション勉強会(第25回)
Yoshinori Nakanishi
 
MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較
Shinya Sugiyama
 
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pub
Toshi Harada
 
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
Insight Technology, Inc.
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
Insight Technology, Inc.
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説
Masahiko Sawada
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
Kosuke Kida
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
Uptime Technologies LLC (JP)
 
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
Takatoshi Matsuo
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
 
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Takatoshi Matsuo
 
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
 
Hackers Champloo 2016 postgresql-9.6
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
 
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
Toshi Harada
 
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
Masao Fujii
 
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
Shinya Sugiyama
 
JPUGしくみ+アプリケーション勉強会(第25回)
JPUGしくみ+アプリケーション勉強会(第25回)
Yoshinori Nakanishi
 
MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較
Shinya Sugiyama
 
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pub
Toshi Harada
 
Ad

Recently uploaded (8)

OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP Nagoya
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
色について.pptx .
色について.pptx .
iPride Co., Ltd.
 
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP Nagoya
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 

5ステップで始めるPostgreSQLレプリケーション@hbstudy#13

  • 1. PostgreSQL 9.0で標準実装! 5ステップで始めるPostgreSQLレプリケーション アップタイム・テクノロジーズ 永安 悟史 Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 2. レプリケーション概要 • PostgreSQL 9.0で標準実装されるレプリケーション機能は、「ストリーミ ング・レプリケーション(SR)」と呼ばれています。 • ストリーミングレプリケーションは、1つのマスターノード(読み書き可能)と、 1つ以上のスレーブノード(読み込みのみ)で構成される、シングルマス タ・マルチスレーブ構成です。 • マスターノードは、マスターノード上で生成された更新情報(トランザクショ ンログ)をスレーブノードに転送します(ストリーミング)。 • スレーブノードは、ログレコードを待ち受け、受信したものを自身のノード のWALファイルに適用していきます。 • スレーブノードでは、リードオンリーのクエリを処理することができます (ホットスタンバイモード) 。 Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 3. ストリーミング・レプリケーション概念図 • ベースバックアップで「基準」を揃え、WALレコードを連続的に転送 (Streaming)することで「差分」を埋める。 マスター Crash WAL1 WAL2 WAL3 ①ベースバック アップの取得 Index ③WALレコードを継続的に適用 ④フェイル (Streaming) オーバー Table ②ベースバック アップを展開 WAL1 WAL2 WAL3 スレーブ Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 4. WALファイル、WALレコード • 更新情報を記録していく(追記) – 1セグメント16MB。使い終わると次のファイルへ – リカバリの際に読み込まれる – pg_xlog/ 以下に配置 – 「Write Ahead Log(WAL)」とも呼ばれる Aテーブルのレコード1をmに変更 Bテーブルのレコード6をnに変更 Aテーブルのレコード4をxに変更 Aテーブルのレコード1をyに変更 Bテーブルのレコード2をzに変更 ファイルの先頭から 順番に更新情報が 追記されていく Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 5. 導入の5ステップ • ステップ1:ビルド&インストール • ステップ2:データベースクラスタを初期化&複製 • ステップ3:マスターノードの設定 • ステップ4:スレーブノードの設定 • ステップ5:各ノードの起動&動作確認 Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 6. ステップ1:ビルド&インストール • まず、ソースをコンパイルし、インストールする。(バイナリパッケージを用 いる際は省略可) – $ ./configure –-prefix=/usr/local/pgsql – $ make ; make check – $ su – # make install Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 7. ステップ2:データベースクラスタを初期化&複製 • データベースクラスタを初期化する – master$ initdb –D $PGDATA –-no-locale –-encoding=UTF8 • アーカイブログモードを有効にする(postgresql.conf) – archive_mode = on – archive_command = 'cp %p /var/lib/pgsql/data/pg_xlogarch/%f' • ベースバックアップを取得する – master$ pg_ctl –D $PGDATA start – master$ psql –c "SELECT pg_start_backup('initial backup for SR')" template1 – master$ tar cvf pg_base_backup.tar $PGDATA – master$ psql –c "SELECT pg_stop_backup()" template1 • スレーブノードにベースバックアップを展開する – slave$ tar xvf pg_base_backup.tar – slave$ rm –f $PGDATA/postmaster.pid Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 8. ステップ3:マスターノードの設定 • WALをスレーブに送信できるように設定(postgresql.conf)。 – listen_addresses = ‘*‘ – wal_level = hot_standby – max_wal_senders = 5 – wal_keep_segments = 32 • スレーブノードからの接続を受け付けられるように設定(pg_hba.conf) – host replication all 10.0.2.42/32 trust Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 9. ステップ4:スレーブノードの設定 • スタンバイモードとして設定(postgresql.conf) – hot_standby = on • スタンバイ用の設定ファイルの作成(recovery.conf) – standby_mode = 'on' – primary_conninfo = 'host=10.0.2.41 port=5432 user=snaga' – trigger_file = '/var/lib/pgsql/data/pg_failover_trigger' – restore_command = 'cp /var/lib/pgsql/data/pg_xlogarch/%f "%p"' Copyright 2010 Uptime Technologies LLC, All rights reserved.
  • 10. ステップ5:各ノードの起動&動作確認 • マスターサーバを起動し、スレーブサーバを起動。 • マスターノードでは以下のようなログが見られる。 – LOG: replication connection authorized: user=snaga host=10.0.2.42 port=55811 • スレーブノードでは以下のようなログが見られる。 – LOG: streaming replication successfully connected to primary • Done! Enjoy your PostgreSQL! Copyright 2010 Uptime Technologies LLC, All rights reserved.