FLASHBACK TABLE panda.num TO BEFORE DROP; 永远拿到 最后删的那个版本。PURGE TABLE panda.num; 永远清掉 最早进站的版本。闪回拿最新的,清除丢最旧的;想精准,直接点名 BIN$xxx。
清空回收站,创建六组数据依次删除
purge recyclebin;
create table panda.num (id int);
insert into panda.num values(1);
commit;
drop table panda.num;
create table panda.num (id int);
insert into panda.num values(2);
commit;
create table panda.num (id int);
insert into panda.num values(3);
commit;
create table panda.num (id int);
insert into panda.num values(4);
commit;
create table panda.num (id int);
insert into panda.num values(5);
commit;
假设,闪回默认找回最新一次误删;清除默认优先清掉最旧的垃圾。此时恢复,会优先恢复 DROPTIME 时间最新的数据。
select * FROM dba_recyclebin order by droptime desc;
dbmt@DAMENG:5236 SQL> select * FROM dba_recyclebin order by droptime desc;
OWNER OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME PARTITION_NAME BASE_OBJECT
----- ----------- ------------- --------- ----- ------- ------------------- ------------------- -------------- -----------
PANDA BIN$1546$0 NUM DROP TABLE DATA 2025-10-31:14:49:31 2025-10-31:14:51:12 NULL 1546
PANDA BIN$1545$0 NUM DROP TABLE DATA 2025-10-31:14:48:31 2025-10-31:14:49:25 NULL 1545
PANDA BIN$1544$0 NUM DROP TABLE DATA 2025-10-31:14:47:29 2025-10-31:14:48:30 NULL 1544
PANDA BIN$1543$0 NUM DROP TABLE DATA 2025-10-31:14:46:39 2025-10-31:14:47:23 NULL 1543
PANDA BIN$1542$0 NUM DROP TABLE DATA 2025-10-31:14:45:24 2025-10-31:14:45:31 NULL 1542
已用时间: 1.367(毫秒). 执行号:23857.
第一次闪回drop恢复的是最后删除的num里面存放数据 5
dbmt@DAMENG:5236 SQL> flashback table panda.num to before drop;
已用时间: 39.768(毫秒). 执行号:23858.
dbmt@DAMENG:5236 SQL> select * from panda.num;
ID
-----------
5
已用时间: 12.450(毫秒). 执行号:23859.
第二次闪回drop恢复的是 4,避免重名恢复成 num4 ,第三次闪回drop恢复的是 3,避免重名 恢复成 num3
dbmt@DAMENG:5236 SQL> flashback table panda.num to before drop rename to num4;
已用时间: 48.968(毫秒). 执行号:23860.
dbmt@DAMENG:5236 SQL> dbmt@DAMENG:5236 SQL> select * from panda.num4;
ID
-----------
4
已用时间: 11.135(毫秒). 执行号:23861.
dbmt@DAMENG:5236 SQL> select * FROM dba_recyclebin order by droptime desc;
OWNER OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME PARTITION_NAME BASE_OBJECT
----- ----------- ------------- --------- ----- ------- ------------------- ------------------- -------------- -----------
PANDA BIN$1544$0 NUM DROP TABLE DATA 2025-10-31:14:47:29 2025-10-31:14:48:30 NULL 1544
PANDA BIN$1543$0 NUM DROP TABLE DATA 2025-10-31:14:46:39 2025-10-31:14:47:23 NULL 1543
PANDA BIN$1542$0 NUM DROP TABLE DATA 2025-10-31:14:45:24 2025-10-31:14:45:31 NULL 1542
已用时间: 2.245(毫秒). 执行号:23862.
dbmt@DAMENG:5236 SQL> flashback table panda.num to before drop rename to num3;
已用时间: 47.288(毫秒). 执行号:23863.
dbmt@DAMENG:5236 SQL>
dbmt@DAMENG:5236 SQL> select * from panda.num3;
ID
-----------
3
已用时间: 12.394(毫秒). 执行号:23865.
dbmt@DAMENG:5236 SQL> select * FROM dba_recyclebin order by droptime desc;
OWNER OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME PARTITION_NAME BASE_OBJECT
----- ----------- ------------- --------- ----- ------- ------------------- ------------------- -------------- -----------
PANDA BIN$1543$0 NUM DROP TABLE DATA 2025-10-31:14:46:39 2025-10-31:14:47:23 NULL 1543
PANDA BIN$1542$0 NUM DROP TABLE DATA 2025-10-31:14:45:24 2025-10-31:14:45:31 NULL 1542
已用时间: 1.301(毫秒). 执行号:23864.
清除的是最早删除的那个 num 表,第一次清除的应该是最早删除,也就是drop时间是 2025-10-31:14:45:31的
dbmt@DAMENG:5236 SQL> purge table panda.num; <<<< 必须在自己用户下
purge table panda.num;
[-2106]:无效的表或视图名[BIN$1542$0].
已用时间: 7.944(毫秒). 执行号:0.
panda@DAMENG:5236 SQL> select * FROM dba_recyclebin order by droptime desc;
OWNER OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME PARTITION_NAME BASE_OBJECT
----- ----------- ------------- --------- ----- ------- ------------------- ------------------- -------------- -----------
PANDA BIN$1543$0 NUM DROP TABLE DATA 2025-10-31:14:46:39 2025-10-31:14:47:23 NULL 1543
PANDA BIN$1542$0 NUM DROP TABLE DATA 2025-10-31:14:45:24 2025-10-31:14:45:31 NULL 1542 <<<< 这条数据最早先被清楚
已用时间: 17.162(毫秒). 执行号:24905.
panda@DAMENG:5236 SQL>
panda@DAMENG:5236 SQL> purge table panda.num;
已用时间: 73.420(毫秒). 执行号:24906.
panda@DAMENG:5236 SQL>
panda@DAMENG:5236 SQL> select * FROM dba_recyclebin order by droptime desc;
OWNER OBJECT_NAME ORIGINAL_NAME OPERATION TYPE TS_NAME CREATETIME DROPTIME PARTITION_NAME BASE_OBJECT
----- ----------- ------------- --------- ----- ------- ------------------- ------------------- -------------- -----------
PANDA BIN$1543$0 NUM DROP TABLE DATA 2025-10-31:14:46:39 2025-10-31:14:47:23 NULL 1543
已用时间: 1.311(毫秒). 执行号:24907.
| 操作 | 实际对象(按 DROPTIME) | 结果 |
|---|---|---|
| 第1次闪回 | 2025-10-31 14:51:12(最新) | 得到值 5 |
| 第2次闪回 | 2025-10-31 14:49:25(次新) | 得到值 4 |
| 第1次清除 | 2025-10-31 14:45:31(最早) | 被清理 |
FLASHBACK TABLE "BIN$1543$0" TO BEFORE DROP; -- 精确找回任意版本
PURGE TABLE "BIN$1546$0"; -- 精确清掉任意版本
PURGE RECYCLEBIN; -- 当前用户
PURGE DBA_RECYCLEBIN; -- SYSDBA 清所有
社区地址:
https://eco.dameng.com
文章
阅读量
获赞
