データ管理 (DMS) のデータベースのSQLコンソールでデータ変更操作を実行すると、偶発的な更新、削除、書き込み操作などの偶発的な操作により、データ変更が期待どおりに行えない場合があります。 この場合、DMSのデータ追跡機能を使用して、データを効率的に復元できます。 この機能は、バイナリログの保持期間内に実行されるデータ操作を追跡し、データ変更をロールバックするためのSQL文を生成するのに役立ちます。
背景情報
ApsaraDB RDS for MySQLインスタンスのデータが、偶発的な更新、削除、書き込み操作などの偶発的な操作によって期待値を満たさない場合は、data Management (DMS) のデータ追跡機能を使用してRDSインスタンスのデータを復元できます。 この機能は、他の代替復元方法と比較して、より効率的な方法でデータを復元する方法を提供します。 代替復元方法の詳細については、「完全データの復元」および「個々のデータベースとテーブルの復元」をご参照ください。
データ復元方法の詳細については、「データ復元方法の概要」をご参照ください。
データ追跡機能と他の代替復元方法の違い
復元方法 | ワークフロー | 課金 | スピード | 復元可能な時間範囲 |
データ追跡 | DMSのデータ追跡機能を使用して、指定された時間範囲にわたって行われたすべての更新を識別し、更新をロールバックするために使用されるステートメントを生成し、生成されたステートメントをスクリプトに集約します。 次に、RDSインスタンスでスクリプトを実行するためのチケットを起票します。 詳細については、「定期的なデータ変更の実行」をご参照ください。 |
| 速い | 復元可能な時間範囲は、制御モードとバイナリログの保存期間によって異なります。
|
元のRDSインスタンスのすべてのデータを新しいRDSインスタンスに復元し、新しいRDSインスタンスのデータを確認してから、新しいRDSインスタンスから元のRDSインスタンス、既存のRDSインスタンス、またはオンプレミスデータベースインスタンスにデータを移行します。 |
| 低 | 復元可能な時間範囲は、ログバックアップの保持期間とデータバックアップの保持期間によって異なります。 復元可能な時間範囲は最大730日です。 これらの保持期間を指定する方法の詳細については、「ApsaraDB RDS For MySQLインスタンスの自動バックアップ機能の有効化」をご参照ください。 | |
個々のデータベース /テーブルの復元機能を有効にします。 次に、指定された個々のデータベースとテーブルのデータを新しいRDSインスタンスまたは既存のRDSインスタンスに復元します。 既存のRDSインスタンスにデータを復元すると、プライマリ /セカンダリの切り替えがトリガーされます。 |
| 低 | 復元可能な時間範囲は、ログバックアップの保持期間と、[個々のデータベース /テーブルの復元] 機能が有効になっている時点によって異なります。 ログバックアップの保持期間は最大730日です。 詳細については、「ApsaraDB RDS For MySQLインスタンスの個々のデータベースとテーブルのバックアップ」をご参照ください。 |
前提条件
MySQL 5.6以降のデータベースが使用されます。
データベースに対してバイナリログ機能が有効になっています。
- データベースにログオンしました。 説明 データベースインスタンスがFlexible ManagementまたはStable Changeモードで管理されている場合、データベースインスタンスにログインする必要があります。 データベースインスタンスがSecurity Collaborationモードで管理されている場合、データベースインスタンスにログインする必要はありません。 制御モードの詳細については、「制御モード」をご参照ください。
使用上の注意
フレキシブル管理モード: 過去30分以内に実行されたDML操作のバイナリログにアクセスできます。 スクリプトのエクスポート、ロールバック、および再構築はできません。
安定した変更モード: DML操作のバイナリログにアクセスするときに時間制限はありません。 スクリプトはバッチでダウンロードできます。
手順
- にログインします。 DMSコンソールV5.0
上部のナビゲーションバーで、 を選択します。
説明DMSコンソールをシンプルモードで使用する場合は、DMSコンソールの左上隅にあるアイコンの上にポインターを移動し、
を選択します。Data Tracking Ticketページの右上隅にある [Data Tracking] をクリックします。
データ追跡作業指示アプリケーション ページで、次の表に示すパラメーターを設定します。
パラメーター
説明
タスク名
将来の検索を容易にし、承認者がチケットの目的を理解するのに役立つ名前を入力します。
ライブラリ名
特定のデータベースインスタンスのデータベースを選択します。 DMSでデータベースを管理する権限が必要です。 フィールドにデータベース名のプレフィックスを入力し、一致した結果からデータベースを選択できます。
テーブル名
データ操作を追跡する1つ以上のテーブルを選択します。
追跡タイプ
追跡する操作の種類を1つ以上選択します。
Insert: INSERT操作をロールバックするために
DELETE
ステートメントが生成されます。Update:
UPDATE
ステートメントは、UPDATE操作をロールバックするために生成されます。Delete:
INSERT
ステートメントは、DELETE操作をロールバックするために生成されます。
時間範囲
データ操作を追跡する時間範囲を指定します。
データベースが属するデータベースインスタンスがFlexible Managementモードで管理されている場合、過去30分以内に実行されたデータ操作のみを追跡できます。
データベースが属するデータベースインスタンスが安定した変更またはセキュリティコラボレーションモードで管理されている場合、バイナリログの保持期間内に実行されたデータ操作を追跡できます。 ただし、時間範囲は1枚のチケットで最大48時間に制限されています。 48時間を超える時間範囲でデータ操作を追跡する場合は、時間範囲を分割して複数のチケットを送信します。
関係者の変更
チケットに関係する利害関係者を選択します。 選択した利害関係者とチケット承認者のみがチケットの詳細を表示できます。
申請書の送信 をクリックします。 DMSは、データベースのバイナリログを自動的に取得します。
バイナリログを取得した後、チケットは承認ステップに入ります。
チケットが承認されるまで待ちます。
説明既定では、データベースのデータ追跡チケットは、データベースのデータベース管理者 (DBA) によって承認されます。 データ追跡チケットの承認ルールの詳細については、「データ追跡」をご参照ください。
チケットが承認されたら、DMSがバイナリログをダウンロードして解析するのを待ちます。
バイナリログをダウンロードして解析した後、[トラックタイプ] 、[テーブル名] 、[列名] などのフィルタ条件を指定して、ロールバックするデータ変更をフィルタリングできます。 データレコードを選択し、ロールバックスクリプトのエクスポート をクリックします。 ロールバックスクリプトがコンピュータにダウンロードされます。
説明データレコードを見つけて [詳細の表示] をクリックすると、データレコードの詳細を表示し、ロールバック文をコピーできます。
INSERT、UPDATE、DELETEの操作を追跡できます。
次のステップ
ロールバックスクリプトをエクスポートした後、ロールバック文の影響を受けるデータ行数を見積もり、次のいずれかの方法を選択してロールバック文を実行できます。
影響を受けるデータ行の数が少ない場合は、SQLコンソールでロールバック文を実行できます。 詳細については、「SQLConsoleタブのデータベースの管理」をご参照ください。
多数のデータ行が影響を受ける場合は、通常のデータ変更チケットを送信し、エクスポートされたロールバックスクリプトをデータ変更用のSQL文としてアップロードできます。 このようにして、SQL文を選択したデータベースに適用できます。 詳細については、「定期的なデータ変更の実行」をご参照ください。
次のAPIを呼び出して、データ操作を追跡します。