このトピックでは、Object Storage Service (OSS) バケットへのデータのアーカイブ方法およびアーカイブ済みデータをソースデータベースへ復元する方法について説明します。
データアーカイブ機能はパブリックプレビュー中です。
前提条件
ソースデータベースは、以下のいずれかのタイプである必要があります:
-
MySQL: ApsaraDB RDS for MySQL、PolarDB for MySQL、および AnalyticDB for MySQL V3.0
-
PostgreSQL: ApsaraDB RDS for PostgreSQL および PolarDB for PostgreSQL
-
ApsaraDB for MongoDB 3.6 以降
-
PolarDB-X 2.0
説明ApsaraDB for MongoDB から専用ストレージへアーカイブされたデータは、クエリのみ可能です。ApsaraDB for MongoDB への復元はサポートされていません。
MongoDB をソースデータベースとして使用する新しいデータアーカイブタスクの設定は、これ以上行えません。
-
ソースおよび宛先データベースインスタンスのコントロールモードは、いずれも「安定的な変更」または「セキュリティコラボレーション」である必要があります。
説明「安定的な変更」モードで循環スケジューリングを使用する場合、ログインの有効期限切れによるタスク失敗を防ぐため、セキュリティホスティングを有効化するか、コントロールモードを「セキュリティコラボレーション」に変更することを推奨します。詳細については、「セキュリティホスティングの有効化」および「インスタンスのコントロールモードの変更」をご参照ください。
標準ストレージまたは低頻度アクセス (IA) の OSS バケットを含む、アクティブな Object Storage Service (OSS) サブスクリプションが必要です。詳細については、「OSS コンソールの使い始め」をご参照ください。
OSS インスタンスを DMS に登録する必要があります。詳細については、「クラウドデータベースインスタンスの追加」をご参照ください。
重要DMS への OSS インスタンス登録時には、パブリックエンドポイントを使用してください。内部エンドポイントを使用すると、データアーカイブが失敗します。ご質問がある場合は、DingTalk サポートグループ(ID: 190****327)へご参加ください。
OSS インスタンスを登録するには、Alibaba Cloud アカウントの AccessKey ID および AccessKey Secret が必要です(ログイン認証用)。AccessKey ペアの取得方法については、「AccessKey ペアの取得」をご参照ください。
ソーステーブルには、プライマリキーまたは一意キーが設定されている必要があります。
説明ソーステーブルに変更タイムスタンプフィールドを含めることを推奨します。このタイムスタンプをアーカイブ時のフィルター条件として使用できます。
注意事項
ソーステーブルのプライマリキーが 3 列からなる複合プライマリキーである場合、または 3 つ以上の一意キーが存在する場合、アーカイブタスクが失敗する可能性があります。アーカイブ前にこれらのソーステーブルを十分にテストするか、Database Backup Service (DBS) などの代替手法をご検討ください。
データアーカイブ機能は、シンガポールおよびインドネシア (ジャカルタ) リージョンでのみご利用いただけます。
ApsaraDB for MongoDB データベースからデータをアーカイブした場合、アーカイブ済みデータの構造に問題が生じる可能性があります。一時テーブルのクリーンアップを行う前に、アーカイブ済みデータの検証および修正を行うことを推奨します。
ApsaraDB for MongoDB から OSS へデータをアーカイブする際、スキーマレスなデータは構造化データに変換されます。OSS 内のアーカイブ済みデータを正常にクエリできるようにするためには、同一の ApsaraDB for MongoDB コレクション内のすべてのドキュメントが、アーカイブ前に同じフィールド名、フィールド数、およびデータの型を持つことを確認してください。これを満たさない場合、クエリが失敗する可能性があります。
データのアーカイブ
DMS 5.0 にログインします。
- 上部ナビゲーションバーで、 を選択します。
ページ右上隅の データアーカイブ をクリックします。
新規データアーカイブチケット ページで、以下のパラメーターを設定します:
パラメーター
説明
タスク名
識別しやすいよう、説明的な名前を入力します。
アーカイブ先
OSS を選択します。
OSS インスタンス
アーカイブ済みデータを格納する宛先インスタンスを選択します。
説明標準ストレージまたは低頻度アクセス (IA) の OSS インスタンスを選択してください。
OSS バケット
該当インスタンスに属する OSS バケットを選択します。
重要選択した OSS インスタンスに必要な OSS バケットが表示されない場合は、DMS コンソールで当該インスタンスにログインし、バケットを追加してください。詳細については、「OSS バケットの追加」をご参照ください。
アーカイブ後、データはこのバケット内の archive フォルダに格納されます。このフォルダを削除しないでください。
データベース
アーカイブ対象のソースデータベースを検索して選択します。
アーカイブ設定
アーカイブ対象のテーブルを選択します。
オプション: アーカイブ済みデータのフィルター条件を入力します。
説明時間変数(例:6 か月前のデータをアーカイブする場合など)を使用する必要がある場合は、まず 変数設定 セクションで設定してください。
オプション: 複数のソーステーブルを指定する場合は、[追加] をクリックします。
アーカイブテーブルマッピング
操作列の 編集 をクリックして、アーカイブテーブル情報を設定できます。
変数設定(オプション)
アーカイブ時のフィルター条件設定で変数を使用できます。たとえば、時間変数が
6_month_agoで、時間形式が yyyy-MM-dd、オフセットが -6 か月の場合、現在日付が 2021-08-12 のとき、${6_month_ago}変数の値は 2021-02-11 になります。時間変数の設定方法については、「時間変数の設定」をご参照ください。後続動作
ソーステーブルからアーカイブ済みデータをクリーンアップするかどうかを選択します:
クリーンアップしない: ソーステーブルからアーカイブ済みデータは削除されません。
クリーンアップする: ロックフリー方式で、ソーステーブルからアーカイブ済みデータを自動的に削除します。
アーカイブ済みデータを検証するかどうかを選択します:
検証しない: アーカイブ済みデータは検証されません。
検証する: アーカイブ済みデータとソースデータを比較し、相違点を表示します。
説明このオプションを有効化すると、データ量に応じて検証時間が増加し、OSS のパブリックアウトバウンドトラフィック料金が発生します。
操作モード
操作モードを選択します。以下のモードがサポートされています:
単一実行: チケット承認後にタスクが 1 回実行されます。
循環スケジューリング: チケット承認後に、設定されたスケジュールでタスクが実行されます。詳細については、「循環スケジューリング」をご参照ください。
送信 をクリックします。
チケットが承認されると、データアーカイブタスクが自動的に実行されます。
説明データアーカイブ機能およびその後続動作は、ソースデータベースのタイムゾーンに関係なく、UTC+0 タイムゾーン を使用します。
オプション: アーカイブおよび検証が正常に完了した後、ソーステーブルからアーカイブ済みデータを削除し、ストレージ領域を最適化できます。
ソーステーブルからアーカイブ済みデータをクリーンアップします。
後続動作のクリーンアップオプションを有効化した場合、ソーステーブルからアーカイブ済みデータが削除され、ソースデータベース内に一時バックアップテーブルが作成されます。
一時バックアップテーブルをクリーンアップするには、通常のデータ変更チケットを作成して、データベースから削除してください。詳細については、「通常のデータ変更」をご参照ください。
説明データアーカイブチケットの詳細ページ下部にある 一時テーブル用 DROP SQL の表示 をクリックし、表示された SQL ステートメントをコピーしてください。
後続動作のクリーンアップオプションを有効化しなかった場合、アーカイブ済みデータを手動で削除する必要があります。
そのために、ソーステーブルからデータを削除する通常のデータ変更チケットを作成してください。
ソーステーブルのストレージ領域を最適化します: ロックフリー変更チケットを作成して最適化を実行します。詳細については、「ロックフリー変更チケットを用いたロックフリーのスキーマ変更の実行」をご参照ください。
説明データアーカイブチケットの詳細ページ下部にある ソーステーブルのストレージ領域最適化用 SQL の表示 をクリックし、表示された SQL ステートメントをコピーしてください。
アーカイブ済みデータのソースデータベースへの復元
課金
この機能自体は無料ですが、Object Storage Service (OSS) から発生するパブリックアウトバウンドトラフィックに対して課金されます。
制限事項
同時実行可能な復元タスクは 1 つだけです。
この機能は、以下のソースデータベースタイプでのみご利用いただけます: ApsaraDB RDS for MySQL、PolarDB for MySQL、および AnalyticDB for MySQL V3.0。
操作手順
データアーカイブチケット ページで、表示 を チケット表示 に設定します。
対象のチケットを見つけ、操作 列の 詳細 をクリックします。
データアーカイブチケット一覧 ページの 実行 セクションで、操作 列の ソースデータベースへの復元 をクリックします。
表示されたダイアログボックスで、OK をクリックします。
復元タスクが追加され、自動的に実行されます。ステータスが 実行中 から 成功 に変わるまでお待ちください。タスクの持続時間は、復元対象のデータ量によって異なります。
重要アーカイブ済みデータをソースデータベースへ復元すると、一時テーブルが作成され、大量のストレージ領域を消費する可能性があります。実行には十分ご注意ください。
復元されたデータを表示します。
チケット詳細ページの 基本情報 セクションで、データベース名をクリックし、ポップアップウィンドウで クエリ をクリックします。
対象のテーブル名をダブルクリックし、実行 をクリックします。
SQL コンソールページ下部の結果セクションに、復元されたデータが表示されます。