ApsaraDB RDS for PostgreSQLでは、ApsaraDB RDSコンソールで、またはAPI操作を呼び出してレプリケーションスロットを表示および削除できます。 これにより、WALログを管理できます。 WALは、先読みロギングの略です。
背景情報
レプリケーションスロットは、PostgreSQLのメカニズムです。 ストリーミングレプリケーションで再生できる変更のストリームを保持します。 レプリケーションスロットを使用すると、ストリーミングレプリケーションでのデータの損失や複製を防ぎ、データレプリケーションの効率と信頼性を向上させることができます。
多数の非アクティブなレプリケーションスロットが存在し、最も早い機会に削除されない場合、WALログは継続的に蓄積され、多数のストレージリソースを消費します。 蓄積されたWALログはディスク容量を使い果たし、RDSインスタンスがロックされる可能性があります。 RDSインスタンスがロックされている場合、RDSインスタンスは書き込みリクエストを処理できず、ビジネスに影響します。
ApsaraDB RDS for PostgreSQLでは、ApsaraDB RDSコンソールで、またはAPI操作を呼び出して、非アクティブなレプリケーションスロットを削除できます。 これにより、WALログが大量のディスク容量を占有するのを防ぎます。
使用上の注意
アクティブなレプリケーションスロットは削除できません。
非アクティブなレプリケーションスロットが最も早い機会に削除されない場合、WALログは継続的に蓄積され、大量のストレージリソースを消費します。 蓄積されたWALログがディスク容量を使い果たすと、RDSインスタンスはロックされ、書き込みリクエストを処理できなくなり、ビジネスに影響を与えます。
影響
非アクティブなレプリケーションスロットが削除されると、次の影響が発生します。
RDSインスタンスの非アクティブなレプリケーションスロットのために削除できないWALログは自動的に削除されます。
削除されたレプリケーションスロットは再利用できません。
手順
[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
表示されるページの左側のナビゲーションウィンドウで、ログ管理 をクリックします。
WAL ログ管理 タブで、すべてのレプリケーションスロットに関する情報を表示します。
レプリケーションスロットに関する情報は、PostgreSQLの
pg_replication_slots
テーブルのフィールドをマップします。 次の表に、マッピングについて説明します。パラメーター
pg_replication_slotsテーブルのフィールド
説明
スロット名
slot_name
レプリケーションスロットの名前。
スロットタイプ
slot_type
レプリケーションスロットのタイプ。 有効な値:
物理的
論理
プラグイン
プラグイン
デフォルトでは、ApsaraDB RDS for PostgreSQLは次の拡張機能をサポートしています。
test_decoding
pgoutput
wal2json
一時スロット(temporary)
一時的
レプリケーションスロットが一時スロットかどうかを指定します。 一時スロットは、現在のセッション中にのみ存在し、セッションが終了すると自動的に削除される特別なタイプのスロットです。
true: 一時スロット
false: 永久スロット
データベース名
データベース
レプリケーションスロットが存在するデータベース。
Wal の蓄積量
フィールドはマッピングされません。
パラメータはAliPGによって計算されます。
レプリケーションスロットに対して蓄積されるWALログの数。 単位:MB。
論理サブスクリプションの遅延
フィールドはマッピングされません。
パラメータはAliPGによって計算されます。
現在のレプリケーションスロットに対応するサブスクライバーノード上の論理サブスクリプションのレイテンシ。 単位は秒です。
アクティブかどうか
active
レプリケーションスロットを使用するかどうかを指定します。 有効な値:
INACTIVE
アクティブ
オプションです。 アクティブかどうか 列に [INACTIVE] が表示されているレプリケーションスロットを管理します。 WALログはレプリケーションスロットに対して継続的に蓄積されるため、非アクティブなレプリケーションスロットをできるだけ早く管理する必要があります。
レプリケーションスロットが使用中の場合は、状態をACTIVEに変更します。
レプリケーションスロットが使用されていない場合は、[操作] 列の [削除] をクリックします。
スロットの詳細とスロットの作成方法については、以下のトピックを参照してください。
関連する API
DescribeSlots: インスタンスのすべてのレプリケーションスロットに関する情報を照会します。
DeleteSlot: インスタンスからレプリケーションスロットを削除します。