データベースTweet皆様、ご無沙汰しております。笹亀@イネ花粉に苦しんでます。昨日(7/10)、最近愛用しているPhpStormを開発しているJetBrainsのエバンジェリストとCEOの方が来日されて、講演をされるとのことで、参加をしてきました。http://www.zusaar.com/event/844003内容もよかったのですが、エバンジェリストの方がとてもユニークな方だったのが印象的でした。本日は少し前から興味を持っていたのですが、中々試す機会がなかった内容です。今回はPostgreSQLのレプリケーションの設定を解説しながらご紹介をしていきたいと思います。PostgreSQLのレプリケーションについてまずは、マスターとスレーブにするサーバへPostgreSQLをインストールしておきます。インストールするバージョンは必ず9.2以上でインストールしてください。インストールはそれぞれの環境でご準備くださいませ。インストール方法については割愛します。(googleさんにお聞きください(笑))PostgreSQLのレプリケーションだけではなく、マスター側で更新処理(登録・更新・削除など)があった場合にスレーブへ更新情報をやり取りする必要があります。Logging)にて行われます。WALはテーブルに書き込みを行う前に変更情報を記録しているログです。ログにはアンドゥとリドゥ用の情報が含まれていることから、DBMSがクラッシュしたときなどには、クラッシュ直前までリカバリを行うこともできます。PostgreSQLのレプリケーションでは、WALの同期をさせるタイミングについて、以下の4つの設定することができます。マスター・スレーブともにWAL書き込みを待たずにユーザにレスポンスする(WALはマスターのメモリ上のみ)スレーブ非同期がMySQLにて弊社でもよく使っているレプリケーションの同期設定です。今回の設定も「スレーブ非同期」にて設定をしていきます。レプリケーションの設定(マスター側)それでは実際にマスター側のPostgreSQLの設定をしていきます!1.レプリケーションをするためのPostgreのユーザを作成するpsqlコマンドでログインをして、下記のコマンドでユーザをつくります。'xxx';2.postgres.confにマスターの設定を追加するpostgresql.confはPostgreSQLデータフォルダ内にあります。エディターでファイルを開いて更新します。#同期方式の設定#synchronous_commitで指定できるレプリケーションの同期方式は下記の通りです。#これを設定しないとスレーブ非同期レプリケーションで動作する。(今回はスレーブ非同期ですが、念の為に設定しておく。#スレーブのrecovery.confに設定するprimary_conninfoのapplication_name=と同一にする3.pg_hba.confにマスターの設定を追加するpg_hba.confはPostgreSQLデータフォルダ内にあります。エディターでファイルを開いて更新します。レプリケーションの設定(スレーブ側)次にスレーブ側のPostgreSQLの設定をしていきます!1.マスター側で作成したバックアップをスレーブのデータフォルダへコピーするデータフォルダーごと上書きして更新をする。2.postgres.confにスレーブの設定を追加するpostgresql.confはPostgreSQLデータフォルダ内にあります。エディターでファイルを開いて更新します。on3.recovery.confにスレーブの設定を追加するサンプルからコピーしてrecovery.confとファイル名をします。Macの場合は「/opt/local/share/postgresql92/recovery.conf.sample」にありました。読み取ることに失敗しました】とエラーが出た場合は、postmaster.optsで実行している-dで指定しているデータフォルダを正しい箇所に修正ください。bufferを確保できずにエラーになることがあります。下記のコマンドを実行すると起動できるようになります。pg_stat_replication;"下記のようになっていれば同期していることになります。マスター側にデータベースとテーブルとデータ登録をしてスレーブ側に同期されているかを確認します。※[データ情報確認]参照[データベースリスト][データ情報確認]これでPostgreSQLでも同期がされていることが確認できました。今まではPostgreSQLではpg_poolなどを利用してプーリングをさせることが一般的でした。MySQLを使用していた理由としてレプリケーション機能は大きいものでした。これでPostgreSQLでも同様のことができることが確認できましたので、新しいシステムでも使用する頻度もおおくなりそうです。今回のブログでは「http://codezine.jp/article/detail/7109」の情報を参考に記載させていただきました。この場をお借り致しましてお礼申し上げます。ありがとうございました。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。