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

ApsaraDB RDS:ApsaraDB RDS for PostgreSQL におけるデータアーカイブ

最終更新日:Mar 29, 2026

データセットが増大するにつれて、アクセス頻度が極めて低い履歴レコード(コールドデータ)の保存により、Enterprise SSD(ESSD)のストレージコストが上昇します。データアーカイブ機能では、コールドテーブルおよびコールドインデックスを ESSD から Object Storage Service(OSS)バケットへ移動でき、パフォーマンスレベル 1(PL1)ESSD と比較してストレージコストを最大 80 % 削減できます。アーカイブされたデータは、読み取り専用インスタンス上でクエリ実行が可能です。

重要

OSS へのデータアーカイブ後、アーカイブ済みテーブルに対するクエリは読み取り専用インスタンスでのみサポートされます。本機能を有効化する前に、アーカイブ戦略を適切に計画してください。

仕組み

データアーカイブを有効化すると、RDS は以下の 2 つのストレージレイヤーを作成します:

レイヤー表領域ストレージ用途
/data ディレクトリpg_default一般 ESSDアクティブで、頻繁にアクセスされるデータ
/cold-data ディレクトリrds_ossOSS バケットコールドで、アクセス頻度が低いデータ
image

ALTER TABLE および ALTER INDEX の DDL 文を使用して、各レイヤー間でデータを移動します。標準テーブルおよび子パーティションテーブルの両方がサポートされます。テーブルデータとインデックスデータは、転送時に個別に処理されます。

ワークフローの概要

  1. 前提条件の確認 — インスタンスが、バージョン、エディション、およびストレージ要件を満たしていることを確認します。

  2. VACUUM の実行 — アーカイブ前にターゲットテーブルをクリーンアップし、OSS 上での autovacuum オーバーヘッドを防止します。

  3. データアーカイブの有効化 — ApsaraDB RDS 購入ページまたはインスタンス詳細ページから本機能を有効化します。

  4. テーブルおよびインデックスのアーカイブALTER TABLE および ALTER INDEX を実行し、コールドデータを rds_oss 表領域へ移動します。

  5. アーカイブ済みデータのクエリ実行 — 読み取り専用インスタンスを使用して、アーカイブ済みテーブルをクエリします。

  6. アーカイブ済みデータの表示 — 「コールドストレージ管理」ページで、アーカイブ対象のデータベースを監視します。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • インスタンスが PostgreSQL 12 以降 を実行していること

  • マイナーエンジンバージョンが 20240530 以降(PostgreSQL 15 の場合、20240229 以降 で十分)であること(バージョン更新については、「マイナーエンジンバージョンの更新」をご参照ください)

  • インスタンスが RDS Basic Edition または RDS High-availability Edition を実行していること

  • インスタンスが standard または YiTian のプロダクトタイプを使用していること

  • このインスタンスは、汎用ESSD をストレージタイプとして使用しています(インスタンスでESSDを使用している場合は、最初にストレージタイプを汎用ESSDに変更する必要があります)

  • 課金方法が サブスクリプション または 従量課金 であること

  • インスタンスの CPU コア数が 8 コア以上 であること

  • インスタンスが韓国(ソウル)、UAE(ドバイ)、またはイギリス(ロンドン)リージョンに配置されていないこと

データアーカイブの有効化

データアーカイブは、新規インスタンス作成時、または既存の一般 ESSD を使用するインスタンスに対して有効化できます。

ApsaraDB RDS 購入ページ(新規インスタンス)

  1. ApsaraDB RDS 購入ページ に移動します。

  2. ストレージタイプ一般 ESSD に設定します。構成 セクションで、データアーカイブ を有効化します。

image

インスタンス詳細ページ(既存のインスタンス)

  1. ApsaraDB RDS コンソールにログインし、「インスタンス」ページに移動します。上部ナビゲーションバーで、ご利用のインスタンスのリージョンを選択します。該当インスタンスを見つけ、その ID をクリックします。

  2. インスタンス詳細ページで、一般 ESSD の設定基本情報 セクションからクリックします。ダイアログボックス内の データアーカイブ カードで、データアーカイブ を有効化します。

image
重要

データアーカイブの有効化により、約 30 秒間の一時的な切断が発生します。非ピーク時間帯に実行し、アプリケーションが自動再接続を実行できるよう設定されていることを確認してください。

データのアーカイブおよび取得

テーブルをアーカイブする前に、VACUUM を実行してクリーンアップを行ってください。OSS のストレージパフォーマンスは ESSD と大きく異なり、OSS 表領域における autovacuum の効率は低くなります。アーカイブ前にすべてのページで all_visible および all_frozen フラグを設定することで、アーカイブ済み表領域に対する autovacuum の実行を防止できます。

ステップ 1:対象テーブルに対する VACUUM の実行

VACUUM (FREEZE) table_name;

VERBOSE オプションを使用すると、クリーンアップの進行状況を表示し、完全なクリーンアップが完了したことを確認できます:

VACUUM (FREEZE, INDEX_CLEANUP on) table_name;

PostgreSQL バージョンごとの追加パラメーター:

PostgreSQL バージョン追加パラメーター目的
14 以降PROCESS_TOASTTOAST テーブルのクリーンアップ
16 以降PROCESS_MAINプライマリテーブルのクリーンアップ
説明

インスタンスに長時間トランザクションまたはレプリケーションスロットが存在する場合、特定のトランザクション ID を保持する必要があるため、完全なクリーンアップが不可能になることがあります。

VACUUM の詳細については、「VACUUM」をご参照ください。

ステップ 2:OSS へのデータ移動(アーカイブ)

VACUUM の実行が完了したら、テーブルおよびそのインデックスを rds_oss 表領域へ移動します:

-- テーブルをアーカイブ
ALTER TABLE $tableName SET tablespace rds_oss;

-- インデックスをアーカイブ
ALTER INDEX $indexName SET tablespace rds_oss;

ステップ 3:OSS からのデータ取得(アンアーカイブ)

データを ESSD ストレージへ戻すには、以下を実行します:

-- テーブルを取得
ALTER TABLE $tableName SET tablespace pg_default;

-- インデックスを取得
ALTER INDEX $indexName SET tablespace pg_default;

アーカイブ済みデータのクエリ実行

アーカイブ済みデータは、読み取り専用インスタンスでのみアクセス可能です。読み取り専用インスタンスに接続し、通常通りクエリを実行します。

アーカイブ済みデータの表示

  1. インスタンス ページに移動します。上部ナビゲーションバーで、ご利用のインスタンスのリージョンを選択します。該当インスタンスを見つけ、その ID をクリックします。

  2. 左側ナビゲーションウィンドウで、コールドストレージ管理 をクリックします。

  3. アーカイブレイヤー設定 セクションで、データアーカイブが有効化されているデータベースを確認します。

4823052a00d5487a3011f417893cf7eb

データアーカイブの無効化

  1. インスタンス ページに移動します。上部ナビゲーションバーで、ご利用のインスタンスのリージョンを選択します。該当インスタンスを見つけ、その ID をクリックします。

  2. インスタンス詳細ページで、一般 ESSD の設定基本情報 セクションからクリックします。データアーカイブ カードで、データアーカイブ を無効化します。

重要
  • データアーカイブの無効化により、約 30 秒間の一時的な切断が発生します。

  • OSS バケット内にアーカイブ済みテーブルが存在する状態では、データアーカイブを無効化できません。無効化する前に、アーカイブ済みテーブルをオンラインテーブルへ戻すか、DROP してください。

課金

課金の詳細

データアーカイブは従量課金方式で課金され、OSS に保存されたデータ量に基づいて請求されます。

リージョンRDS Basic EditionRDS High-availability EditionRDS Cluster Edition(ノード単位)
中国(杭州)、中国(上海)、中国(青島)、中国(北京)、中国(張家口)、中国(フフホト)、中国(ウランチャブ)、中国(深セン)、中国(河源)、中国(広州)、および中国(成都)$0.000032/GB・時間$0.000065/GB・時間$0.000032/GB・時間
中国(香港)、日本(東京)、シンガポール、インドネシア(ジャカルタ)、およびドイツ(フランクフルト)$0.000034/GB・時間$0.000068/GB・時間$0.000034/GB・時間
フィリピン(マニラ)および米国(シリコンバレー)$0.000058/GB・時間$0.000117/GB・時間$0.000058/GB・時間
マレーシア(クアラルンプール)$0.000057/GB・時間$0.000114/GB・時間$0.000057/GB・時間
米国(バージニア)$0.000054/GB・時間$0.000108/GB・時間$0.000054/GB・時間
説明

タイ(バンコク)、韓国(ソウル)、イギリス(ロンドン)、および UAE(ドバイ)リージョンでは、データアーカイブは利用できません。

大量のデータをアーカイブした後、未使用のESSD ストレージを削減して、コストをさらに削減できます。詳細については、「クラウドディスクを使用するApsaraDB RDS for PostgreSQL インスタンスのストレージ容量を削減する」をご参照ください。

制限事項

バックアップに関する制限

データアーカイブを有効化すると、以下のバックアップ機能に影響があります:

  • 1 桁秒単位のバックアップはサポートされません。

  • クロスリージョンバックアップはサポートされません。

  • 個別のデータベースおよびテーブルの復元では、アーカイブされていないデータのみが復元されます。

  • ダウンロード可能なバックアップセットには、アーカイブされていないデータのみが含まれます。

説明

データアーカイブを有効化すると、バックアップおよび復元の速度が低下します。これは、システムが復元プロセス中にアーカイブ済みデータを復元する必要があるためです。

パフォーマンスに関する考慮事項

  • OSS へのアクセス遅延は最大 10 ms となり、ESSD の遅延より高くなります。RDS インスタンスのバッファープールまたはオペレーティングシステムのページキャッシュにキャッシュされたテーブルは、より高速に提供される可能性があります。

  • OSS からのデータ読み取りは、メモリおよび Elastic Compute Service(ECS)のネットワーク帯域幅を消費します。データ転送頻度およびアクセスパターンに応じて、適切に調整してください。

データアクセスに関する制限

アーカイブ済みデータには、以下のクエリ制限があります:

  • クエリ:読み取り専用インスタンスでのみサポートされます。

参考文献