データ定義言語 (DDL) 操作はロールバックできません。 たとえば、DROP tableステートメントを使用して誤ってテーブルを削除した場合、DDL操作をロールバックできず、データが失われる可能性があります。 PolarDBは、削除されたテーブルを一時的に保存するテーブルごみ箱機能を提供します。 テーブルのごみ箱から誤って削除されたテーブルを復元できます。
背景情報
テーブルごみ箱機能の詳細については、「テーブルごみ箱」をご参照ください。
前提条件
クラスターは、リビジョンバージョンが8.0.1.1.2以降のPolarDB for MySQL 8.0を実行します。
データが誤って削除される前に、テーブルごみ箱機能が有効になっています。 テーブルごみ箱機能を有効にするには、クラスターのloose_recycle_binパラメーターをONに設定します。 パラメーター値の設定方法については、「クラスターおよびノードパラメーターの設定」をご参照ください。
テーブルが誤って削除されてから経過した時間が、テーブルのごみ箱の最大データ保持期間を超えていません。 loose_recycle_bin_retentionパラメーターを使用して、テーブルのごみ箱の最大データ保持期間 (秒単位) を指定できます。 パラメーター値の設定方法については、「クラスターおよびノードパラメーターの設定」をご参照ください。
手順
次のステートメントを実行して、テーブルのごみ箱内のすべてのテーブルを表示します。
CALL DBMS_RECYCLE.show_tables();次の応答が返されます。
+ ----------------- + ------------------------------------------------------------------------------------ + --------------------- + | スキーマ | テーブル | ORIGIN_SCHEMA | ORIGIN_TABLE | RECYCLED_TIME | PURGE_TIME | + ----------------- + ------------------------------------------------------------- --------------------- + --------------------- + | __recycle_bin__ |_innodb_1063 | product_db | t1 | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 | | __recycle_bin__ | __innodb_1064 | product_db | t2 | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 | | __recycle_bin__ |_innodb_1065 | product_db | 親 | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 | | __recycle_bin__ |_innodb_1066 | product_db | 子 | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 | + ----------------- + ------------------------------------------------------------- --------------------- + --------------------- + セットの4列 (0.00秒)次の表に、返された結果のパラメーターを示します。
パラメーター
説明
スキーマ
テーブルのごみ箱のスキーマ。
テーブル
テーブルをテーブルのごみ箱に移動した後のテーブルの名前。
ORIGIN_SCHEMA
テーブルがテーブルのごみ箱に移動される前の元のテーブルのスキーマ。
ORIGIN_TABLE
テーブルの元の名前。
RECYCLED_TIME
テーブルがテーブルのごみ箱に移動された時刻。
PURGE_TIME
テーブルがごみ箱からパージされる推定時間。
次のステートメントを実行して、テーブルのごみ箱からテーブルをすばやく復元します。
CALL DBMS_RECYCLE.restore_table('RECYCLE_TABLE' 、'DEST_DB' 、'DEST_TABLE');説明クラスターがPolarDB for MySQL 8.0のリビジョンバージョンが8.0.1.1.12以降の場合にのみ、
restore_tableステートメントを実行して、テーブルのごみ箱からテーブルをすばやく復元できます。 クラスターのバージョンを照会するには、[エンジンバージョン] トピックの [エンジンバージョンの照会] セクションを参照してください。次の表に、ステートメントのパラメーターを示します。
パラメーター
説明
RECYCLE_TABLE
テーブルのごみ箱から復元するテーブルの名前。
説明このパラメーターのみを指定すると、テーブルは削除前の状態に復元されます。
DEST_DB
テーブルを復元するターゲットデータベース。
DEST_テーブル
復元されたテーブルの新しい名前。
例:
CALL dbms_recycle.restore_table('__innodb_1063','testDB','testTable');