すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:WALログ管理機能の使用

最終更新日:Sep 20, 2024

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ログは自動的に削除されます。

  • 削除されたレプリケーションスロットは再利用できません。

手順

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。

  2. 表示されるページの左側のナビゲーションウィンドウで、ログ管理 をクリックします。

  3. 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によって計算されます。

    計算方法

    SELECT pg_size_pretty(
      pg_wal_lsn_diff(
        pg_current_wal_insert_lsn(), 
        restart_lsn)
    	) AS wal_delay 
    FROM pg_replication_slots;

    レプリケーションスロットに対して蓄積されるWALログの数。 単位:MB。

    論理サブスクリプションの遅延

    フィールドはマッピングされません。

    パラメータはAliPGによって計算されます。

    計算方法

    SELECT *, CAST(extract(epoch FROM replay_lag) AS BIGINT) 
    AS sub_replay_lag 
    FROM pg_stat_replication;

    現在のレプリケーションスロットに対応するサブスクライバーノード上の論理サブスクリプションのレイテンシ。 単位は秒です。

    アクティブかどうか

    active

    レプリケーションスロットを使用するかどうかを指定します。 有効な値:

    • INACTIVE

    • アクティブ

  4. オプションです。 アクティブかどうか 列に [INACTIVE] が表示されているレプリケーションスロットを管理します。 WALログはレプリケーションスロットに対して継続的に蓄積されるため、非アクティブなレプリケーションスロットをできるだけ早く管理する必要があります。

    • レプリケーションスロットが使用中の場合は、状態をACTIVEに変更します。

    • レプリケーションスロットが使用されていない場合は、[操作] 列の [削除] をクリックします。

説明

スロットの詳細とスロットの作成方法については、以下のトピックを参照してください。

関連する API

  • DescribeSlots: インスタンスのすべてのレプリケーションスロットに関する情報を照会します。

  • DeleteSlot: インスタンスからレプリケーションスロットを削除します。