<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ststyle.net &#187; pgpool-II</title>
	<atom:link href="http://www.ststyle.net/weblog/archives/tag/pgpool-ii/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ststyle.net/weblog</link>
	<description>Just another ststyle techlog</description>
	<lastBuildDate>Mon, 19 Jul 2010 13:53:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>pgpoolAdmin インストール</title>
		<link>http://www.ststyle.net/weblog/archives/438</link>
		<comments>http://www.ststyle.net/weblog/archives/438#comments</comments>
		<pubDate>Fri, 23 Oct 2009 06:57:09 +0000</pubDate>
		<dc:creator>ststyle</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[pgpool-II]]></category>
		<category><![CDATA[pgpoolAdmin]]></category>

		<guid isPermaLink="false">http://www.ststyle.net/weblog/?p=438</guid>
		<description><![CDATA[pgpoolAdminはpgpoolの管理をするためのツールです。
GUIベースで、pgpoolの状態監視や起動・停止、pgpool.confの設定を行うことができます.
pgpoolAdminの取得
pgpoolAdm [...]]]></description>
			<content:encoded><![CDATA[<p><em>pgpoolAdmin</em>はpgpoolの管理をするためのツールです。</p>
<p>GUIベースで、pgpoolの状態監視や起動・停止、pgpool.confの設定を行うことができます.</p>
<h3>pgpoolAdminの取得</h3>
<p><a href="http://pgfoundry.org/frs/?group_id=1000055">pgpoolAdmin</a>を入手する</p>
<p>apacheのドキュメントディレクトリにて展開&amp;リネーム</p>
<pre class="brush: bash; auto-links: false;">
tar zxvf pgpoolAdmin-2.1-beta1.tar.gz
mv pgpoolAdmin-2.1-beta1 pgpoolAdmin

chown nobody /usr/local/apache/htdocs_ssl/pgpoolAdmin/conf/pgmgt.conf.php
chmod 644 /usr/local/apache/htdocs_ssl/pgpoolAdmin/conf/pgmgt.conf.php
</pre>
<h3>pcp.confにログインアカウントを登録する</h3>
<p>ここではtestとしていますが実際はセキュアなパスワードを設定する事</p>
<p>md5パスワードを取得</p>
<pre class="brush: bash; auto-links: false;">

/usr/local/pgpool/bin/pg_md5 test

098f6bcd4621d373cade4e832627b4f6
</pre>
<p>pcp.confに追記</p>
<pre class="brush: bash; auto-links: false;">

vi /usr/local/pgpool/etc/pcp.conf

# USERID:MD5PASSWD
test:098f6bcd4621d373cade4e832627b4f6
</pre>
<h3>ブラウザで確認</h3>
<p>http://&lt;サーバ&gt;/pgpoolAdmin/login.php</p>
<p style="padding-left: 30px;"><img class="alignnone size-full wp-image-439" title="pgpoolAdmin" src="http://www.ststyle.net/weblog/wp-content/uploads/2009/10/pgpoolAdmin.jpg" alt="pgpoolAdmin" width="480" height="337" /></p>
<p>TOP画面</p>
<p style="padding-left: 30px;"><img class="alignnone size-full wp-image-440" title="pgpoolAdmin-02" src="http://www.ststyle.net/weblog/wp-content/uploads/2009/10/pgpoolAdmin-02.jpg" alt="pgpoolAdmin-02" width="480" height="337" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ststyle.net/weblog/archives/438/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pgpool-II インストール</title>
		<link>http://www.ststyle.net/weblog/archives/434</link>
		<comments>http://www.ststyle.net/weblog/archives/434#comments</comments>
		<pubDate>Fri, 23 Oct 2009 06:42:08 +0000</pubDate>
		<dc:creator>ststyle</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[pgpool-II]]></category>

		<guid isPermaLink="false">http://www.ststyle.net/weblog/?p=434</guid>
		<description><![CDATA[pgpool-IIはPostgreSQL専用のミドルウェアで，
PostgreSQLのデータベースクライアントとPostgreSQLサーバの間に割り込む形で動作し，
PostgrSQLに以下のような機能を追加します．
・ [...]]]></description>
			<content:encoded><![CDATA[<p>pgpool-IIはPostgreSQL専用のミドルウェアで，</p>
<p>PostgreSQLのデータベースクライアントとPostgreSQLサーバの間に割り込む形で動作し，</p>
<p>PostgrSQLに以下のような機能を追加します．</p>
<p style="padding-left: 30px;">・コネクションプーリング：：接続を保存し，再利用することで接続オーバヘッドを低減しスループット向上を図る</p>
<p style="padding-left: 30px;">・負荷分散：：多数のリクエストをそれぞれのサーバで分担して負荷を軽減させ，システム全体の性能を向上させることができます</p>
<p style="padding-left: 30px;">・レプリケーション：：物理的に2台以上のディスクにリアルタイムで書き込み処理を行い、万が一どれかのディスクに障害が発生しても運用を継続することができます．</p>
<p style="padding-left: 30px;">・パラレルクエリ：：それぞれのサーバに問い合わせを行い、問い合わせの処理時間を短縮</p>
<p>ここでの環境のポート番号は以下のようにしております</p>
<p>※PORT5439にて接続した場合はPGPOOL経由となりレプリケーションなどが働きます。</p>
<p>PGPOOLはメインDBにインストールしています</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p style="padding-left: 30px;">アプリ</p>
<p style="padding-left: 30px;">↓</p>
<p style="padding-left: 30px;">pgpool(5439)</p>
<p style="padding-left: 30px;">↓                    ↓</p>
<p>メインDB(5432)       バックエンドDB(5432)</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h3>PGPOOLインストール</h3>
<h3>事前準備</h3>
<pre class="brush: bash; auto-links: false;">

su -
mkdir /usr/local/pgpool
chown postgres:postgres /usr/local/pgpool
</pre>
<h3>展開＆インストール</h3>
<pre class="brush: bash; auto-links: false;">

su postgres
cd /usr/local/src/
% tar zxf pgpool-II-2.1.tar.gz
% cd pgpool-II-2.1
% PATH=/usr/local/pgsql/bin:$PATH
% ./configure --prefix=/usr/local/pgpool
% make
% make install
% ls /usr/local/pgpool/bin/pgpool
pgpool
</pre>
<h3>パスの追加</h3>
<p>~/.bashrcにパス追加</p>
<pre class="brush: bash; auto-links: false;">

vi ~/.bashrc
PATH=&quot;$PATH&quot;:/usr/local/pgsql/bin:/usr/local/pgpool/bin

source ~/.bashrc
</pre>
<p>インストールが完了すると設定ファイルの雛形が<br />
作成されるので、これをコピーする。</p>
<pre class="brush: bash; auto-links: false;">

% cp /usr/local/pgpool/etc/pgpool.conf{.sample,}
% cp /usr/local/pgpool/etc/pcp.conf{.sample,}
% cp /usr/local/pgpool/etc/pool_hba.conf{.sample,}
</pre>
<p>以上の設定で、/usr/local/pgpool/etc/pgpool.confがpgpool-IIの設定ファイルになる。</p>
<h3>PGPOOLの起動</h3>
<p>起動するには、</p>
<p>※pgpoolⅡ2.5では/va/run/pgpoolというディレクトリが必要</p>
<p>permission:postgres:postgres</p>
<p>postgres postgres 4096 11月 21 16:05 pgpool</p>
<pre class="brush: bash; auto-links: false;">

% pgpool -n &amp;amp;c
</pre>
<p>とコマンドを入力する。</p>
<h3>PGPOOLの停止</h3>
<pre class="brush: bash; auto-links: false;">

% pgpool -n stop
</pre>
<h3>PGPOOLの自動起動</h3>
<p>pgpoolの起動ですが、<br />
redhat系の場合は自動起動用のスクリプトが<br />
pgpoolのソールディレクトリの<br />
redhat/pgpool.initにあります。<br />
(/usr/local/src/pgpool-II-2.1/redhat/pgpool.init)</p>
<p>スクリプトの最初の方の変数を適宜環境に合せて書き換えて、</p>
<pre class="brush: bash; auto-links: false;">

vi /usr/local/src/pgpool-II-2.1/redhat/pgpool.init

PGPOOLENGINE=/usr/local/pgpool/bin
PGPOOLDAEMON=$PGPOOLENGINE/pgpool
PGPOOLCONF=/usr/local/pgpool/etc/pgpool.conf
PGPOOLPID=/tmp/pgpool.pid
PGPOOLLOG=/var/log/pgpool.log
</pre>
<p>/etc/init.d/pgpoolにコピーします。</p>
<pre class="brush: bash; auto-links: false;">

su -
cp /usr/local/src/pgpool-II-2.1/redhat/pgpool.init /etc/init.d/pgpool
</pre>
<p>これで</p>
<pre class="brush: bash; auto-links: false;">

/etc/init.d/pgpool start
</pre>
<p>で起動できます。</p>
<pre class="brush: bash; auto-links: false;">

su -
cp /usr/local/src/pgpool-II-2.1/redhat/pgpool.init /etc/init.d/pgpool
vi /etc/init.d/pgpool
chkconfig --add pgpool
chkconfig&nbsp; pgpool on

chkconfig --list pgpool

又は

ntsysv でチェックする
</pre>
<h3>PGPOOLの設定</h3>
<p>それでは、実際にレプリケーションを行ってみる。<br />
レプリケーションのために、pgpool.confに以下の項目を追加する。<br />
なお、ここでの例ではPostgreSQLサーバが<br />
localhostの5432ポートで動いているものとする。</p>
<pre class="brush: bash; auto-links: false;">

vi /usr/local/pgpool/etc/pgpool.conf

# Host name or IP address to listen on: &#039;*&#039; for all, &#039;&#039; for no TCP/IP
# connections
listen_addresses = &#039;*&#039;

# Port number for pgpool
port = 5439

# Port number for pgpool communication manager
pcp_port = 9898

# レプリケーションの設定

# Replication mode
replication_mode = true

# ロードバランスの設定

# Load balancing mode, i.e., all SELECTs are load balanced.
# This is ignored if replication_mode is false.
load_balance_mode = true

#set pgpool2 hostname
pgpool2_hostname = &#039;&#039;

# メインDB

# system DB info
system_db_hostname = &#039;localhost&#039;
system_db_port = 5432
system_db_dbname = &#039;pgpool&#039;
system_db_schema = &#039;pgpool_catalog&#039;
system_db_user = &#039;pgpool&#039;
system_db_password = &#039;&#039;

# backend_hostname, backend_port, backend_weight
# here are examples

#バックエンド１

backend_hostname0 = &#039;バックエンドDB１&#039;
backend_port0 = 5432
backend_weight0 = 1
#backend_data_directory0 = &#039;/data&#039;

#バックエンド２

backend_hostname1 = &#039;バックエンドDB２&#039;
backend_port1 = 5432
backend_weight1 = 1
#backend_data_directory1 = &#039;/data1&#039;
</pre>
<p>※メインDBのpostgres.confのPortは5432とする</p>
<p>設定ファイルの編集が完了したところでpgpoolを起動し、<br />
レプリケーションされているかどうかを確認する。</p>
<p>まずはpgpool-IIに接続し、データベース、テーブル、データ5件を作成する。</p>
<pre class="brush: bash; auto-links: false;">

% createdb -p 5439 replication (5439 番ポートへ接続)
% psql -p 5439 replication
replication=# CREATE TABLE rep (a INT);
replication=# INSERT INTO rep SELECT generate_series(1, 10);
</pre>
<p>次に直接メインDBとバックエンドDBに5432ポートに接続し、実際にデータが5件作成されているかどうかを確認する。</p>
<pre class="brush: bash; auto-links: false;">

メインDB

% for p in 5432 ; do
for&amp;gt; echo port: $p
for&amp;gt; psql -p $p -c &#039;select count(*) from rep&#039; replication
for&amp;gt; done
port: 5432
count
-------
5
(1 row)

バックエンドDB

port: 5432
count
-------
5
(1 row)
</pre>
<h3>PGPOOLのステータス確認</h3>
<pre class="brush: bash; auto-links: false;">

psql -p 5439 replication

show pool_status;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ststyle.net/weblog/archives/434/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
