データ管理 (DMS) のデータベースのSQLコンソールでデータ変更操作を実行すると、偶発的な更新、削除、書き込み操作などの偶発的な操作により、データ変更が期待どおりに行えない場合があります。 この場合、DMSのデータ追跡機能を使用して、データを効率的に復元できます。 この機能は、バイナリログの保持期間内に実行されるデータ操作を追跡し、データ変更をロールバックするためのSQL文を生成するのに役立ちます。
前提条件
MySQL 5.6以降のデータベースが使用されます。
説明データ追跡機能は、ApsaraDB RDS for MySQLデータベース、PolarDB for MySQLデータベース、Elastic Compute Service (ECS) インスタンスでホストされる自己管理型MySQLデータベース、データセンターでホストされる自己管理型MySQLデータベース、他のクラウドサービスプロバイダーのMySQLデータベースなど、DMSに接続されたMySQLデータベースでサポートされています。
データベースに対してバイナリログ機能が有効になっています。
DMSのデータベースにログインしていること。
説明データベースが属するデータベースインスタンスがFlexible ManagementまたはStable Changeモードで管理されている場合、データベースにログインする必要があります。 データベースが属するデータベースインスタンスがSecurity Collaborationモードで管理されている場合、データベースにログインする必要はありません。
使用上の注意
Flexible Managementモードで管理されているデータベースインスタンスの場合、過去30分以内に実行されたDML操作を追跡できますが、ロールバックまたは再構築スクリプトをエクスポートすることはできません。
安定した変更またはセキュリティコラボレーションモードで管理されるデータベースインスタンスの場合、バイナリログの保持期間内に実行されたデータ操作を追跡し、ロールバックまたは再構築スクリプトをエクスポートできます。
追跡できるデータ操作は、データベース内のバイナリログの保持期間によって制限されます。 バイナリログの保持期間を超えてデータ操作が実行された場合、DMSはそのような操作のデータを取得できません。
データベースのバイナリログ機能が無効になっている場合、またはデータベースにログインしていない場合、DMSはデータベースのバイナリログを取得できません。
データ追跡機能では、DML操作のみを追跡できます。 この機能を使用してDDL操作を追跡することはできません。
手順
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を呼び出して、データ操作を追跡します。