このトピックでは、MySQL または PostgreSQL データベースから ApsaraDB RDS for MySQL インスタンスにデータをアーカイブする方法について説明します。
データアーカイブは現在パブリックプレビュー中です。
ApsaraDB RDS for MySQL へのアーカイブでサポートされているデータベース
-
MySQL データベース: ApsaraDB RDS for MySQL、PolarDB for MySQL、AnalyticDB for MySQL 3.0、PolarDB-X 2.0。
説明MySQLデータベースのアカウントには、REPLICATION CLIENT権限が必要です。
-
PostgreSQL データベース: ApsaraDB RDS for PostgreSQL および PolarDB for PostgreSQL。
使用上の注意
-
各ソーステーブルには、プライマリキーまたは一意キーが必要です。
説明ソーステーブルには、データが最後に更新された時刻を示すタイムスタンプフィールドを含めてください。このフィールドをアーカイブ用のフィルター条件として使用できます。
-
アーカイブ後にソーステーブルを自動的にクリーンアップする場合、アーカイブの失敗を防ぐため、ソースデータベースに十分なテーブルスペースがあることを確認してください。
-
DMS は、ソースデータベースと宛先データベースの両方が [セキュリティコラボレーション] または [安定的な変更] モードで管理されている場合にのみ、定期的なアーカイブタスクを実行します。単発実行タスクは、どのコントロールモードでも動作します。
説明Stable Change モードのデータベースで定期的なタスクを実行する場合、セキュリティホスティングを有効にするか、制御モードをSecurity Collaborationに変更してください。そうしないと、インスタンスのログオン有効期限が切れるため、タスクが失敗する可能性があります。詳細については、「セキュリティホスティングを有効にする」および「インスタンスの制御モードを変更する」をご参照ください。 -
現在、データアーカイブ機能は Singapore および Indonesia (Jakarta) リージョンでのみ利用できます。
課金
Data Management (DMS) のデータアーカイブ機能は無料です。 DMS の課金項目については、「課金項目 (DMS)」をご参照ください。
サンプルテーブルデータ
このトピックでは、orders_test01 テーブルを例に説明します。このテーブルには gmt_modified フィールドが含まれており、ビジネスデータの最終更新時刻を示します。
データアーカイブ
DMSコンソールV5.0 にログインします。
左上隅にある
アイコンにポインターを移動し、 を選択します。説明DMS コンソールを通常モードで使用している場合は、上部のナビゲーションバーで を選択します。
-
ページ右上隅の [Data Archiving] をクリックします。
-
新しいデータアーカイブのチケットページで、チケットパラメーターを設定し、[Submit] をクリックします。
この例では、1 つの ApsaraDB RDS for MySQL インスタンスから別のインスタンスにデータをアーカイブします。ソーステーブル orders_test01 のうち、6 か月より前のデータを宛先インスタンス内のデータベースにアーカイブします。
パラメーター
必須
説明
[タスク名]
はい
タスク名は、分かりやすく説明的な名前を使用してください。
[アーカイブ先]
はい
[ApsaraDB RDS for MySQL] を選択します。
[RDS インスタンス]
はい
宛先の ApsaraDB RDS for MySQL インスタンスを検索して選択します。
[ソースデータベース]
はい
ソースデータベースを検索して選択します。
[アーカイブ設定]
はい
アーカイブするソーステーブルを選択します。複数のソーステーブルを追加するには、[Add] をクリックします。特定のデータのみをアーカイブする場合は、フィルター条件を設定します。
例えば、6 か月より前のデータをアーカイブするには、まず
6_month_agoという名前の時間変数を設定し、その後、フィルター条件をgmt_modified <= '${6_month_ago}'に設定します。変数を設定する際は、[Time Format] を
yyyy-MM-ddに設定します。[Time Operation] では - を選択し、6 を入力してから、[Month] を選択します。[アーカイブテーブルマッピング]
いいえ
ソーステーブルを宛先テーブルにマッピングします。デフォルトでは、宛先テーブル名はソーステーブル名と同じです。
[Edit] をクリックして、宛先テーブルのテーブル名、列情報、シャーディングキー、パーティションキーを変更できます。
[変数設定]
いいえ
アーカイブのフィルター条件で、設定済みの変数を使用できます。 たとえば、
6_month_agoという名前の時間変数を yyyy-MM-dd 形式で作成してオフセットを -6 ヶ月に設定し、現在の日付が 2021 年 8 月 12 日の場合、変数${6_month_ago}は2021-02-11になります。 時間変数の設定方法の詳細については、「時間変数を設定する」をご参照ください。[実行後のアクション]
いいえ
-
[元のテーブルのアーカイブ済みデータをクリーンアップ (delete-No Lock)]:DMS は
DELETE文を使用して、ソーステーブルからアーカイブ済みデータを自動的に削除します。アーカイブ済みデータを保存するために、ソースデータベース内に一時バックアップテーブルが作成されます。ソースデータベースに十分なストレージ容量があることを確認してください。アーカイブ済みデータが正しいことを確認した後、Standard data change チケットを作成して、一時バックアップテーブルを削除してください。 -
クリーンアップオプションを選択しない場合、アーカイブ済みデータはソーステーブルに残ります。手動でデータを削除するには、次の手順を実行してください。
-
アーカイブされたデータを削除するには、通常のデータ変更チケットを作成します。詳細については、「標準データ変更」をご参照ください。
-
ストレージ使用量を最適化するには、ロックフリー変更チケットを作成します。詳細については、「ロックレス変更チケットを使用してロックレススキーマ変更を実行する」をご参照ください。
-
[実行モード]
はい
実行モードを選択します。次のオプションから選択できます:
-
[単発実行]:チケットが承認されると、アーカイブタスクは 1 回のみ実行されます。
-
[定期スケジューリング]:チケットが承認されると、タスクは設定に従って定期的に実行されます。詳細については、「定期スケジューリング」をご参照ください。
-
-
チケットを承認します。
チケットが承認されると、システムがデータアーカイブタスクを自動的に実行します。タスクが完了するまで待機してください。タスクが失敗した場合は、実行ステップの [Actions] 列にある [Details] をクリックしてタスクログを確認できます。ネットワークエラーやデータベース接続エラーなどの一時的な問題が原因でタスクが失敗した場合は、[Retry Breakpoint] をクリックして再試行できます。
説明アーカイブ済みデータは、テーブルとしてデータベースに保存されます。
-
任意:アーカイブ済みデータをクエリする。
アーカイブ済みデータをクエリする
データアーカイブタスクが正常に実行された後、現在の [Ticket Details] ページの [Basic Information] セクションで、[Destination Database] の右側にある [View] をクリックします。
SQL コンソールページで、左側のテーブルリストでターゲットテーブル名を選択してダブルクリックし、[Execute] をクリックしてアーカイブ済みデータを表示します。
説明システムは、ソースデータベースのデータベース名とテーブル名に基づいて、アーカイブインスタンス内にデータベースとテーブルを自動的に作成します。したがって、ターゲットデータベース名はソースデータベース名と同じになります。
元のデータの使用に影響を与えることなく、アーカイブされたテーブルに 4 つの新しい列が追加されます:
アーカイブ情報 (チケット ID とアーカイブ時刻)
データベース名
テーブル名
インスタンス ID (インスタンスが DMS に追加されたときに割り当てられた ID。実際のインスタンス ID に対応します)
よくある質問
Q:チケットの設定時に宛先データベースを指定しない場合、ソースデータはどこにアーカイブされますか?
A:DMS は、ソースデータベースと同じ名前の宛先データベースを自動的に作成し、アーカイブ済みデータを保存します。