Data Management (DMS) を使用すると、リレーショナルデータベースから履歴レコードを Lindorm インスタンスにアーカイブできます。これにより、本番データベースのストレージコストを削減しつつ、クエリによるデータアクセスを維持できます。
データアーカイブ機能は、シンガポールおよびインドネシア (ジャカルタ) リージョンでのみご利用いただけます。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
対応するソースデータベース:
MySQL:ApsaraDB RDS for MySQL、PolarDB for MySQL、または AnalyticDB for MySQL V3.0
PostgreSQL:ApsaraDB RDS for PostgreSQL または PolarDB for PostgreSQL
PolarDB-X
MySQL データベースアカウントが REPLICATION CLIENT 権限を有していること(MySQL ソースのみ)。
ソーステーブルにプライマリキーまたは一意キーが定義されていること。
LindormTable V2.2.17 以降を実行している Lindorm インスタンス。インスタンスの作成手順については、「インスタンスの作成」をご参照ください。
DMS で Lindorm インスタンスを登録する際に、データベースタイプとして Lindorm SQL を選択していること。詳細については、「Alibaba Cloud データベースインスタンスの登録」をご参照ください。
ヒント: ソーステーブルにタイムスタンプ列(例:gmt_modified)を追加してください。これにより、時間ベースのフィルター条件を設定して、アーカイブ対象のレコードを絞り込むことができます。注意事項
定期実行タスクでは、ソースデータベースおよびターゲットデータベースの両方が セキュリティコラボレーション または 安定的な変更 コントロールモードで管理されている必要があります。ワンタイムタスクは、任意のコントロールモードで実行可能です。
定期実行タスクを設定し、いずれかのデータベースインスタンスが「安定的な変更」モードの場合、インスタンスのログイン有効期限切れによるタスク失敗を防ぐため、セキュリティホスティングを有効化するか、コントロールモードを「セキュリティコラボレーション」に切り替えてください。詳細については、「セキュリティホスティング」および「インスタンスのコントロールモードの変更」をご参照ください。
定期実行のデータアーカイブタスクを実行するには、ソースデータベースおよびターゲットデータベースの両方を「セキュリティコラボレーション」または「安定的な変更」コントロールモードにする必要があります。一方、データアーカイブタスクを一度だけ実行する場合は、コントロールモードに制限はありません。
説明インスタンスが「安定的な変更」コントロールモードの場合、定期実行のデータアーカイブタスクを設定する前に、セキュリティホスティングを有効化するか、コントロールモードを「セキュリティコラボレーション」に変更してください。これにより、インスタンスのログイン有効期限切れによるタスク失敗を防止できます。詳細については、「セキュリティホスティングの有効化」および「インスタンスのコントロールモードの変更」をご参照ください。
データアーカイブ機能は、シンガポールおよびインドネシア (ジャカルタ) リージョンでのみご利用いただけます。
課金
ターゲットとなる Lindorm インスタンスに対して課金されます。
Lindorm インスタンスへのデータアーカイブ
ステップ 1:データアーカイブチケットフォームを開く
DMS コンソール V5.0 にログインします。
上部ナビゲーションバーで、ソリューション > データアーカイブ の順に選択します。
シンプルモードでは、左上隅の
アイコンにポインターを合わせ、すべての機能 > ソリューション > データアーカイブ の順に選択します。データアーカイブチケット ページの右上角にある データアーカイブ をクリックします。
ステップ 2:アーカイブチケットの構成
チケット申請 ページで、以下のパラメーターを入力します。
基本設定
| パラメーター | 必須 | 説明 |
|---|---|---|
| タスク名 | はい | アーカイブタスクを識別するための説明的な名称です。 |
| アーカイブ保存先 | はい | Lindorm を選択します。 |
| Lindorm インスタンス | はい | データをアーカイブするターゲットとなる Lindorm インスタンスです。 |
| ソースデータベース | はい | データをアーカイブする元となるデータベースです。 |
| 操作モード | はい | チケット承認後のタスク実行方法です。単発実行 はタスクを 1 回だけ実行します。定期スケジュール は指定された周期で繰り返し実行します。 定期スケジュール を選択した場合、下記の 定期スケジューリング セクションでスケジュールを構成してください。 |
アーカイブ構成
アーカイブ構成 セクションで、アーカイブ対象のソーステーブルを選択します。
各テーブルについて、アーカイブ対象の行を制限するためのフィルター条件をオプションで設定できます。例: gmt_modified<='${6_month_ago}' とすると、6 ヶ月以上前に更新された行のみがアーカイブされます。
${6_month_ago} のような時間ベースの変数をフィルター条件で使用する場合、まず下記の 変数構成 セクションで変数を定義し、その後ここで参照してください。
さらにソーステーブルを追加するには、追加 をクリックします。
変数構成(オプション)
フィルター条件で使用する時間変数を定義します。例: 名前が 6_month_ago の変数を yyyy-MM-dd 形式で、-6 ヶ月のオフセットで作成します。現在日付が 2021 年 8 月 12 日の場合、この変数は 2021-02-11 に解決されます。詳細については、「時間変数の構成」をご参照ください。
アーカイブテーブルマッピング(オプション)
デフォルトでは、DMS はソーステーブルと同じ名前および構造でターゲットテーブルを作成し、各アーカイブテーブルに自動的に 4 つのメタデータ列を追加します。
| 列 | 説明 |
|---|---|
| アーカイブ情報 | チケット番号およびデータのアーカイブ時刻 |
| データベース名 | ソースデータベースの名前 |
| テーブル名 | ソーステーブルの名前 |
| インスタンス ID | ソースインスタンスを DMS に登録した際に使用した ID |
これらの追加列は、元のデータに対するクエリには影響しません。
ターゲットテーブルをカスタマイズするには、[操作] 列の 編集 をクリックし、テーブル名、列、シャードキー、パーティションキーを指定します。
後続動作(オプション)
アーカイブ後のソースデータに対して実行する処理を選択します。
元のテーブルのアーカイブ済みデータをクリーンアップ(削除 - ロックなし):DMS はソーステーブルからアーカイブ済みの行を削除します。削除前に、DMS はソースデータベース内に一時バックアップテーブルを作成します — ソースデータベースにこのバックアップを保持できる十分なストレージ容量があることを確認してください。アーカイブ済みデータの正確性を検証した後、通常のデータ変更 チケットを作成して、一時バックアップテーブルを削除します。
元のテーブルのアーカイブ済みデータをクリーンアップ(削除 - ロックなし) を選択しない場合、ソーステーブルからアーカイブ済みのデータは削除されません。ストレージ領域を解放するには、通常のデータ変更チケットを使用して行を手動で削除し、ロックフリー DDL チケットでストレージを再利用してください。
アーカイブ済みデータの検証(この操作には時間がかかります):DMS はアーカイブ中にアーカイブ済みデータを検証し、テーブル名、ソースデータベース、SQL ステートメント数をチェックします。結果はチケット詳細ページでご確認いただけます。
ステップ 3:タスクの送信と監視
送信 をクリックしてチケットを送信します。
チケットが承認されると、DMS が自動的にデータアーカイブタスクを開始します。
タスクが失敗した場合、[実行] ステップの 詳細 をクリックしてログを表示します。ネットワーク障害やデータベース接続障害が原因の場合、ブレークポイントから再開 をクリックしてタスクを再開します。
アーカイブ済みデータのクエリ
方法 1:DMS を使用する
チケット詳細 ページで、基本情報 に移動し、ターゲットデータベース の横にある 表示 をクリックします。SQL コンソールタブが開きます。
左側ペインで テーブル タブに移動し、ターゲットテーブルをダブルクリックして、実行 をクリックすると、アーカイブ済みデータを表示できます。
ターゲットデータベースおよびテーブルの名前は、ソースデータベースおよびテーブルと同じです。
方法 2:Lindorm を直接使用する
LindormTable でアーカイブ済みデータをクエリします。詳細については、「データクエリ」をご参照ください。
定期スケジューリング
操作モード を 定期スケジュール に設定した場合、以下のパラメーターを構成します。
| パラメーター | 説明 |
|---|---|
| スケジューリング周期 | 繰り返し頻度: 時間、日、週、または 月。 時間 を選択した場合、時刻指定スケジューリング パラメーターを構成します。 日 を選択した場合、特定の時刻 パラメーターを構成します。 週 または 月 を選択した場合、指定時刻 および 特定の時刻 パラメーターを構成します。 |
| 時刻指定スケジューリング | スケジューリング周期 が 時間 の場合に適用されます。2 種類の方法から選択します:固定間隔で実行(開始時刻、間隔(時間単位)、終了時刻 を設定)、または特定の時刻に実行。例:開始時刻 00:00、間隔 6 時間、終了時刻 20:59 の場合、タスクは 00:00、06:00、12:00、18:00 に実行されます。 |
| 指定時刻 | スケジューリング周期 が 週 または 月 の場合に適用されます。タスクを実行する曜日または月の日付を選択します。 |
| 特定の時刻 | 指定された日にタスクを実行する時刻です。例:02:55。 |
| Cron 式 | スケジューリング設定に基づいて自動生成されます。 |
次のステップ
通常のデータ変更 — アーカイブ済みデータの検証後に、ソーステーブルからアーカイブ済みの行を削除します
ロックフリー DDL 操作の実行 — データ削除後に、ソーステーブルのストレージを再利用します
データクエリ(LindormTable) — Lindorm 内でアーカイブ済みデータを直接クエリします