7

postgresql 9.0 でストリーミング レプリケーションを実行しようとしています。リンクに記載されている手順に従っています: http://brandonkonkle.com/blog/2010/oct/20/postgres-9-streaming-replication-and-django-balanc/

postgresql でアーカイブ コマンドを実行しようとすると、無限に待機するように求める警告が表示されます。次の順序でコマンドを実行しています。

SELECT pg_start_backup('base_backup');

cd /var/lib/postgresql/9.0/
sudo tar -cjf ~/postgres-data.tar.bz2 main

SELECT pg_stop_backup();

このために、次の出力が得られます。

NOTICE:  pg_stop_backup cleanup done, waiting for required WAL segments to be archived
WARNING:  pg_stop_backup still waiting for all required WAL segments to be archived (60 seconds elapsed)
HINT:  Check that your archive_command is executing properly.  pg_stop_backup can be cancelled safely, but the database backup will not be usable without all the WAL segments.
WARNING:  pg_stop_backup still waiting for all required WAL segments to be archived (120 seconds elapsed)
HINT:  Check that your archive_command is executing properly.  pg_stop_backup can be cancelled safely, but the database backup will not be usable without all the WAL segments.

これはさらに続き、警告は終了しません。誰かがこの問題に直面した場合はお知らせください。

4

4 に答える 4

2

指定したリンクに記載されているように設定しましたarchive_commandか? 実際に xlog ファイルを安全な場所に正しくコピーしていますか? サーバーからの出力は、そうではなく、内部でバックログが蓄積されていることを示唆していますpg_xlog

サーバーをレプリカのマスターとして使用するために、サーバーでアーカイブを有効にする必要がないことを覚えているようです。に設定する必要があります。この設定を行うと、レプリカはマスターに接続して、従来の xlog アーカイブ プロセスとは別に xlog レコードをストリーミングできます。というわけで設定してみる。wal_levelhot_standbyarchive_mode=off

編集:リンクをより詳細に読むと、archive_modeを設定してベースバックアップを作成する必要があります。これは理にかなっています。そのため、ベース バックアップを適切に取得できるようにアーカイブ コマンドを修正するか、サーバーの停止中にベース バックアップを取得してください。

于 2011-01-24T01:04:46.800 に答える
1

9ページで新しいSRを使用したいだけの場合は、アーカイブをいじらないでください。私も最初は問題がありました。マスターをスレーブに複製するアーカイブなしの必要最低限​​のセットアップチュートリアルを作成しました:http://eggie5.com/15-setting-up-pg9-streaming-replication

于 2011-02-02T08:19:18.987 に答える
1

WAL アーカイブ ファイルが移動するフォルダの権限を確認してください。これは、データベースを所有するユーザーがそのフォルダーへの書き込み権限を持っていないため、そのフォルダーに WAL ファイルを書き込むことができないという問題である可能性があります。chmod を使用して、そのフォルダーのアクセス許可を変更してください。これで問題が解決する場合があります。

よろしく。

于 2012-08-30T08:24:45.790 に答える