このトピックでは、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 データベースには復元できません。
ソースデータベースインスタンスとターゲットデータベースインスタンスは、安定的な変更モードまたはセキュリティコラボレーションモードで管理されています。
説明定期的なデータアーカイブタスクを設定する場合、ソースデータベースインスタンスとターゲットデータベースインスタンスが安定的な変更モードで管理されている場合は、データベースインスタンスのセキュリティホスティングを有効にするか、データベースインスタンスの制御モードをセキュリティコラボレーションに変更することをお勧めします。そうしないと、インスタンスのログイン有効期限が切れたためにデータアーカイブタスクが失敗する可能性があります。詳細については、「セキュリティホスティング」トピックの「セキュリティホスティングを有効にする」セクションと、「インスタンスの制御モードを変更する」をご参照ください。
標準または低頻度アクセス (IA) OSS バケットが購入されています。詳細については、「OSS コンソールを使用して開始する」トピックの「OSS コンソールを使用して開始する」セクションをご参照ください。
OSS バケットは、データ管理 (DMS) に登録されています。詳細については、「Alibaba Cloud データベースインスタンスを登録する」をご参照ください。
重要パブリックエンドポイント経由で DMS に OSS バケットを登録することをお勧めします。OSS バケットが内部エンドポイント経由で DMS に登録されている場合、OSS バケットにデータをアーカイブすることはできません。他に質問がある場合は、DingTalk グループ (ID 19040023327) のテクニカルサポートにお問い合わせください。
DMS に OSS バケットを登録する前に、現在の Alibaba Cloud アカウントの AccessKey ID と AccessKey シークレットを持っていることを確認して、ID 検証を完了してください。AccessKey ペアを取得する方法の詳細については、「AccessKey ペアを作成する」をご参照ください。
データをアーカイブするソーステーブルには、プライマリキーまたは一意のキーがあります。
説明ソーステーブルに、各データ変更操作の時刻を示すフィールドを指定することをお勧めします。ソーステーブルからデータをアーカイブするときに、このフィールドをフィルター条件として使用できます。
使用上の注意
ソーステーブルに 3 つの列で構成される複合プライマリキーがある場合、またはソーステーブルに 3 つ以上の一意のキーがある場合、データアーカイブタスクが失敗する可能性があります。データアーカイブを実行する前に、3 列の複合プライマリキーを持つソーステーブルを完全にテストするか、データディザスタリカバリなどの他のアーカイブ方法を使用することをお勧めします。
データアーカイブ機能は、シンガポールとインドネシア (ジャカルタ) リージョンでのみサポートされています。
ソースデータベースが MongoDB データベースの場合、アーカイブ済みデータのスキーマに問題がある可能性があります。アーカイブ済みデータの問題を確認して修正してから、一時テーブルをクリーンアップすることをお勧めします。
OSS は、スキーマレス MongoDB データを構造化データに変換します。 OSS 内のアーカイブ済みデータをクエリするには、同じ MongoDB コレクション内のすべてのドキュメントで、フィールド名、数量、およびデータ型が同じであることを確認してください。そうでない場合、クエリが失敗する可能性があります。
手順
- DMS コンソール V5.0 にログインします。
上部のナビゲーションバーで、 を選択します。
「データアーカイブチケット」ページの右上隅にある [データアーカイブ] をクリックします。
[適用] ステップで、パラメータを設定してデータアーカイブチケットを作成します。次の表にパラメータを示します。
パラメータ
説明
タスク名
データアーカイブタスクの名前。タスクを簡単に識別できる説明的な名前を指定することをお勧めします。
アーカイブ先
データをアーカイブするターゲット。 [OSS] を選択します。
OSS インスタンス
データをアーカイブするターゲット OSS インスタンス。
説明標準または IA OSS インスタンスを選択します。
OSS バケット
選択した OSS インスタンスに属する OSS バケット。
重要選択した OSS インスタンスに必要な OSS バケットが見つからない場合は、DMS コンソールで OSS インスタンスにログインします。詳細については、「OSS バケットを登録する」をご参照ください。
アーカイブ済みデータは、OSS バケットの archive フォルダに保存されます。フォルダを削除しないでください。
ソースデータベース
データをアーカイブするソースデータベース。
アーカイブ設定
データをアーカイブする 1 つ以上のテーブルを指定します。
オプション。 指定したテーブルでアーカイブするデータをクエリするための 1 つ以上のフィルター条件を指定します。
説明6 か月前に生成されたデータをアーカイブするなどのシナリオで時間変数を使用する場合は、「アーカイブ設定」セクションのパラメータを設定する前に、「[変数設定]」セクションで変数を設定できます。
オプション。 [追加] をクリックして、ソーステーブルを追加します。
アーカイブテーブルマッピング
ターゲットバケットで使用するテーブル設定。「操作」列でテーブルを見つけて [編集] をクリックして、テーブル情報を設定できます。
変数設定
オプション。アーカイブ済みデータをフィルタリングするための条件を設定するときに使用される変数。たとえば、yyyy-MM-dd 形式で
6_month_agoという名前の時間変数を作成し、オフセットを - 6 か月に設定したとします。この場合、現在の日付が 2021 年 8 月 12 日の場合、${6_month_ago}変数の値は 2021-02-11 で、2021 年 2 月 11 日を示します。時間変数の設定方法の詳細については、「変数」トピックの「時間変数を設定する」セクションをご参照ください。事後処理
アーカイブ済みデータをソーステーブルから削除するかどうかを指定します。
「元のテーブルのアーカイブ済みデータをクリーンアップする (削除 - ロックなし)」をオフにすると、アーカイブ済みデータはソーステーブルから削除されません。
「元のテーブルのアーカイブ済みデータをクリーンアップする (削除 - ロックなし)」を選択すると、DMS はソーステーブルからアーカイブ済みデータを自動的に削除します。削除プロセス中は、ソーステーブルはロックされません。
アーカイブ済みデータを確認するかどうかを指定します。
「アーカイブ済みデータを確認する (時間がかかる)」をオフにすると、DMS はアーカイブ済みデータを確認しません。
「アーカイブ済みデータを確認する (時間がかかる)」を選択すると、DMS はアーカイブ済みデータとソースデータベースの元のデータを比較し、アーカイブ済みデータに加えてデータの不一致を表示します。
アーカイブ済みデータの検証にかかる時間は、アーカイブ済みデータの量によって異なります。
操作モード
データアーカイブタスクを実行するために使用されるメソッド。有効な値:
単一実行: データアーカイブチケットが承認されると、DMS はデータアーカイブタスクを 1 回だけ実行します。
循環スケジューリング: データアーカイブチケットが承認されると、DMS は指定したスケジュールに基づいてデータアーカイブタスクを実行します。詳細については、「Lindorm インスタンスにデータをアーカイブする」トピックの「定期スケジューリング」セクションをご参照ください。
[送信] をクリックします。
データアーカイブチケットが承認されると、DMS はデータアーカイブタスクを自動的に実行します。
説明データアーカイブ機能は、アーカイブされるデータベースのタイムゾーンに関係なく、UTC+0 タイムゾーンに基づいてデータアーカイブと事後処理を実装します。
オプション。データがアーカイブされ、アーカイブ済みデータが正しいことを確認したら、ソーステーブルからアーカイブ済みデータを削除し、ソーステーブルのストレージ使用量を最適化します。
ソーステーブルからアーカイブ済みデータを削除します。
「事後処理」パラメータで「元のテーブルのアーカイブ済みデータをクリーンアップする (削除 - ロックなし)」を選択した場合、DMS はソーステーブルからアーカイブ済みデータを削除し、ソースデータベースに一時バックアップテーブルを生成します。
ソースデータベースから一時バックアップテーブルを削除するには、「通常のデータ変更」チケットを作成します。詳細については、「通常のデータ変更」をご参照ください。
説明「データアーカイブチケットの詳細」パネルの下部にある [一時テーブルを削除するために使用される DROP 文を表示するには、ここをクリックしてください。] をクリックし、一時バックアップテーブルを削除するために使用される SQL 文をコピーします。
「事後処理」パラメータで「元のテーブルのアーカイブ済みデータをクリーンアップする (削除 - ロックなし)」をオフにした場合、ソーステーブルからアーカイブ済みデータを手動で削除する必要があります。
ソーステーブルからアーカイブ済みデータを削除するには、「通常のデータ変更」チケットを作成します。
ソーステーブルのストレージ使用量を最適化するには、ロックフリー変更チケットを作成します。詳細については、「ロックフリー DDL 操作を実行する」をご参照ください。
説明「データアーカイブチケットの詳細」パネルの下部にある [ソーステーブルのストレージ使用量を最適化するために使用される SQL 文を表示] をクリックし、ソーステーブルのストレージ使用量を最適化するために使用される SQL 文をコピーします。
アーカイブ済みデータをクエリします。詳細については、「OSS バケットまたは専用ストレージにアーカイブされたデータをクエリする」トピックの「OSS バケットにアーカイブされたデータをクエリする」セクションをご参照ください。
アーカイブ済みデータをソースデータベースに復元する
課金
アーカイブ済みデータをソースデータベースに無料で復元できます。
制限
一度に実行できる復元タスクは 1 つだけです。次のタスクを実行する前に、現在の復元タスクが完了するまで待つ必要があります。
この機能は、ソースデータベースエンジンが ApsaraDB RDS for MySQL、PolarDB for MySQL、または AnalyticDB for MySQL V3.0 の場合にのみ使用できます。
手順
[データアーカイブチケット] ページで、[表示] パラメータを [チケットビュー] に設定します。
管理するチケットを見つけて、詳細[操作] 列の をクリックします。
[チケットの詳細] ページで、[実行] をクリックします。「実行」セクションで、[ソースデータベースに復元][操作] 列の をクリックします。
表示されるメッセージで、[OK] をクリックします。
データ復元タスクが作成されます。システムはデータ復元タスクを自動的に実行します。タスクが完了するまで待ちます。このプロセスにかかる時間は、復元されるデータの量によって異なります。
重要アーカイブ済みデータをソースデータベースに復元した後、システムはソースデータベースに一時テーブルを自動的に作成します。これにより、ソースデータベースのストレージ容量が不足する可能性があります。注意して進めてください。
復元されたデータをクエリします。
「チケットの詳細」ページの [基本情報] セクションで、[変更するデータベース] の横にあるデータベース名にポインタを移動し、ポップアップウィンドウで [クエリ] をクリックします。
テーブル名をダブルクリックし、[実行] をクリックします。
「SQL コンソール」タブの下部に表示される「実行履歴」タブで、復元されたデータを表示できます。