説明
このステートメントは、テナント、データベース、テーブルなどの削除されたデータベースオブジェクトをごみ箱から復元するために使用されます。
デフォルトでは、ごみ箱は有効になっており、この動作はシステム変数recyclebinによって制御されます。ごみ箱が有効かどうかは、SHOW VARIABLES LIKE 'recyclebin'ステートメントで確認できます。システム変数recyclebinの詳細については、「リファレンスガイド」のシステム変数セクションを参照してください。
obclient> SHOW VARIABLES LIKE 'recyclebin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| recyclebin | ON |
+---------------+-------+
1 row in set
ごみ箱が無効な場合は、SET recyclebin = onステートメントを使用してごみ箱を有効にできます。ごみ箱内のデータベースオブジェクトは実際には削除されておらず、引き続きリソースを占有します。完全に削除する必要がある場合は、PUREGE recyclebinステートメントを実行してごみ箱をクリーンアップできます。
テーブルを削除すると、そのテーブルに属するインデックスも同時に削除されます。FLASHBACKステートメントを使用してテーブルを復元すると、テーブル上のインデックスも復元されます。特に、テーブルから直接削除されたインデックスはごみ箱には入らず、OceanBaseデータベースはごみ箱から直接インデックスを回収することもサポートしていません。
構文
FLASHBACK {TENANT | DATABASE | TABLE} object_name TO BEFORE DROP [RENAME TO flashback_object_name];
flashback_object_name:
tenant_name
| database_name
| database_name.table_name
パラメータの説明
| パラメータ | 説明 |
|---|---|
| object_name | 復元するデータベースオブジェクトのゴミ箱内での名前を指定します。直接名前を指定することはサポートされていません。 データベースオブジェクトを復元する際には、そのデータベースに属するテーブルやインデックスなどのデータベースオブジェクトも一緒に復元されます。 SHOW RECYCLEBIN ステートメントを使用して、復元するデータベースのゴミ箱内での名前を確認できます。 |
| RENAME to | 復元時にデータベースオブジェクトをリネームします。 |
| tenant_name | テナントの復元後の名前。 |
| database_name | データベースの復元後の名前 |
| database_name.table_name | テーブルの復元後の名前。ここで、database_name はテーブルが復元後に属するデータベースを指定するために使用されます。 |
例
ごみ箱から削除されたテナント
tenant1を復元します。obclient> FLASHBACK TENANT tenant1 TO BEFORE DROP; Query OK, 0 rows affectedごみ箱から削除されたデータベースを復元します。
obclient> CREATE DATABASE da; Query OK, 1 row affected obclient> DROP DATABASE da; Query OK, 0 rows affected obclient> SHOW RECYCLEBIN; +--------------------------------------------------+---------------+----------+----------------------------+ | OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | +--------------------------------------------------+---------------+----------+----------------------------+ | __recycle_$_1_1099511628829_18446744073709551615 | da | DATABASE | 2017-10-20 17:36:15.838771 | +--------------------------------------------------+---------------+----------+----------------------------+ 1 row in set obclient> FLASHBACK DATABASE __recycle_$_1_1099511628829_18446744073709551615 TO BEFORE DROP; Query OK, 0 rows affectedごみ箱から削除されたテーブル
t1を復元し、t2に名前を変更した後、インデックスの復元状況を確認します。obclient> CREATE TABLE t1(c1 INT PRIMARY KEY,c2 INT,c3 INT); Query OK, 0 rows affected obclient> ALTER TABLE t1 ADD INDEX ind2 (c2) USING BTREE; Query OK, 0 rows affected obclient> ALTER TABLE t1 ADD INDEX ind3 (c3) USING BTREE; Query OK, 0 rows affected obclient> SHOW INDEX FROM t1; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+ | t1 | 0 | PRIMARY | 1 | c1 | A | NULL | NULL | NULL | | BTREE | available | | YES | | t1 | 1 | ind2 | 1 | c2 | A | NULL | NULL | NULL | YES | BTREE | available | | YES | | t1 | 1 | ind3 | 1 | c3 | A | NULL | NULL | NULL | YES | BTREE | available | | YES | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+ 3 rows in set obclient> ALTER TABLE t1 DROP INDEX ind2; Query OK, 0 rows affected obclient> SHOW RECYCLEBIN; Empty set obclient> DROP TABLE t1; Query OK, 0 rows affected obclient> SHOW RECYCLEBIN; +---------------------------------+--------------------------+-------+----------------------------+ | OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | +---------------------------------+--------------------------+-------+----------------------------+ | __recycle_$_10_1628157070059520 | __idx_1099511677777_ind3 | INDEX | 2021-08-05 17:51:10.060761 | | __recycle_$_10_1628157070067712 | t1 | TABLE | 2021-08-05 17:51:10.068062 | +---------------------------------+--------------------------+-------+----------------------------+ 2 rows in set obclient> FLASHBACK TABLE __recycle_$_10_1628157070067712 TO BEFORE DROP RENAME TO t2; obclient> SHOW INDEX FROM t2; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+ | t2 | 0 | PRIMARY | 1 | c1 | A | NULL | NULL | NULL | | BTREE | available | | YES | | t2 | 1 | ind3 | 1 | c3 | A | NULL | NULL | NULL | YES | BTREE | available | | YES | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+ 2 rows in set