web-dev-qa-db-ja.com

Postgresqlにレプリケーションを実装しようとする「不完全な起動パケット」ログメッセージを引き起こす問題を修正するにはどうすればよいですか?

Ubuntu 13.04とPostgreSQL 9.2を実行している2つのクラウドサーバーがあります。

私は主に このブログの投稿 を使用して、設定を支援しました。ただし、スレーブに初期データベースダンプを行うには、 この他のブログ投稿 で使用されているpg_start_backup/pg_stop_backup戦略を使用しています。私はdocsとpostgres wikiも読みました。解決できたいくつかの問題に遭遇しましたが、この悲惨な「データベースの起動中」の失敗を乗り越えることはできません。

次の状況かどうかはわかりません。

cp: cannot stat /var/lib/postgresql/9.2/archive/00000001000000000000003A':
No such file or directory

consistent recover state reachedの後は正常であるか、問題の最初の兆候です。私がthe database is starting upincomplete startup packetで行った検索は、何かが空にTCPパケットをスレーブに送信していることを示しています。スレーブについて知っているのは、マスターなので、なぜそれが空のパケットを送信しているのかわかりません...

誰かがこれを使って作業し、何がうまくいかないのか考えていますか?

スレーブのpostgresログは次のようになります。

2013-08-26 13:01:38 CDT LOG:  entering standby mode
2013-08-26 13:01:38 CDT LOG:  restored log file "000000010000000000000039" from archive
2013-08-26 13:01:38 CDT LOG:  incomplete startup packet
2013-08-26 13:01:39 CDT LOG:  redo starts at 0/39000020
2013-08-26 13:01:39 CDT LOG:  consistent recovery state reached at 0/390000E0
cp: cannot stat '/var/lib/postgresql/9.2/archive/00000001000000000000003A': No such file or directory
2013-08-26 13:01:39 CDT LOG:  streaming replication successfully connected to primary
2013-08-26 13:01:39 CDT FATAL:  the database system is starting up
2013-08-26 13:01:39 CDT FATAL:  the database system is starting up
2013-08-26 13:01:40 CDT FATAL:  the database system is starting up
2013-08-26 13:01:40 CDT FATAL:  the database system is starting up
2013-08-26 13:01:41 CDT FATAL:  the database system is starting up
2013-08-26 13:01:42 CDT FATAL:  the database system is starting up
2013-08-26 13:01:42 CDT FATAL:  the database system is starting up
2013-08-26 13:01:43 CDT FATAL:  the database system is starting up
2013-08-26 13:01:43 CDT FATAL:  the database system is starting up
2013-08-26 13:01:44 CDT FATAL:  the database system is starting up
2013-08-26 13:01:44 CDT FATAL:  the database system is starting up
2013-08-26 13:01:44 CDT LOG:  incomplete startup packet
2013-08-26 13:03:27 CDT FATAL:  the database system is starting up
2013-08-26 13:03:27 CDT FATAL:  the database system is starting up
2013-08-26 13:03:30 CDT FATAL:  the database system is starting up
2013-08-26 13:03:30 CDT FATAL:  the database system is starting up

ありがとう!ブラッド

4
colour me brad

pg_stop_backup以降の最後のWALアーカイブをコピーできません。この方法を使用する場合は、WALアーカイブをセットアップするか、WALを手動でコピーする必要があります。

9.2以降では、pg_basebackup --xlog-method=streamを使用して1回限りのコピーを行う方がはるかに簡単です。これにより、トランザクションログがレプリケーションプロトコルを介してコピーされ、ベースバックアップ自体がコピーされ、pg_start_backupおよびpg_stop_backupが自動的に処理されます。

the pg_basebackup manual を参照してください。

タイトルに記載されている「不完全な起動パケット」エラーはおそらく無関係であり、sslmode=preferを持つクライアントから非SSL対応サーバーへのSSL接続の試行が原因で発生します。

1
Craig Ringer