ApsaraDB RDS for MySQL インスタンスのデータを変更すると、予期しない更新、削除、書き込みなどの予期しない操作が原因で、データ例外が発生する可能性があります。例外が発生した場合、データ管理 (DMS) のデータ追跡機能を使用して、バイナリログ保存期間内の指定された時間範囲の変更レコードを特定し、ロールバックスクリプトを生成して、変更前の状態にデータを迅速に復旧できます。データ追跡機能は、完全データ復旧および個々のデータベースとテーブルの復旧機能よりも効率的で使いやすくなっています。データ追跡機能は、日常の O&M におけるデータ復旧の効率を大幅に向上させます。
データ復旧方法の詳細については、「データ復旧方法の概要」をご参照ください。
データ追跡機能と代替復旧方法の違い
復旧方法 | 復旧の原則 | 請求ルール | 復旧速度 | 復旧可能な時間範囲 |
データ追跡 | データ追跡機能は、指定された時間範囲に対して行われたすべての更新を特定し、更新をロールバックするために使用される文を生成し、生成された文をスクリプトに集約するために使用されます。次に、データ変更チケットを送信して、RDS インスタンスでスクリプトを実行します。 |
| 高速 | 復旧可能な時間範囲は、コントロールモードとバイナリログ保存期間によって異なります。
|
個々のデータベースとテーブルの標準および高速復旧機能がサポートされています。特定の個々のデータベースとテーブルのデータを新しい RDS インスタンスまたは既存の RDS インスタンスに復旧できます。既存の RDS インスタンスにデータを復旧すると、プライマリ/セカンダリスイッチオーバーがトリガーされます。 |
| 高速復旧: 高速 標準復旧: 低速 | リストア可能な時間範囲は、ログバックアップの保持期間、および個々のデータベースとテーブルのリストア機能が有効になっている時点によって異なります。ログバックアップの保持期間は最大 730 日です。 | |
元の RDS インスタンスのすべてのデータを新しい RDS インスタンスに復旧し、新しい RDS インスタンスのデータを確認してから、新しい RDS インスタンスから元の RDS インスタンス、既存の RDS インスタンス、またはオンプレミスデータベースインスタンスにデータを移行します。 |
| 低速 | 復元可能な時間範囲は、ログバックアップの保持期間とデータバックアップの保持期間によって異なります。復元可能な時間範囲は最大 730 日です。 |
前提条件
MySQL 5.6 以降のデータベースが使用されています。
データベースのバイナリロギング機能が有効になっています。
DMS にデータベースにログインしています。
説明データベースが属するデータベースインスタンスが柔軟な管理モードまたは安定的な変更モードで管理されている場合は、データベースにログインする必要があります。データベースが属するデータベースインスタンスがセキュリティコラボレーションモードで管理されている場合は、データベースにログインする必要はありません。
使用上の注意
柔軟な管理モードで管理されているデータベースインスタンスの場合、過去 30 分以内に行われた DML 操作を追跡できますが、ロールバックまたは再構築スクリプトをエクスポートすることはできません。
安定的な変更またはセキュリティコラボレーションモードで管理されているデータベースインスタンスの場合、バイナリログの保存期間内に行われたデータ操作を追跡し、ロールバックまたは再構築スクリプトをエクスポートできます。
追跡できるデータ操作は、データベースのバイナリログの保存期間によって制限されます。バイナリログの保存期間を超えてデータ操作が実行された場合、DMS はそのような操作のデータを取得できません。
データベースのバイナリロギング機能が無効になっている場合、またはデータベースにログインしていない場合、DMS はデータベースのバイナリログを取得できません。
データ追跡機能では、DML 操作のみを追跡できます。この機能を使用して DDL 操作を追跡することはできません。
手順
- DMS コンソール V5.0 にログインします。
上部のナビゲーションバーで、 をクリックします。
説明シンプルモードで DMS コンソールを使用する場合は、コンソールの左上隅にある
アイコンにポインターを移動し、 を選択します。
データ追跡チケットページの右上隅にある [データ追跡] をクリックします。
データ追跡作業指示アプリケーション ページで、次の表に示すパラメーターを設定します。
パラメーター
説明
タスク名
今後の検索を容易にし、承認者がチケットの目的を理解するのに役立つ名前を入力します。
ライブラリ名
特定のデータベースインスタンス内のデータベースを選択します。 DMS でデータベースを管理する権限が必要です。フィールドにデータベース名のプレフィックスを入力し、一致する結果からデータベースを選択できます。
[テーブル名]
データ操作を追跡する 1 つ以上のテーブルを選択します。
追跡タイプ
追跡する操作のタイプを 1 つ以上選択します。
[挿入]:
INSERT
文が生成され、INSERT 操作がロールバックされます。[更新]:
UPDATE
文が生成され、UPDATE 操作がロールバックされます。[削除]:
DELETE
文が生成され、DELETE 操作がロールバックされます。
時間範囲
データ操作を追跡する時間範囲を指定します。
データベースが属するデータベースインスタンスが柔軟な管理モードで管理されている場合、過去 30 分以内に行われたデータ操作のみを追跡できます。
データベースが属するデータベースインスタンスが安定的な変更またはセキュリティコラボレーションモードで管理されている場合、バイナリログの保存期間内に行われたデータ操作を追跡できます。ただし、1 つのチケットの時間範囲は最大 48 時間に制限されています。 48 時間を超える時間範囲でデータ操作を追跡する場合は、時間範囲を分割して複数のチケットを送信します。
関係者の変更
チケットに関係する利害関係者を選択します。選択された利害関係者とチケット承認者のみがチケットの詳細を表示できます。
申請書の送信 をクリックします。 DMS はデータベースのバイナリログを自動的に取得します。
バイナリログが取得されると、チケットは承認ステップに進みます。
チケットが承認されるまで待ちます。
説明デフォルトでは、データベースのデータ追跡チケットは、データベースのデータベース管理者 (DBA) によって承認されます。データ追跡チケットの承認ルールの詳細については、「データ追跡」をご参照ください。
チケットが承認されたら、DMS がバイナリログをダウンロードして解析するまで待ちます。
バイナリログがダウンロードされて解析されたら、[追跡タイプ]、[テーブル名]、[列名] などのフィルター条件を指定して、ロールバックするデータの変更をフィルターできます。データレコードを選択し、ロールバックスクリプトのエクスポート をクリックします。ロールバックスクリプトがコンピューターにダウンロードされます。
説明データレコードを見つけて [詳細の表示] をクリックすると、データレコードの詳細を表示し、ロールバック文をコピーできます。
次のタイプの操作を追跡できます: [挿入]、[更新]、[削除]。
次の手順: ロールバック SQL 文を実行する
ロールバックスクリプトがエクスポートされたら、ロールバック文の影響を受ける可能性のあるデータ行数を見積もり、次のいずれかの方法を選択してロールバック文を実行できます。
影響を受けるデータ行数が少ない場合は、SQL コンソールでロールバック文を実行できます。
影響を受けるデータ行数が多い場合は、通常のデータ変更チケットを送信し、エクスポートされたロールバックスクリプトを添付ファイルとしてチケットにアップロードできます。このようにして、SQL 文を選択したデータベースに適用できます。詳細については、「通常のデータ変更」をご参照ください。
関連操作
次の API 操作を呼び出して、データ操作を追跡できます。