在Oracle 11g数据库的日常使用中,误删表、误修改数据这类操作失误时有发生,传统的备份恢复流程往往耗时较长,而数据库自带的闪回和回收站功能,能更高效地解决这类问题,减少数据丢失带来的风险。

Oracle 11g回收站功能介绍
回收站是Oracle 11g中用于保存被删除的数据库对象的逻辑区域,当用户执行DROP TABLE操作时,表并不会被立即彻底删除,而是会被移动到回收站中,相关的索引、约束等依赖对象也会被一并保存。只要回收站没有被清空,就可以快速恢复被删除的表。
回收站常用操作
- 查看回收站中的对象:可以通过查询
USER_RECYCLEBIN或者DBA_RECYCLEBIN数据字典来查看当前用户或者所有用户的回收站内容。 - 恢复回收站中的表:使用
FLASHBACK TABLE 表名 TO BEFORE DROP语句即可恢复被删除的表,如果回收站中存在同名的表,还可以指定回收站中的对象名来恢复。 - 清空回收站:可以使用
PURGE RECYCLEBIN清空当前用户的回收站,或者使用PURGE DBA_RECYCLEBIN清空所有用户的回收站,也可以直接删除回收站中的指定对象。
回收站操作代码示例
-- 删除测试表,表会进入回收站 DROP TABLE test_table; -- 查看当前用户的回收站 SELECT object_name, original_name, type FROM user_recyclebin; -- 恢复被删除的test_table表 FLASHBACK TABLE test_table TO BEFORE DROP; -- 恢复时如果回收站有多个同名表,指定回收站对象名恢复 FLASHBACK TABLE "BIN$1234567890==$0" TO BEFORE DROP RENAME TO test_table_old; -- 清空当前用户回收站 PURGE RECYCLEBIN;
Oracle 11g闪回功能介绍
闪回功能是基于Oracle的撤销数据(Undo Data)实现的,能够让用户查看数据库过去某个时间点的状态,或者将数据恢复到过去某个时间点,不需要依赖物理备份,恢复速度更快。Oracle 11g中常用的闪回功能包括闪回查询、闪回表、闪回版本查询、闪回事务查询等。
常用闪回功能说明
| 闪回功能 | 作用 | 依赖条件 |
|---|---|---|
| 闪回查询 | 查询过去某个时间点的表数据 | 撤销数据未被覆盖,undo_retention参数设置合理 |
| 闪回表 | 将表的数据恢复到过去某个时间点 | 表启用了行移动(ROW MOVEMENT) |
| 闪回版本查询 | 查看某段时间内表中数据的所有变更版本 | 撤销数据未被覆盖 |
| 闪回事务查询 | 查看某个事务的所有操作,用于追溯数据变更来源 | 撤销数据未被覆盖,flashback_transaction_query视图可访问 |
闪回功能操作代码示例
-- 闪回查询:查看1小时前的test_table表数据
SELECT * FROM test_table AS OF TIMESTAMP SYSDATE - 1/24;
-- 启用表的行移动功能,为闪回表做准备
ALTER TABLE test_table ENABLE ROW MOVEMENT;
-- 闪回表:将test_table表恢复到1小时前的状态
FLASHBACK TABLE test_table TO TIMESTAMP SYSDATE - 1/24;
-- 闪回版本查询:查看test_table表最近1小时内的数据变更版本
SELECT versions_starttime, versions_endtime, versions_xid, id, name
FROM test_table
VERSIONS BETWEEN TIMESTAMP SYSDATE - 1/24 AND SYSDATE;
-- 闪回事务查询:根据事务ID查看对应事务的操作内容
SELECT xid, operation, table_name, sql_undo
FROM flashback_transaction_query
WHERE xid = HEXTORAW('03000F001A010000');注意事项
使用回收站功能时需要注意,如果删除表时使用了DROP TABLE 表名 PURGE语法,表会直接被彻底删除,不会进入回收站,无法再通过回收站恢复。而闪回功能的可用时间范围受undo_retention参数影响,该参数设置了撤销数据的保留时间,如果超过这个时间,撤销数据被覆盖,就无法再使用闪回功能查询或恢复对应时间点的数据。另外,闪回表操作会修改表的数据,执行前建议先确认恢复的时间点是否正确,避免造成新的数据问题。
Oracle_11g闪回回收站数据恢复修改时间:2026-06-06 21:26:32