これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド pg_receivexlog です。
プログラム:
NAME
pg_receivexlog - PostgreSQL サーバーからトランザクション ログをストリーミングします
SYNOPSIS
pg_receivexlog [オプション...]
DESCRIPTION
pg_receivexlog は、実行中の PostgreSQL クラスターからトランザクション ログをストリーミングするために使用されます。
トランザクション ログは、ストリーミング レプリケーション プロトコルを使用してストリーミングされ、次のように書き込まれます。
ファイルのローカル ディレクトリにコピーします。 このディレクトリは、次のアーカイブ場所として使用できます。
ポイントインタイムリカバリを使用してリストアを実行する (セクション24.3「継続的なアーカイブと
ポイントインタイムリカバリ (PITR)」(ドキュメントを参照)。
pg_receivexlog は、トランザクション ログが生成されるときにリアルタイムでトランザクション ログをストリーミングします。
archive_command のようにセグメントが完了するのを待ちません。 このため
そのため、pg_receivexlog を使用する場合は、archive_timeout を設定する必要はありません。
PostgreSQL スタンバイ サーバーの WAL レシーバーとは異なり、pg_receivexlog はデフォルトでフラッシュします。
WAL ファイルが閉じられている場合のみ、WAL データ。 オプション --同期 に指定する必要があります
WAL データをリアルタイムでフラッシュします。
トランザクション ログは通常の PostgreSQL 接続経由でストリーミングされ、
レプリケーションプロトコル。 接続はスーパーユーザーまたは次の権限を持つユーザーで行う必要があります。
REPLICATION 権限 (ドキュメントのセクション20.2「ロール属性」を参照)、および
pg_hba.conf はレプリケーション接続を許可する必要があります。 サーバーも構成する必要があります
max_wal_senders を十分に高く設定して、少なくとも XNUMX つのセッションを利用できるようにします。
ストリーム。
接続が失われた場合、または最初に接続を確立できない場合、致命的ではない
エラーが発生した場合、pg_receivexlog は接続を無期限に再試行し、次のようにストリーミングを再確立します。
できるだけ早く。 この動作を回避するには、-n パラメータを使用します。
OPTIONS
-D ディレクトリにジョブを開始します。
-ディレクトリ=ディレクトリにジョブを開始します。
出力を書き込むディレクトリ。
このパラメーターは必須です。
--存在しない場合
次の場合にエラーを出さないでください --スロットの作成 が指定されており、指定されたスロット
名前はすでに存在します。
-n
--ループなし
接続エラーをループしないでください。 代わりに、エラーを出してすぐに終了してください。
-s インターバル
--status-interval =インターバル
サーバーに返送されるステータスパケット間の秒数を指定します。 この
サーバーからの進行状況を簡単に監視できます。 値がゼロの場合、
定期的なステータスは完全に更新されますが、更新は次の場合でも送信されます
タイムアウト切断を回避するために、サーバーによって要求されました。 デフォルト値は10秒です。
-S スロット名
--スロット=スロット名
既存のレプリケーション スロットを使用するには pg_receivexlog が必要です (セクション 25.2.6 を参照)
ドキュメントの「レプリケーション スロット」)。 このオプションを使用すると、pg_receivexlog
フラッシュ位置をサーバーに報告し、各セグメントがいつ完了したかを示します。
ディスクに同期されているため、そうでない場合はサーバーがそのセグメントを削除できます。
必要です。
pg_receivexlog のレプリケーション クライアントがサーバー上で
同期スタンバイの場合、レプリケーション スロットを使用してフラッシュ位置をレポートします。
ただし、WAL ファイルが閉じられている場合に限ります。 したがって、その構成は、
プライマリ上のトランザクションが長時間待機し、事実上機能しなくなる
満足です。 オプション --synchronous (以下を参照) を指定する必要があります。
これを正しく機能させてください。
--同期
WAL データを受信したらすぐにディスクにフラッシュします。 ステータスも送信
--status-interval に関係なく、フラッシュ直後にパケットがサーバーに返されます。
このオプションは、pg_receivexlog のレプリケーション クライアントが
タイムリーなフィードバックが確実に行われるように、サーバー上で同期スタンバイとして構成されています。
サーバーに送信されます。
-v
-詳細
詳細モードを有効にします。
次のコマンドラインオプションは、データベース接続パラメータを制御します。
-d 構成
--dbname =構成
サーバーへの接続に使用するパラメーターを接続文字列として指定します。 見る
詳細については、ドキュメントのセクション31.1.1「接続文字列」を参照してください。
このオプションは、他のクライアントアプリケーションとの一貫性を保つために--dbnameと呼ばれますが、
pg_receivexlog はクラスター内の特定のデータベースに接続しないため、
接続文字列内のデータベース名は無視されます。
-h host
--host =host
サーバーが実行されているマシンのホスト名を指定します。 値が
スラッシュで始まり、Unixドメインソケットのディレクトリとして使用されます。 NS
デフォルトはから取得されます ゴースト 環境変数(設定されている場合)、それ以外の場合はUnixドメイン
ソケット接続が試行されます。
-p ポート
--port =ポート
サーバーが接続されているTCPポートまたはローカルUnixドメインソケットファイル拡張子を指定します
接続をリッスンしています。 デフォルトは PGポート 環境変数(設定されている場合)、または
コンパイルされたデフォルト。
-U ユーザ名
--username =ユーザ名
接続するユーザー名。
-w
-パスワードなし
パスワードプロンプトは絶対に発行しないでください。 サーバーがパスワード認証を必要とし、
パスワードは、.pgpassファイル、接続などの他の手段では利用できません。
試行は失敗します。 このオプションは、ユーザーがいないバッチジョブやスクリプトで役立ちます。
パスワードを入力するために存在します。
-W
- パスワード
データベースに接続する前に、pg_receivexlog にパスワードの入力を強制します。
pg_receivexlog が自動的にプロンプトを表示するため、このオプションは決して必須ではありません。
サーバーがパスワード認証を要求する場合は、password。 ただし、pg_receivexlog は
サーバーがパスワードを必要としていることを確認するために接続の試みを無駄にします。 ある場合には
入力する価値があります -W 余分な接続の試行を回避するため。
pg_receivexlog は、物理的な制御を行うために、次の XNUMX つのアクションのいずれかを実行できます。
レプリケーションスロット:
--スロットの作成
で指定された名前で新しい物理レプリケーション スロットを作成します。 - スロット、終了します。
--ドロップスロット
で指定された名前のレプリケーション スロットを削除します。 - スロット、終了します。
他のオプションも利用できます:
-V
- バージョン
pg_receivexlog のバージョンを出力して終了します。
-?
- 助けて
pg_receivexlog コマンドライン引数に関するヘルプを表示して終了します。
ENVIRONMENT
このユーティリティは、他のほとんどのPostgreSQLユーティリティと同様に、環境変数を使用します
libpqでサポートされています(ドキュメントのセクション31.14「環境変数」を参照)。
注意事項
メインの WAL バックアップ方法として archive_command の代わりに pg_receivexlog を使用する場合、次のようになります。
レプリケーション スロットを使用することを強くお勧めします。 それ以外の場合、サーバーは自由にリサイクルまたは
トランザクション ログ ファイルには何も含まれていないため、バックアップする前に削除してください。
archive_command またはレプリケーション スロットからの、WAL の距離に関する情報
ストリームがアーカイブされました。 ただし、レプリケーション スロットがサーバーのスロットを埋めることになることに注意してください。
受信側が WAL データのフェッチに追いつかない場合のディスク容量。
例
mydbserver のサーバーからトランザクション ログをストリーミングし、ローカル ファイルに保存するには
ディレクトリ /usr/local/pgsql/archive:
$ pg_receivexlog -h マイデータベースサーバー -D /usr/local/pgsql/アーカイブ
onworks.net サービスを使用してオンラインで pg_receivexlog を使用する