ユースケース
TencentDB for MySQLは任意にユーザーのデータを変更することは一切ありません。ユーザーによるデータ損壊はロールバック操作を行いリカバーすることが可能です。ロールバック機能を使用してTencent Cloudプラットフォームにおけるデータベース又はテーブルに対しロールバック操作を行うことが可能です。ロールバックはデータバックアップ + ログバックアップ(binlog)に基づく機能であり、リアルタイムにデータのロールバックを行うことが可能です。
TencentDB for MySQLのロールバックは定期イメージとリアルタイムトランザクションの再作成により、MySQL又はテーブルを指定した時間にロールバックし、すべてのデータのタイムスライスが一致することを保証することができます。その間、元々のデータベース又はテーブルへのアクセスは影響されません。ロールバック操作により、元のインスタンスに新しいデータベース又はテーブルが作成されます。ロールバック完了後、ユーザーは元のデータベース又はテーブル、及び新しいデータベース又はテーブルが見られます。
機能原理
ロールバック機能は、直近時点のコールドバックアップ+ 対応するbinlogバックアップ
に基づき、データベースまたはテーブルを特定の時点にロールバックできます。
- コールドバックアップシステムは毎日、MySQLのスレーブホストからデータをコールドバックアップシステムにエクスポートします。
- ロールバックを実行する際には、まずロールバックシステムから1つの一時ロールバックインスタンスをリクエストし、次にコールドバックアップシステムからコールドバックアップデータをエクスポートし、それを一時ロールバックインスタンスをインスポートします(ロールバック方式によって異なるデータをインスポートする)。
- ロールバックインスタンスとMySQLマスターインスタンスはマスター/スレーブ関係を確立し、ロールバック時間を設定し、ロールバックするデータベースまたはテーブルを指定します。
- ロールバックされたデータベースとテーブルをMySQLマスターインスタンスにコピーします。
機能の制限について
- 単一ノードクラウドディスクバージョンのインスタンスは、ロールバックがサポートされていません。
- ロールバック対象としては、マスターインスタンスがサポートされていますが、読み取り専用インスタンスとディザスタリカバリインスタンスがサポートされていません。
- 現在、指定したデータベースまたはテーブルのみをロールバックできます。ロールバックされたデータベースとテーブルはソースインスタンス(リネームする必要があります)に複製されます。インスタンス全体のロールバックがサポートされていません。
- MySQL 5.6、5.7、8.0はロールバックをサポートします。MySQL 5.5をできるだけ早く新しいバージョンに更新することをお勧めします。更新については、データベースエンジンのバージョンの更新をご参照ください。
注意事項
- ロールバック機能は自動バックアップに設定されているバックアップサイクルと保持日数に関連しており、保持日数以内、且つバックアップサイクル以内のデータバックアップ + ログバックアップ(binlog)のロールバックを提供します。バックアップサイクルの設定についてはMySQLデータの自動バックアップをご参照ください。データの安全性を確保するために、自動バックアップに設定されたバックアップサイクルとして、1週間に少なくともMySQLを2回以上バックアップするように設定してください。
- サブスクリプションのインスタンスが期限切れになっていないが、アカウントが支払い延滞している場合、バックアップ関連サービスはダウングレードされ、データベースのロールバックは禁止されます。ロールバックが必要な場合は、アカウントの残額がプラスになるまでチャージしてください。
- ロールバックしようとするデータベースまたはテーブルが存在しないか、誤って削除された場合は、コンソールでロールバックを実行する前に、TencentDBインスタンスにログインして作成する必要があります。
- ロールバック前のコールドバックアップにこのテーブルが含まれていない場合、ロールバックは失敗します。
操作手順
- MySQLコンソールにログインし、インスタンスリストで、ロールバックする1つ以上のインスタンスを選択して、その他の操作 > ロールバックを選択します。
説明:
- 1つのインスタンスのみでロールバックを実行する場合は、インスタンス管理ページに移動して、右上のロールバックをクリックします。
- 同じAPPIDでは同時に5個のロールバックタスクを提出することが可能です。
- ロールバックページで、ロールバックするデータベーステーブルを選択して、次のステップ:ロールバック時間およびデータベーステーブルの名前を設定するをクリックします。
- 普通:このインスタンスの完全バックアップをインポートして、選択したデータベース、テーブルをロールバックします。このロールバックモードが無制限であるが、ロールバック速度が遅い。
- 高速:完全バックアップ+データベースレベルのバイナリログがインポートされます。データベース間の操作があり、且つ関連データベースが同時に選択されていない場合、ロールバックが失敗することがあります。
- 超高速:完全バックアップ+テーブルレベルのバイナリログがインポートされます。テーブル間の操作があり、且つ関連テーブルが同時に選択されていない場合、ロールバックが失敗することがあります。
説明:
- 現在、名前に数字、アルファベット、アンダーライン、またはそれらの組み合わせが含まれているテーブルのみをロールバックできますが、名前に特殊文字が含まれているテーブルはサポートされていません。
- 指定したデータベース/テーブルのみをロールバックできるモードでは、同じインスタンスは500個までのデータベース又はテーブルを同時にロールバックすることができます。
- ロールバックにbinlogを実行する時、他のデータベースとテーブルの複合操作に関する場合、SQLステートメントの実行に失敗する可能性があります。
- ロールバックにbinlogを実行する時、テーブルが外部キーなどの制限に関わると、SQLステートメントの実行に失敗する可能性があります。
- ロールバック後のデータベーステーブルの名前およびロールバック時間を設定し、ロールバックをクリックします。
説明:
- インスタンスごとに1つのロールバック時間のみ設定できます。
- 一括ロールバック時間の設定を選択した場合、すべてのデータベースまたはテーブルは一括ロールバック時間を基準とします。
- 単一テーブルのロールバック時間の設定を選択した場合、データベースとテーブルはそれぞれ設定されたロールバック時間を基準とします。
- ロールバック後のデータベースまたはテーブルの名前には、64桁以内の英文字、数字、小数点(.)、ハイフン(-)、アンダーライン(_)、$のみをサポートしています。
- 送信完了後、操作ログ > ロールバックログページに戻してロールバックの進行状況を表示し、詳細の表示をクリックしてロールバックログをリアルタイムで表示できます。
- ロールバック完了後、データベース管理 > データベースリストページを選択し、元のインスタンスでロールバック後の新しいデータベーステーブルが見られます。
この記事はお役に立ちましたか?