[pgsql-jp: 31740] Re: クラスタサーバが起動出来ない (pgcluster-1.0.5)

八田 s-hatta @ exl.ne.jp
2003年 12月 9日 (火) 21:25:23 JST


八田です。

中間報告です。
環境
 OS Redhat9.0
     ・PostgreSQL関連はインストールしない。
     ・resync関係はデフォルトインストール。
 pgcluster-1.0.5
     http://www.csra.co.jp/~mitani/jpug/pgcluster/rc2/index.html
     のインストール手順、設定でセットアップ。
 rsync
     pgcluster-1.0.5同様に(rsyncの設定方法)の「3.1 opensshの設定」
     「4. テスト」を行い正常に行えた!

結果:同期できません。

#ホスト名は加工しています。

「cluster.conf」

<Replicate_Server_Info>
        <Host_Name> Csv.***.jp </Host_Name>
        <Port> 8777 </Port>
        <Recovery_Port> 7778 </Recovery_Port>
</Replicate_Server_Info>

「postgresql.conf」

tcpip_socket = true

「pg_hba.conf」
host    all         all         192.168.3.0       255.255.255.0     trust
                ^^^^^^


「pgreplicate.conf」

<Cluster_Server_Info>
    <Host_Name>   Asv.***.jp  </Host_Name>
    <Port>        5432                </Port>
    <Recovery_Port>       7779        </Recovery_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>   Bsv.***.jp </Host_Name>
    <Port>        5432                </Port>
    <Recovery_Port>       7779        </Recovery_Port>
</Cluster_Server_Info>


マスターDB起動ログ
[postgres @ Asv bin]$ postmaster -i -D /usr/local/pgsql/data
LOG:  database system was shut down at 2003-12-09 20:40:47 JST
LOG:  checkpoint record is at 0/807A8C
LOG:  redo record is at 0/807A8C; undo record is at 0/0; shutdown TRUE
LOG:  next transaction id: 490; next oid: 16977
LOG:  database system is ready
LOG:  server process (pid 24692) was terminated by signal 11
LOG:  terminating any other active server processes
LOG:  all server processes terminated; reinitializing shared memory and semaphores
LOG:  database system was interrupted at 2003-12-09 20:44:57 JST
LOG:  checkpoint record is at 0/807A8C
LOG:  redo record is at 0/807A8C; undo record is at 0/0; shutdown TRUE
LOG:  next transaction id: 490; next oid: 16977
LOG:  database system was not properly shut down; automatic recovery in progress
LOG:  ReadRecord: record with zero length at 0/807ACC
LOG:  redo is not required
LOG:  database system is ready


スレーブDB起動ログ
[postgres @ Bsv bin]$ ./postmaster -i  -D /usr/local/pgsql/data
LOG:  database system was shut down at 2003-12-09 20:41:28 JST
LOG:  checkpoint record is at 0/8018FC
LOG:  redo record is at 0/8018FC; undo record is at 0/0; shutdown TRUE
LOG:  next transaction id: 501; next oid: 16976
LOG:  database system is ready
LOG:  server process (pid 30116) was terminated by signal 11
LOG:  terminating any other active server processes
LOG:  all server processes terminated; reinitializing shared memory and semaphores
LOG:  database system was interrupted at 2003-12-09 20:45:01 JST
LOG:  checkpoint record is at 0/8018FC
LOG:  redo record is at 0/8018FC; undo record is at 0/0; shutdown TRUE
LOG:  next transaction id: 501; next oid: 16976
LOG:  database system was not properly shut down; automatic recovery in progress
LOG:  ReadRecord: record with zero length at 0/80193C
LOG:  redo is not required
LOG:  database system is ready
LOG:  smart shutdown request
LOG:  shutting down
LOG:  database system is shut down


レプリケーションサーバ起動ログ
[root @ Csv bin]# pgreplicate -vn
DEBUG(init_server_tbl): /usr/local/pgreplicate.log open ok

DEBUG(init_server_tbl): PGR_Get_Conf_Data ok
DEBUG(init_server_tbl): LoadBalanceTbl allocate ok
DEBUG(init_server_tbl): Conf data read ok
DEBUG(init_server_tbl): HostTbl shmget ok
DEBUG(init_server_tbl): HostTbl shmat ok
DEBUG(PGRrecovery_main): PGRrecovery_main bind port 7778
DEBUG(PGRrecovery_main): wait recovery

DEBUG(replicate_main): replicate mail 8777 port bind

DEBUG(replicate_main): replicate mail 8777 port bind OK

DEBUG(replicate_main): wait replicate



テーブルを作ってみる
[postgres @ Asv bin]$ createdb 123
CREATE DATABASE
[postgres @ Asv bin]$ psql -l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+-----------
 123       | postgres | SQL_ASCII
 template0 | postgres | SQL_ASCII
 template1 | postgres | SQL_ASCII
(3 rows)


スレーブで確認してみると、、、、
[postgres @ Bsv bin]$ psql -l
psql: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.


リカバリーで起動してみる
[postgres @ Bsv bin]$ ./postmaster -i  -R -D /usr/local/pgsql/data
./postmaster: recovery failed

スレーブ側でエラーが発生し、以降二度と正常起動しなくなる。



木下さん>
ちなみに、postgresユーザでpgreplicateを起動するとコアダンプ
はきました!
参考になるかな〜!

OSから入れなおし、マスター、スレーブを入れ替えて
も同じでした!
*レプリケーションサーバが異常を検知してマスターDB
 が読取専用モードに代わりました(障害感知テストOKです)

非常に長くなって申し訳ないです。

-- 
hatta <s-hatta @ exl.ne.jp>





pgsql-jp メーリングリストの案内