PostgreSQL 9.0 のレプリケーションを使ってみよう SRA OSS, Inc. 日本支社佐藤友章 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 1

Similar documents
改訂履歴 版改訂日変更内容 /4/25 新規作成 ライセンス 本作品は CC-BY ライセンスによって許諾されています ライセンスの内容を知りたい方は でご確認ください 文書の内容 表記に関

<506F C392E30838C A B E E2E2E>

PostgreSQLによる データベースサーバ構築技法

改訂履歴 版 改訂日 変更内容 /4/25 新規作成 ライセンス 本作品はCC-BYライセンスによって許諾されています ライセンスの内容を知りたい方は 文書の内容 表記に関する

ql tar.gz の展 9 開 # su - $ cd /usr/local/src/ $ tar xvzf ql tar.gz PostgreSQL(9.2.4) のインストール $ ls -l /usr/local/src/ drwxrwxr-x 月

A : kerl kerl Erlang/OTP Erlang/OTP 2 2 Elixir/Phoenix URL 2 PDF A.2 Bash macos.bash_profile exp

別紙 : 検証環境の構築手順 ( 章 ) 1. サーバ設定 1.1 IP アドレス設定 サーバは以下の 6 台を用いる pgpool-ii サーバ 2 台 DB サーバ 3 台 上位サーバ 1 台 OS は全サーバで CentOS 6.4 x86_64 とする pgpool-ii のサー

PostgreSQL

PGECons技術ドキュメントテンプレート Ver.3

CLUSTERPRO for Linux PostgreSQL HowTo

1 1 CentOS Java JDK(JavaSE Development Kit)......

目次 PostgreSQL の特徴 インストール インストール方法 環境変数 データベースクラスタ 起動 停止 設定ファイル postgresql.conf ログ出力設定 環境設定 ロール作成 データベース作成 psql バックスラッシュコマンド バックアップ リストア PITR (Point In

1_postgis(2.2.1) のインストール No 概要 対象 ユーザ コマンド 確認 ( 確認コマンド等 ) 備考 # yum install gcc # gcc -v - 組み込み spec を使用しています COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/

PGECons技術ドキュメントテンプレート Ver.3

情報処理概論(第二日目)

HAクラスタで PostgreSQLを高可用化 (後編) ~ レプリケーション編 ~

はじめに PostgreSQL/PowerGres サポート & 保守サービス でサポート対象になっているサードパーティ製のソフトを紹介 pgfouine pgbadger( 今後サポート対象にする予定 ) PgFincore pg_reorg pg_rman pg_bulkload pg_stat

dvi

PostgreSQLのセキュリティを極める

任意の間隔での FTP 画像送信イベントの設定方法 はじめに 本ドキュメントでは AXIS ネットワークカメラ / ビデオエンコーダにおいて任意の間隔で画像を FTP サー バーへ送信するイベントの設定手順を説明します 設定手順手順 1:AXIS ネットワークカメラ / ビデオエンコーダの設定ページ

情報処理概論(第二日目)

ssh

PostgreSQLによる クラスタ運用および負荷分散術 SRA OSS, Inc. 日本支社 OSS事業本部 星合 拓馬

スライド 1

ServerView ESXi CIM Provider VMware ESXi 4インストールガイド

ServerView ESXi CIM Provider / ServerView RAID Core Provider VMware vSphere ESXi 6.0 インストールガイド

POSTGRESQL 9.2 /POSTGIS (WINDOWS 版 ) 導入 設定手順書 (VER. 1) June 20, 2014

ServerView ESXi CIM Provider VMware vSphere ESXi 6.5 インストールガイド

ServerView ESXi CIM Provider VMware vSphere ESXi 6.0 インストールガイド

ftServerでのログの取得方法の概要

GettingStartedTK2

JPUG 仕組み分科会 補足資料 補足資料 :PostgreSQL の WAL と PITR 1. PostgreSQL の簡単な紹介 "PostgreSQL" はオープンソースのデータベースシステム 1.1. 歴史 PostgreSQL の起

目次 1. 動作環境チェック 動作必要環境 Java のインストール Java のインストール Firebird のインストール Firebird のインストール Adobe Reader のインストール

ServerView ESXi CIM Provider VMware vSphere ESXi 6.5 インストールガイド

ServerView with Data ONTAP-v™ PowerChute® Network Shutdown 設定について

ServerView ESXi CIM Provider / ServerView RAID Core Provider VMware vSphere ESXi 6.5 / 6.7 インストールガイド

JPUG 仕組み分科会 テキスト pgpool-ii のオンラインリカバリの概要 本稿は 2008 年 12 月発売の 技術評論社 WEB+DB PRESS vol. 48 の 特集 3 PostgreSQL 大規模運用 の草稿を 編集したものである

PostgreSQL Plus 管理者ガイド

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

Upload path ファイル送信先ディレクトリのパスを指定します ホームディレクトリに画像を送信する場合は空白のまま サブディレクトリに画像を送信する場合はディレクトリ名を指定します さらに下位のディレクトリを指定する場合は \ マークを利用します 例 ) ホームディレクトリ以下の camera

PRIMEQUEST におけるServerView ESXi CIM Provider VMware vSphere 5インストールガイド

ServerView ESXi CIM Provider VMware vSphere ESXi 5 インストールガイド

システムパッケージリリース情報-Version5.0.0pre

unix.dvi

対応した JDBC ドライバ (postgresql jdbc4.jar) に変更します 1.OpenDolphin-2.3m\client\pom.xml の下線部分を変更 <version> jdbc41</version> <version> jd

Microsoft Word - D JP.docx

RouteMagic Controller RMC-MP200 / MP Version

Microsoft Word - tutorial3-dbreverse.docx

PostgreSQL 9.4 評価検証報告 SRA OSS, Inc. 日本支社高塚遙 :55 ~ 16:30 PostgreSQL 9.4 最新情報セミナー Copyright 2014 SRA OSS, Inc. Japan All rights reserved. 1

pgpool-ii で PostgreSQL のクラスタを楽々運用しよう OSC Tokyo 2014/12/12 SRA OSS, Inc. 日本支社マーケティング部 OSS 技術グループ 長田 悠吾

Microsoft Word - Win-Outlook.docx

スライド 1

意外と簡単!? Oracle Database 11g -バックアップ・リカバリ編-

rndc BIND DNS 設定 仕組み

薬剤在庫管理ソフト - インストール・バージョンアップ手順書

Raspberry Pi で WEB カメラを使用 会津大学 RT ミドルウェア講習会 2017 The University of Aizu

Lets移行プラットホーム

Microsoft PowerPoint - InfPro_I6.pptx

Zabbix で PostgreSQL を監視! pg_monz のご紹介 Zabbix Conference Japan 年 11 月 20 日 SRA OSS, Inc. 日本支社マーケティング部

pg_monz 監視アイテム一覧 :Template App PostgreSQL Template App PostgreSQL アプリケーション LLD アイテムトリガー監視タイプ更新間隔ヒストリトレンドデフォルト説明ステータス pg.get pgsql.get.pg.bgwriter Zabb

URoad-TEC101 Syslog Guide

第5回 マインクラフト・プログラミング入門

HeartCoreインストールマニュアル

【Alfresco勉強会】セットアップ&インストール_pptx

PostgreSQL の特徴 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 2

自己紹介 長田悠吾 ( ナガタユウゴ ) SRA OSS, Inc. 日本支社 マーケティング部 OSS 技術グループ pgpool-ii 開発者 PostgreSQL 関連の技術調査 OSS の技術サポート PostgreSQL の開発にも参加 Copyright 2015 SRA OSS, In

MENU 키를 누르면 아래의 화면이 나타납니다

PostgreSQL による クラスタ構成の可能性 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

はじめに 1. 概要本書では SuitePRO V3 にて提供している迷惑メールフィルタのバージョンアップ手順について案内しています なお この手順につきましては 迷惑メールフィルタ機能について オンラインマニュアルの内容通りに設定されていることを前提条件とします

Symantec AntiVirus の設定

Microsoft Word - ユーザ向け利用の手引き_v0.3.doc

Transcription:

PostgreSQL 9.0 のレプリケーションを使ってみよう SRA OSS, Inc. 日本支社佐藤友章 sato@sraoss.co.jp 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 1

あなたは誰? 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 2

こんな人に聞いてほしい 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 3

PostgreSQL とは 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 4

PostgreSQL 9.0 とは 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 5

レプリケーションとは 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 6

本日のメニュー PostgreSQL 9.0 を使ったレプリケーション 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 7

食材 食材は できるだけ新鮮なもの ( 最新のバージョン ) を使ったほうがおいしくいただけます CentOS 5.5 2 つ PostgreSQL 9.0.1 2 つ やる気少々本日は ノート PC 上に VMware Player をインストールし その上に CentOS をインストールしてあります 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 8

できあがりのイメージ WAL レコードの転送 参照 WAL センダ 参照 WAL レシーバ 更新 WAL ファイルの保存 WAL ファイルの転送 プライマリサーバ (primary/192.168.246.130) スタンバイサーバ (standby/192.168.246.131) 192.168.246.0/24 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 9

下ごしらえ 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 10

下ごしらえ (1) PostgreSQL のインストール プライマリ / スタンバイサーバで PostgreSQL をソースコードからビルドしてインストールします ソースコードを以下の URL からダウンロードします http://www.postgresql.org/ftp/source/v9.0.1/ インストール先はデフォルトのまま /usr/local/pgsql とします # tar -xjf postgresql-9.0.1.tar.bz2 -C /usr/local/src ソースコードを展開 # cd /usr/local/src/postgresql-9.0.1 #./configure # make world ソースコードをビルド # make install-world インストール # ls /usr/local/pgsql bin include lib share 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 11

下ごしらえ (2) PostgreSQL のスーパーユーザの作成 PostgreSQL のスーパーユーザ postgres を作成します ユーザ ID とグループ ID は 26 とします ホームディレクトリは /var/lib/pgsql とします # groupadd -g 26 postgres postgres グループを作成 # useradd -d /var/lib/pgsql -g postgres -u 26 postgres postgres ユーザを作成 # passwd postgres postgres ユーザのパスワードを設定 New UNIX password: ( パスワードを入力 ) Retype new UNIX password: ( もう一度パスワードを入力 ) 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 12

下ごしらえ (3) 環境変数の設定 postgres ユーザに切り替わって環境変数を設定します データベースクラスタの位置は /var/lib/pgsql/data とします # su - postgres postgres ユーザに切り替わる $ vim ~/.bash_profile ( 省略 ) # User specific environment and startup programs PATH=/usr/local/pgsql/bin:$PATH:$HOME/bin MANPATH=/usr/local/share/man:$MANPATH PGDATA=/var/lib/pgsql/data データベースクラスタの位置を設定 export PATH MANPATH PGDATA $. ~/.bash_profile 環境変数の設定を反映 $ psql --version コマンドへのパスが有効になっているかを確認 psql (PostgreSQL) 9.0.1 contains support for command-line editing 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 13

下ごしらえ (4) SSH の設定 プライマリ / スタンバイサーバ間でパスワードなしに WAL ファイルを転送できるように SSH の設定を行います primary$ ssh-keygen Enter file in which to save the key (/var/lib/pgsql/.ssh/id_rsa ): ( 何も入力しない ) Enter passphrase (empty for no passphrase): ( 何も入力しない ) Enter same passphrase again: ( 何も入力しない ) standby$ scp primary:~/.ssh/id_dsa.pub ~ standby$ mkdir -m 0700 ~/.ssh standby$ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys standby$ chmod 0600 ~/.ssh/authorized_keys standby$ ssh-keygen Enter passphrase (empty for no passphrase): ( 何も入力しない ) Enter same passphrase again: ( 何も入力しない ) primary$ scp standby:~/.ssh/id_rsa.pub ~ primary$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys primary$ chmod 0600 ~/.ssh/authorized_keys 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 14

プライマリサーバのレシピ 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 15

プライマリサーバのレシピ (1) データベースクラスタの作成 プライマリサーバでデータベースクラスタを作ります データベースクラスタとはデータベースのデータを入れる入れ物のことです データベースクラスタの位置は環境変数 PGDATA に設定した /var/lib/pgsql/data ディレクトリです データベースクラスタは initdb コマンドで作ります primary$ initdb -A md5 -E UTF8 --no-locale -W Enter new superuser password: ( スーパーユーザのパスワードを入力 ) Enter it again: ( もう一度パスワードを入力 ) primary$ ls $PGDATA PG_VERSION pg_hba.conf pg_stat_tmp pg_xlog base pg_ident.conf pg_subtrans postgresql.conf global pg_multixact pg_tblspc pg_clog pg_notify pg_twophase 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 16

プライマリサーバのレシピ (2) ストリーミングレプリケーションの設定 WAL ファイルの保存先のディレクトリを作り 設定ファイル postgresql.conf を編集してストリーミングレプリケーションの設定を行います max_wal_senders にはスタンバイサーバの数を指定します primary$ mkdir ~/archive WAL ファイルの保存先のディレクトリを作成 primary$ vim $PGDATA/postgresql.conf ( 抜粋 ) listen_addresses = '*' 接続を監視する IP アドレスを指定 wal_level = hot_standby WAL ファイルに書き込む情報のレベルを指定 archive_mode = on WAL ファイルを保存するか? archive_command = 'cp -i %p /var/lib/pgsql/archive/%f < /dev/nu ll' WAL ファイルを保存するコマンドを指定 max_wal_senders = 1 WAL センダプロセスの数を指定 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 17

プライマリサーバのレシピ (3) クライアント認証の設定 スタンバイサーバからの WAL のリクエストを受け付けるため 設定ファイル pg_hba.conf を編集してクライアント認証の設定を行います セキュリティを考えてパスワード認証を行うのがおすすめ DATABASE には replication を指定します replication はストリーミングレプリケーションの設定を行うための名前です ( 実際のデータベースではありません ) primary$ vim $PGDATA/pg_hba.conf ( 抜粋 ) # TYPE DATABASE USER CIDR-ADDRESS METHOD local all all md5 host all all 127.0.0.1/32 md5 host all all ::1/128 md5 host all all 192.168.246.0/24 md5 host replication postgres 192.168.246.0/24 md5 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 18

プライマリサーバのレシピ (4) プライマリサーバの起動 pg_ctl コマンドでプライマリサーバを起動します primary$ pg_ctl start プライマリサーバを起動 server starting LOG: database system was shut down at 2010-12-11 11:21:47 JST LOG: autovacuum launcher started LOG: database system is ready to accept connections primary$ ps ax grep postgres プライマリサーバのプロセスを確認 31969 pts/2 S 0:00 /usr/local/pgsql/bin/postgres 31970? Ss 0:00 postgres: logger process 31972? Ss 0:00 postgres: writer process 31973? Ss 0:00 postgres: wal writer process 31974? Ss 0:00 postgres: autovacuum launcher process 31975? Ss 0:00 postgres: archiver process 31976? Ss 0:00 postgres: stats collector process 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 19

プライマリサーバのレシピ (5) ベースバックアップの作成 pg_ctl コマンドでプライマリサーバを立ち上げ ベースバックアップを作ります ベースバックアップの作成前に pg_start_backup 関数 作成後に pg_stop_backup 関数を実行します pg_start_backup 関数の引数には任意のラベルを指定します ( バックアップファイルの絶対パスがおすすめ ) primary$ mkdir ~/backups ベースバックアップの保存先のディレクトリを作成 primary$ psql =# SELECT pg_start_backup('/var/lib/pgsql/backups/data-2010-12- 07.tar.bz2'); =# \q primary$ tar -cjf ~/backups/data-2010-12-07.tar.bz2 -C ~ --excl ude "pg_log/*" --exclude "pg_xlog/*" --exclude postmaster.opts --exclude postmaster.pid data primary$ psql =# SELECT pg_stop_backup(); =# \q 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 20

スタンバイサーバのレシピ 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 21

スタンバイサーバのレシピ (1) ベースバックアップの展開 プライマリサーバからバックアップファイルを転送し ベースバックアップを展開します ベースバックアップの展開後に不要なファイルの削除と WAL ファイルのアーカイブ先のディレクトリを作成します standby$ mkdir ~/backups ベースバックアップの保存先のディレクトリを作成 standby$ scp primary:~/backups/data-2010-12-07.tar.bz2 ~/backups standby$ tar -xjf ~/backups/data-2010-12-07.tar.bz2 -C ~ ベースバックアップを展開 standby$ mkdir ~/archive WAL ファイルの保存先のディレクトリを作成 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 22

スタンバイサーバのレシピ (2) スタンバイサーバの設定 プライマリサーバから WAL を受け取ってリカバリを行い リカバリ中に問い合わせを受け付けるようにするため スタンバイサーバの設定を行います standby$ vim $PGDATA/postgresql.conf ( 抜粋 ) hot_standby = on スタンバイ中に問い合わせを受け付けるか? standby$ vim $PGDATA/recovery.conf standby_mode = 'on' スタンバイサーバとして起動するか? primary_conninfo = 'host=primary user=postgres password=( スーパー ユーザのパスワードを指定 )' プライマリサーバに接続するための情報を指定 restore_command = 'scp primary:~/archive/%f %p' WAL ファイルからリカバリするコマンドを指定 trigger_file = '/var/lib/pgsql/trigger' リカバリの完了を指示するためのトリガファイルを指定 recovery.conf では値を '( シングルクォート ) で括る必要があります 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 23

スタンバイサーバのレシピ (3) スタンバイサーバの起動 これでレプリケーションの準備がすべて整ったので スタンバイサーバを立ち上げてみましょう standby$ pg_ctl start server starting スタンバイサーバを起動 LOG: database system was interrupted; last known up at 2010-12 -11 12:05:49 JST LOG: creating missing WAL directory "pg_xlog/archive_status" LOG: entering standby mode scp: /var/lib/pgsql/archive/000000010000000000000001: No such f ile or directory LOG: streaming replication successfully connected to primary LOG: redo starts at 0/1000020 standby$ ps ax grep postgres スタンバイサーバのプロセスを確認 12366 pts/2 S 0:00 /usr/local/pgsql/bin/postgres 12367? Ss 0:00 postgres: logger process 12368? Ss 0:00 postgres: startup process recoveri ng 000000010000000000000001 12371? Rs 0:00 postgres: wal receiver process str eaming 0/1000120 12375? Ss 0:00 postgres: writer process 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 24

スタンバイサーバのレシピ (4) プライマリサーバの確認 プライマリサーバでログとプロセスを確認します LOG: replication connection authorized: user=postgres host=192.168.246.131 port=52176 primary$ ps ax grep postgres プライマリサーバのプロセスを確認 31969 pts/2 S 0:00 /usr/local/pgsql/bin/postgres 31970? Ss 0:00 postgres: logger process 31972? Ss 0:00 postgres: writer process 31973? Ss 0:00 postgres: wal writer process 31974? Ss 0:00 postgres: autovacuum launcher proces s 31975? Ss 0:00 postgres: archiver process last wa s 000000010000000000000000 31976? Ss 0:00 postgres: stats collector process 32700? Ss 0:00 postgres: wal sender process postgre s 192.168.246.131(52176) streaming 0/10002A0 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 25

できあがり 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 26

味見してみよう (1) プライマリサーバへの参照 / 更新 $ createdb -h primary test $ pgbench -i -h primary test $ psql -h primary test =# \d List of relations Schema Name Type Owner --------+------------------+-------+---------- public pgbench_accounts table postgres public pgbench_branches table postgres public pgbench_history table postgres public pgbench_tellers table postgres (4 rows) =# SELECT * FROM pgbench_accounts WHERE aid = 1; aid bid abalance filler -----+-----+----------+-------------------------------------- 1 1 0 (1 row) =# UPDATE pgbench_accounts SET abalance = 1 WHERE aid = 1; UPDATE 1 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 27

味見してみよう (2) スタンバイサーバへの参照 / 更新 $ psql -h standby test =# \d List of relations Schema Name Type Owner --------+------------------+-------+---------- public pgbench_accounts table postgres public pgbench_branches table postgres public pgbench_history table postgres public pgbench_tellers table postgres (4 rows) =# SELECT * FROM pgbench_accounts WHERE aid = 1; aid bid abalance filler -----+-----+----------+-------------------------------------- 1 1 1 (1 row) =# UPDATE pgbench_accounts SET abalance = 2 WHERE aid = 1; ERROR: cannot execute UPDATE in a read-only transaction 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 28

味見してみよう (3) スタンバイサーバ停止中の更新 (1) スタンバイサーバが障害で停止したと想定し スタンバイサーバを復旧させてみます スタンバイサーバサーバのプロセスを強制的に停止します standby$ ps ax grep postgres プロセスIDを確認 15508 pts/2 S 0:00 /usr/local/pgsql/bin/postgres 15509? Ss 0:00 postgres: logger process 15510? Ss 0:01 postgres: startup process recoveri ng 000000010000000000000003 15513? Ss 0:00 postgres: writer process 15516? Ss 0:00 postgres: stats collector process 15517? Ss 0:00 postgres: wal receiver process str eaming 0/3075D18 standby$ kill -KILL 15508 プロセスを強制的に停止 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 29

味見してみよう (4) スタンバイサーバ停止中の更新 (2) プライマリサーバに更新を行います $ pgbench -i -h primary test $ pgbench -i -h primary test $ psql -h primary test =# UPDATE pgbench_accounts SET abalance = 3 WHERE aid = 1; UPDATE 1 =# \q スタンバイサーバを起動しなおします standby$ pg_ctl start pg_ctl: another server might be running; trying to start server anyway server starting standby$ psql -h standby test psql: FATAL: the database system is starting up standby$ psql -h standby test =# SELECT * FROM pgbench_accounts WHERE aid = 1; aid bid abalance filler -----+-----+----------+-------------------------------------- 1 1 3 (1 row) 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 30

味見してみよう (5) プライマリサーバの切り替え (1) プライマリサーバが障害で停止したと想定し プライマリサーバを切り替えてみます プライマリサーバのプロセスを強制的に停止します primary$ ps ax grep postgres プロセスIDを確認 1274 pts/2 S 0:00 /usr/local/pgsql/bin/postgres 1275? Ss 0:00 postgres: logger process 1277? Ss 0:00 postgres: writer process 1278? Ss 0:00 postgres: wal writer process 1279? Ss 0:00 postgres: autovacuum launcher process 1280? Ss 0:00 postgres: archiver process last wa s 000000010000000000000002 1281? Ss 0:00 postgres: stats collector process 1408? Ss 0:00 postgres: wal sender process postgre s 192.168.246.131(43925) streaming 0/30763F8 primary$ kill -KILL 1274 プロセスを強制的に停止 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 31

味見してみよう (6) プライマリサーバの切り替え (2) スタンバイサーバでトリガファイルを作ると プライマリサーバとして立ち上がります standby$ touch ~/trigger トリガファイルを作成 LOG: trigger file found: /var/lib/pgsql/trigger LOG: redo done at 0/30763C0 LOG: last completed transaction was at log time 2010-12-11 12: 46:57.954065+09 scp: /var/lib/pgsql/archive/000000010000000000000003: No such f ile or directory scp: /var/lib/pgsql/archive/00000002.history: No such file or d irectory LOG: selected new timeline ID: 2 scp: /var/lib/pgsql/archive/00000001.history: No such file or d irectory LOG: archive recovery complete LOG: autovacuum launcher started LOG: database system is ready to accept connections standby$ psql -h standby test =# UPDATE pgbench_accounts SET abalance = 1 WHERE aid = 1; UPDATE 1 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 32

ありがとうございました 2010/12/11 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 33