云数据库 TAURUSDB-TaurusDB表回收站:使用示例
使用示例
表回收站功能提供以下命令用于操作回收站中暂存的表。
- 查看回收站中暂存的表
call dbms_recyclebin.show_tables();
返回结果格式如下:
+----------------+--------------------------+---------------+--------------+---------------------+---------------------+ | SCHEMA | TABLE | ORIGIN_SCHEMA | ORIGIN_TABLE | RECYCLED_TIME | PURGE_TIME | +----------------+--------------------------+---------------+--------------+---------------------+---------------------+ | __recyclebin__ | __innodb_test_db_t1_1069 | test_db | t1 | 2024-09-29 08:48:27 | 2024-10-02 08:48:27 | | __recyclebin__ | __innodb_test_db_t2_1070 | test_db | t2 | 2024-09-29 08:48:44 | 2024-10-02 08:48:44 | +----------------+--------------------------+---------------+--------------+---------------------+---------------------+
表3 字段说明 字段
说明
SCHEMA
回收站中表的当前库名。
TABLE
回收站中表的当前表名。
ORIGIN_SCHEMA
移入回收站前的原库名。
ORIGIN_TABLE
移入回收站前的原表名。
RECYCLED_TIME
表被移入回收站的时间。
PURGE_TIME
预计表被自动清理的时间。
- 恢复回收站中的表
- 手动创建与原表表结构相同的新表后,通过INSERT INTO ... SELECT ...语句将表中数据恢复到新表
查询回收站中原库名为db,原表名为t1的表:
call dbms_recyclebin.show_tables();
返回结果格式如下:
+----------------+--------------------------+---------------+--------------+---------------------+---------------------+ | SCHEMA | TABLE | ORIGIN_SCHEMA | ORIGIN_TABLE | RECYCLED_TIME | PURGE_TIME | +----------------+--------------------------+---------------+--------------+---------------------+---------------------+ | __recyclebin__ | __innodb_test_db_t1_1069 | db | t1 | 2024-09-29 08:48:27 | 2024-10-02 08:48:27 | | __recyclebin__ | __innodb_test_db_t2_1070 | db | t2 | 2024-09-29 08:48:44 | 2024-10-02 08:48:44 | +----------------+--------------------------+---------------+--------------+---------------------+---------------------+
通过以上查询结果,确定需要恢复的表在回收站中的当前表名为__innodb_test_db_t1_1069,执行INSERT INTO ... SELECT ...命令,将回收站中表__innodb_test_db_t1_1069的数据恢复到新创建的表t1中:
INSERT INTO `db`.`t1` SELECT * FROM `__recyclebin__`.`__innodb_test_db_t1_1069`;
通过INSERT INTO ... SELECT ...语句进行恢复不会移除回收站中暂存的数据,支持多次恢复,且生成的Binlog兼容性最佳。如实例存在基于Binlog的复制链路(如DRS 数据复制服务 、灾备实例),请避免使用call dbms_recyclebin.restore_table命令对回收站中的表进行恢复,建议使用INSERT INTO ... SELECT ...对数据进行恢复,降低由于目标端不支持表回收站功能、用户权限不足等原因导致复制中断的风险。
- 恢复回收站中的表到原库原表
call dbms_recyclebin.restore_table('TABLE_NAME');
表4 参数说明 参数名称
说明
TABLE_NAME
回收站中表的当前表名。
示例:
将回收站中表__innodb_test_db_t1_1069恢复到原库test_db,并保留原表名t1。
call dbms_recyclebin.restore_table('__innodb_test_db_t1_1069');
- 恢复回收站中的表到指定库的指定表
call dbms_recyclebin.restore_table('TABLE_NAME', 'DEST_DB', 'DEST_TABLE');
表5 参数说明 参数名称
说明
TABLE_NAME
回收站中表的当前表名。
DEST_DB
指定表恢复到的数据库。
DEST_TABLE
指定表恢复后的表名。
示例:
将回收站中表__innodb_test_db_t1_1069恢复到指定库test_db2,并指定恢复后的表名为t3。
call dbms_recyclebin.restore_table('__innodb_test_db_t1_1069','test_db2','t3');
- 执行恢复操作前请确保目标库存在,否则恢复命令将执行失败。
- 执行恢复操作前请确认目标库下不存在同名表,否则恢复将执行失败。
- 表回收站相关命令指定的引号内的库名、表名前后不允许有多余空格。
- 手动创建与原表表结构相同的新表后,通过INSERT INTO ... SELECT ...语句将表中数据恢复到新表
- 云硬盘回收站是什么意思_云盘回收站在哪_云盘回收站保存多久
- 数据治理中心_数据架构_数据架构使用示例-华为云
- 数据治理中心_数据开发_数据开发示例_使用教程-华为云
- GaussDB的研发历程_GaussDB产品动态_高斯数据库研发历程-华为云
- GaussDB发展计划_GaussDB产品动态_高斯数据库发展计划-华为云
- 分布式云原生集合示例_华为云分布式云原生_华为云UCS集合示例
- GaussDB版本_GaussDB数据库版本_高斯数据库版本-华为云
- 云数据库RDS for MySQL数据恢复_数据恢复_表级恢复
- VPC路由表_如何使用VPC路由表_控制路由-华为云
- GaussDB架构_GaussDB分布式形态_高斯数据库架构-华为云