flashback时,如何查询drop的表名

在对已 DROP 的表进行 FLASHBACK 恢复时。若忘记表名,可通过什么方式来获得原表名?

admin show ddl jobs

该语句只能查询最近 10 条 ddl 语句,10 条 ddl 之前的 drop,就无法查询了。

admin show ddl jobs 99999 where job_type=‘drop table’;

这种方式可以吗?

有系统视图可以查吗?

试了一下,确实可以。

admin show ddl jobs 99999 where job_type='drop table';

可通过系统表 information_schema.ddl_jobs 来查。

select db_name,table_name,job_type,table_id,start_time from information_schema.ddl_jobs;

这是存储了所有的ddl(drop)记录,如何确定哪些可以flashback?

看gc safepoint,发现drop后第一时间调大gc保留时间,能不能恢复回来就看天意了

原来不知道 还可以这么查

:+1:
information_schema.ddl_jobs

需要drop的时间大于safepoint时间,确保未被gc worker清理。在flashback这一特性上,与Oracle相比,差距较大。

是的,就依赖于safepoint时间了

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。