[pgcluster: 531] FreeBSD 5.2.1 + PGCluster 1.0.7 createdb 失敗

me477494 @ members.interq.or.jp me477494 @ members.interq.or.jp
2004年 9月 12日 (日) 00:08:38 JST


幾田と申します。
始めまして。

実は、pgcluster をインストールしたのですが
マスタDB上で createdb を実行すると
下記のエラーメッセージが出力されてしまい
困っております。

=====================================================================
./createdb -E EUC_JP -U postgres xxxxx
ERROR:  CREATE DATABASE: source database "template1" is being accessed by other users
ERROR:  CREATE DATABASE: source database "template1" is being accessed by other users
createdb: database creation failed
=====================================================================

本メーリングリスト過去ログの
2004年6月頃の黄川田様のメールログが
同様の症状だとは思うのですが…
(http://ml.postgresql.jp/pipermail/pgcluster/2004-June/000322.html)

見落としかもしれませんが
解決策が記載されておりませんでした。

誠に恐縮ではございますが
お手隙の際で構いませんので
ご解答を宜しくお願い申し上げます。

具体的な環境は下記の通りです。

▼PGCluster
下記URLから、1.0.7 を取得しました。
http://www.csra.co.jp/~mitani/jpug/pgcluster/stable/pgcluster-1.0.7.tar.gz

▼サーバ構成
◎ロードバランサ
OS      :FreeBSD 5.2.1
IP      :192.168.0.21
HostName:lb1

◎クラスタ1
OS      :FreeBSD 5.2.1
IP      :192.168.0.31
HostName:cl1

◎クラスタ2
OS      :FreeBSD 5.2.1
IP      :192.168.0.32
HostName:cl2

◎クラスタ3
OS      :FreeBSD 5.2.1
IP      :192.168.0.33
HostName:cl3

◎レプリケーション
OS      :FreeBSD 5.2.1
IP      :192.168.0.41
HostName:rp1

▼設定ファイル
#============================================================
#          Load Balance Server configuration file
#-------------------------------------------------------------
# file: pglb.conf
#============================================================
<Cluster_Server_Info>
    <Host_Name> cl1 </Host_Name>
    <Port> 5432 </Port>
    <Max_Connect> 125 </Max_Connect>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name> cl2 </Host_Name>
    <Port> 5432 </Port>
    <Max_Connect> 125 </Max_Connect>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name> cl3 </Host_Name>
    <Port> 5432 </Port>
    <Max_Connect> 125 </Max_Connect>
</Cluster_Server_Info>

<Backend_Socket_Dir>    /tmp     </Backend_Socket_Dir>
<Receive_Port>          5432     </Receive_Port>
<Recovery_Port>         7780     </Recovery_Port>
<Max_Cluster_Num>        350     </Max_Cluster_Num>
<Use_Connection_Pooling>  no     </Use_Connection_Pooling>
#============================================================

#============================================================
#          Cluster DB Server configuration file
#------------------------------------------------------------
# file: cluster.conf
#============================================================
<Replicate_Server_Info>
        <Host_Name> rp1 </Host_Name>
        <Port> 8777 </Port>
        <Recovery_Port> 7778 </Recovery_Port>
</Replicate_Server_Info>

<Recovery_Port> 7779 </Recovery_Port>
<Rsync_Path> /usr/local/bin/rsync </Rsync_Path>
<Rsync_Option> ssh -1 </Rsync_Option>
<When_Stand_Alone> read_only  </When_Stand_Alone>
#============================================================

#============================================================
# pg_hba.conf
#============================================================
# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
local   all         all                                             trust
host    all         all         127.0.0.1         255.255.255.255   trust
host    all         all         192.168.0.0       255.255.255.0     trust
#============================================================

#============================================================
# postgresql.conf
#============================================================
# デフォルトの設定から変更した個所だけ抜粋しました
tcpip_socket = true
max_connections = 128
shared_buffers = 2048
sort_mem = 2048
wal_sync_method = open_sync
#============================================================

#=============================================================
#  PGReplicate configuration file
#-------------------------------------------------------------
# file: pgreplicate.conf
#=============================================================
<Cluster_Server_Info>
    <Host_Name> cl1 </Host_Name>
    <Port> 5432 </Port>
    <Recovery_Port> 7779 </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name> cl2 </Host_Name>
    <Port> 5432 </Port>
    <Recovery_Port> 7779 </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name> cl3 </Host_Name>
    <Port> 5432 </Port>
    <Recovery_Port> 7779 </Recovery_Port>
</Cluster_Server_Info>

<LoadBalance_Server_Info>
        <Host_Name> lb1 </Host_Name>
        <Recovery_Port> 7780 </Recovery_Port>
</LoadBalance_Server_Info>

<Replication_Port> 8777 </Replication_Port>
<Recovery_Port> 7778 </Recovery_Port>
#=============================================================

▼その他
◎起動手順
各サーバに postgres ユーザを作成し
下記、環境変数を設定しております。

setenv PG /usr/local/pgsql
setenv PGPORT 5432
setenv PGLIB $PG/lib
setenv PGDATA $PG/data
setenv LD_LIBRARY_PATH $PG/lib
setenv PATH $PG/bin:"$PATH"
setenv PGCLIENTENCODING SJIS

1.レプリケーションサーバを起動
postgres @ rp1>/usr/local/pgsql/bin/pgreplicate
(設定ファイルを $PGDATA 配下に配置しておりますので
 -D オプションは付けておりません)

2.クラスタサーバ起動
postgres @ cl1>/usr/local/pgsql/bin/pg_ctl start -o "-i"
postgres @ cl2>/usr/local/pgsql/bin/pg_ctl start -o "-i"
postgres @ cl3>/usr/local/pgsql/bin/pg_ctl start -o "-i"

3.ロードバランサ起動
postgres @ lb1>/usr/local/pgsql/bin/pglb

◎rsync
下記のPATHにインストールされております。
/usr/local/bin/rsync

postgres ユーザ利用時に限り
各サーバから各サーバへパスフレーズの入力無しに
ログインする事ができるよう設定しております。
(rsync コマンドを実際に実行する事で確認を行いました)

◎ログファイル
============================================================
# pgreplicate.sts
============================================================
Sat Sep 11 17:15:20 2004  port(5432) host:cl1 start use
Sat Sep 11 17:15:20 2004  port(5432) host:cl2 start use
Sat Sep 11 17:15:20 2004  port(5432) host:cl3 start use
Sat Sep 11 17:15:20 2004  cascade(rp1) port(8777) start use
Sat Sep 11 17:15:20 2004  cascade(rp1) port(8777) become top

デバックモードでの確認は
まだ行っておりません。

以上です。
他に必要な情報がございましたら
お教え頂けますでしょうか?

では、お手数で誠に申し訳ございませんが
宜しくお願い申し上げます。




pgcluster メーリングリストの案内