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

:データアーカイブ

最終更新日:Nov 09, 2025

ApsaraDB RDS for MySQL インスタンスに大量のデータを保存すると、ストレージコストが増加します。ビジネスデータは通常、ホットデータまたはコールドデータに分類されます。コールドデータを Object Storage Service (OSS) にアーカイブすることで、ストレージコストを大幅に削減できます。

機能概要

Premium ESSD を使用する ApsaraDB RDS for MySQL インスタンスで OSS へのデータアーカイブを有効にすると、次の DDL 文を実行して ESSD と OSS の間でデータを移動できます。この機能により、アクセス頻度の低い大規模なテーブルを OSS にダンプできます。その後、ネイティブの InnoDB アクセスメソッドを使用して、これらのコールドテーブルからデータを読み取ることができます。データアーカイブの DDL 操作は次のとおりです。

  1. アーカイブ

    ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"Y"}';
    説明

    ApsaraDB RDS for MySQL は、テーブル全体の OSS へのアーカイブをサポートしています。テーブルがアーカイブされると、そのテーブルにデータを書き込むことはできません。SELECT、DROP TABLE、DROP DATABASE、および RENAME 操作のみがサポートされます。

  2. 取得

    ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"N"}';

ApsaraDB RDS for MySQL のアーカイブ済みテーブルは、すべての InnoDB インデックス情報とトランザクションプロパティを保持します。高速なポイントクエリとキャッシュアクセラレーションをサポートし、コールドテーブルのアクセス効率を向上させます。

メリット

Premium ESSD を使用する ApsaraDB RDS for MySQL インスタンスで OSS へのデータアーカイブを有効にすると、OSS の大規模で安全、低コスト、高信頼性のストレージを活用できます。この機能は、ApsaraDB RDS for MySQL 上で非常に低コストのデータアーカイブソリューションを提供し、頻度の低いデータアクセスをサポートし、InnoDB トランザクション機能を維持します。これにより、ESSD PL1 ディスクを使用する場合と比較して、ストレージコストを 80% 削減できます。

説明

クエリパフォーマンスを向上させるには、バッファープール拡張 (BPE) 機能を有効にできます。

適用性

  • エンジン: ApsaraDB RDS for MySQL

  • プロダクトタイプ: Standard Edition、Yitian Edition

  • ストレージタイプ: Premium ESSD

    説明
  • 課金方法: 従量課金、サブスクリプション

  • バージョン: MySQL 8.0 20240131 以降

  • プロダクトシリーズ: Basic Edition、High-availability Edition、Cluster Edition

  • サポートされていないリージョン: タイ (バンコク)、韓国 (ソウル)、イギリス (ロンドン)、アラブ首長国連邦 (ドバイ)

料金

パブリックプレビュー期間中は無料

この機能は、2024 年 6 月 20 日から 2024 年 7 月 25 日までのパブリックプレビュー期間中は無料です。パブリックプレビューが終了すると、OSS にアーカイブされたデータ量に基づいて課金されます。

課金の詳細

現在、従量課金のみがサポートされています。次の表は、さまざまなリージョンにおける異なるプロダクトシリーズの料金を示しています。

リージョン

Basic Edition の料金

High-availability Edition の料金

Cluster Edition の料金 (ノード数に基づいて計算)

中国(杭州)、中国(上海)、中国(青島)、中国(北京)、中国(張家口)、中国(フフホト)、中国(ウランチャブ)、中国(深セン)、中国(河源)、中国(広州)、中国(成都)

0.000032 USD/GB/時間

0.000065 USD/GB/時間

0.000032 USD/GB/時間

中国(香港)

0.000034 USD/GB/時間

0.000068 USD/GB/時間

0.000034 USD/GB/時間

フィリピン (マニラ)、米国 (シリコンバレー)

0.000058 USD/GB/時間

0.000117 USD/GB/時間

0.000058 USD/GB/時間

日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト)

0.000034 USD/GB/時間

0.000068 USD/GB/時間

0.000034 USD/GB/時間

マレーシア(クアラルンプール)

0.000057 USD/GB/時間

0.000114 USD/GB/時間

0.000057 USD/GB/時間

米国(バージニア)

0.000054 USD/GB/時間

0.000108 USD/GB/時間

0.000054 USD/GB/時間

説明

サポートされていないリージョン: タイ (バンコク)、韓国 (ソウル)、イギリス (ロンドン)、アラブ首長国連邦 (ドバイ)。

制限事項

  • データアーカイブ機能は、サーバーレス ApsaraDB RDS for MySQL インスタンスではサポートされていません。

  • OSS に保存されているテーブルは、SELECT、DROP TABLE、DROP DATABASE、および RENAME 操作のみをサポートします。データが ESSD に戻されると、テーブルは完全なアクセス権限を回復します。

  • パーティションテーブル、フルテキストインデックスを持つテーブル、暗号化されたテーブル、外部キーを持つテーブル、または圧縮されたテーブル (テーブル圧縮およびページ圧縮を含む) では、OSS へのデータアーカイブはサポートされていません。

  • OSS のアクセスレイテンシのため、コールドテーブルのデータへのアクセスは、ESSD に保存されているデータへのアクセスと比較してレイテンシが高くなります (10 ms の範囲)。

  • ApsaraDB RDS for MySQL のアーカイブ済みテーブルのデータサイズは、少なくとも 6 MB である必要があります。

  • アーカイブ DDL 文の実行時間は、テーブルのデータ量に依存します。DDL 操作中、テーブルは読み取り可能ですが、書き込みはできません。

  • データアーカイブを有効にすると、インスタンスのバックアップと一部の機能に影響します。詳細は次のとおりです。

    サポートされていない機能

    説明

    秒単位のバックアップ

    • 秒単位のバックアップを有効にするには、データアーカイブ機能を無効にします

    • インスタンスのデータアーカイブを有効にするには、まず秒単位のバックアップ機能が無効になっていることを確認してください。

    リージョン間バックアップ

    • リージョン間バックアップを有効にするには、データアーカイブ機能を無効にします

    • インスタンスのデータアーカイブを有効にするには、まずリージョン間バックアップ機能が無効になっていることを確認してください。

    データベースとテーブルの回復

    データベースごとにデータを回復する場合、選択したデータベース内のアーカイブされていないデータのみが回復できます。

    バックアップセットのダウンロード

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

    説明

    データアーカイブが有効になっているインスタンスでは、アーカイブされたデータも回復する必要があるため、バックアップおよび回復操作は、この機能がないインスタンスよりも時間がかかります。

注意事項

OSS へのデータアーカイブとアーカイブ済みデータの読み取りは、メモリリソースを消費します。要件に基づいて、データ変換とアクセスの速度と頻度を調整する必要があります。

データアーカイブ機能の有効化と無効化

  1. ApsaraDB RDS インスタンスページに移動します。上部のナビゲーションバーで、リージョンを選択します。次に、ターゲットインスタンスの ID をクリックします。インスタンスは、「適用性」セクションで説明されている要件を満たしている必要があります。

  2. インスタンス詳細ページで、[Premium ESSD] の右側にある [Premium ESSD スイッチ設定] をクリックし、[データアーカイブ] スイッチをオンまたはオフにします。

    重要
    • データアーカイブ機能を有効または無効にすると、プライマリ/スタンバイスイッチオーバーが発生します。これにより、約 30 秒間の一時的な接続中断が発生します。この操作はオフピーク時に実行してください。アプリケーションに自動再接続メカニズムがあることを確認してください。

    • データアーカイブ機能を無効にするには、OSS にアーカイブされたテーブルデータが存在しないことを確認する必要があります。OSS にアーカイブされたテーブルが存在する場合、この機能を無効にすることはできません。まず、DDL 文を使用して、アーカイブされたテーブルをオンラインテーブルに変換するか、ドロップする必要があります。その後、データアーカイブ機能を無効にできます。

アーカイブされたデータ情報の表示

  1. コンソールで表示:

    1. ApsaraDB RDS インスタンスページに移動します。上部のナビゲーションバーで、リージョンを選択します。次に、ターゲットインスタンスの ID をクリックします。インスタンスは、「適用性」セクションで説明されている要件を満たしている必要があります。

    2. 左側のナビゲーションウィンドウで、[コールドストレージ管理] をクリックして、データアーカイブが有効になっているデータベースを表示します。

  2. SQL コマンドを使用して表示:

    MySQL 8.0 20241130 以降では、information_schema.innodb_tablespaces_oss ビューを直接クエリしてテーブルスペース情報を取得できます。この方法はより効率的です。

    -- 20241130 より前の ApsaraDB RDS for MySQL バージョンの場合
    SELECT t.NAME AS tablespace_name, SUBSTRING_INDEX(t.NAME, '/', 1) AS database_name, SUBSTRING_INDEX(t.NAME, '/', -1) AS table_name, oss.OSS_OBJECT_NUM * oss.OSS_OBJECT_SIZE AS SIZE_IN_OSS_BYTES FROM information_schema.innodb_tables AS t JOIN information_schema.innodb_tablespaces_oss AS oss ON t.space = oss.space;
    
    -- ApsaraDB RDS for MySQL 20241130 以降の場合
    SELECT NAME AS tablespace_name, SUBSTRING_INDEX(NAME, '/', 1) AS database_name, SUBSTRING_INDEX(NAME, '/', -1) AS table_name, OSS_PART_SIZE AS SIZE_IN_OSS_BYTES FROM information_schema.innodb_tablespaces_oss;

参照資料

ApsaraDB RDS for MySQL のデータアーカイブ機能には、必要に応じて変更できる次のパラメーターが用意されています。詳細については、「ApsaraDB RDS for MySQL 8.0 のパラメーターリスト」をご参照ください。

パラメーター名

デフォルト値

説明

innodb_oss_ddl_threads

16

  • データアーカイブ変換の同時スレッド数。

  • 帯域幅制限に達する前にこの値を増やすと、データアーカイブ変換を高速化できます。ただし、メモリと帯域幅の消費も増加します。

innodb_oss_files_limit

10240

  • メモリにキャッシュされるアーカイブ済みデータコントロールブロックの数。

  • データが OSS にアーカイブされると、ESSD 上のテーブルは複数のデータファイルブロックに分割されてアップロードされます。各データファイルブロックのテーブルスペースやタイムスタンプ範囲などの情報は、アーカイブ済みデータコントロールブロックに保存されます。コントロールブロックはメモリに保存され、アーカイブ済みデータリクエストのデータ位置を迅速に特定します。これらは、Least Recently Used (LRU) アルゴリズムによって管理されます。

innodb_oss_prefetch

ON

  • アーカイブ済みデータのプリフェッチのスイッチ。

  • これがオンになっている場合、線形またはランダムプリフェッチの条件が満たされると、OSS はアーカイブ済みデータファイルブロック全体をバッファープールに直接キャッシュします。これにより、OSS アクセスの頻度が減り、アクセス効率が向上します。

innodb_oss_prefetch_linear_pct_threshold

10%

  • アーカイブ済みデータの線形プリフェッチのしきい値。

  • アーカイブ済みデータブロック内で順次読み取られるページの数がこのしきい値に達すると、OSS はアーカイブ済みデータファイルブロック全体をバッファープールに直接キャッシュします。

innodb_oss_prefetch_random_pct_threshold

30%

  • アーカイブ済みデータのランダムプリフェッチのしきい値。

  • アーカイブ済みデータブロック内でランダムに読み取られるページの数がこのしきい値に達すると、OSS はアーカイブ済みデータファイルブロック全体をバッファープールに直接キャッシュします。

innodb_oss_prefetch_task_limit

32

  • プリフェッチキャッシュタスクの上限。

  • アーカイブ済みデータファイルブロックがバッファープールに完全にキャッシュされる前に、その内容を保存するために追加のメモリが必要です。この値を増やすと、メモリ消費量が増加する可能性があります。

oss_max_connections

64

  • ApsaraDB RDS for MySQL インスタンスが OSS にアクセスするために開くことができる HTTP 接続の最大数。

  • 高い同時実行性のもとで、この値を増やすと OSS のアクセス速度が向上します。ただし、CPU、メモリ、帯域幅の消費も増加します。

よくある質問

Q: MySQL で ALTER DDL 文を実行すると、エラー [OSS] Size of tables is less than 6291456 が表示されます。なぜですか?

A: MySQL のアーカイブ済みテーブルのデータサイズは、少なくとも 6 MB である必要があります。