すべてのプロダクト
Search
ドキュメントセンター

PolarDB:テーブルのごみ箱からテーブルを復元する

最終更新日:Jun 04, 2024

データ定義言語 (DDL) 操作はロールバックできません。 たとえば、DROP tableステートメントを使用して誤ってテーブルを削除した場合、DDL操作をロールバックできず、データが失われる可能性があります。 PolarDBは、削除されたテーブルを一時的に保存するテーブルごみ箱機能を提供します。 テーブルのごみ箱から誤って削除されたテーブルを復元できます。

背景情報

テーブルごみ箱機能の詳細については、「テーブルごみ箱」をご参照ください。

前提条件

  • クラスターは、リビジョンバージョンが8.0.1.1.2以降のPolarDB for MySQL 8.0を実行します。

  • データが誤って削除される前に、テーブルごみ箱機能が有効になっています。 テーブルごみ箱機能を有効にするには、クラスターのloose_recycle_binパラメーターをONに設定します。 パラメーター値の設定方法については、「クラスターおよびノードパラメーターの設定」をご参照ください。

  • テーブルが誤って削除されてから経過した時間が、テーブルのごみ箱の最大データ保持期間を超えていません。 loose_recycle_bin_retentionパラメーターを使用して、テーブルのごみ箱の最大データ保持期間 (秒単位) を指定できます。 パラメーター値の設定方法については、「クラスターおよびノードパラメーターの設定」をご参照ください。

手順

  1. 次のステートメントを実行して、テーブルのごみ箱内のすべてのテーブルを表示します。

    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

    テーブルがごみ箱からパージされる推定時間。

  2. 次のステートメントを実行して、テーブルのごみ箱からテーブルをすばやく復元します。

    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');