プライマリ サーバー
# postgresql.conf
wal_level = hot_standby
archive_mode = on
archive_timeout = 10
archive_command = 'test ! -f /archive/%f && cp %p /archive/%f'
待機サーバー
hot_standby = on
/archive/*
プライマリ サーバーをスタンバイ サーバーにコピーしまし$PGDATA/pg_xlog
たが、何も起こりません。スタンバイ サーバーを再起動すると、サーバー ログから次のエラー メッセージが表示されました。
2016-11-21 17:56:09 CST [17762-3] LOG: invalid primary checkpoint record
2016-11-21 17:56:09 CST [17762-4] LOG: record with zero length at 0/6000100
2016-11-21 17:56:09 CST [17762-5] LOG: invalid secondary checkpoint record
2016-11-21 17:56:09 CST [17762-6] PANIC: could not locate a valid checkpoint record
2016-11-21 17:56:09 CST [17761-1] LOG: startup process (PID 17762) was terminated by signal 6: Aborted
2016-11-21 17:56:09 CST [17761-2] LOG: aborting startup due to startup process failure
質問:
/archive/*
プライマリ サーバーをスタンバイ サーバーにコピーするだけで、データをスタンバイ サーバーに同期するだけで十分$PGDATA/pg_xlog
ですか?ホット スタンバイ サーバーで WAL ファイルの復元はいつ、どのようにトリガーされますか? スタンバイサーバーは定期的に
$PGDATA/pg_xlog
ディレクトリをチェックして、新しい WAL ファイルを探しますか? または、手動でトリガーする必要がありますか?ストリーミング レプリケーションではなく、ホット スタンバイについて話しています。したがって、構成する必要はないと思います。私は正しいですか?
conninfo
hot_standby = on
サーバーを構成して再起動した後も、INSERT
エラーなしで実行できます。本当に読み取り専用にするように構成するにはどうすればよいですか?