|
楼主 |
发表于 2017-7-17 09:59:33
|
显示全部楼层
唐老师,此处不解
SQL> select d.current_scn,f.oldest_flashback_scn from v$database d , v$flashback_database_log f;
CURRENT_SCN OLDEST_FLASHBACK_SCN
----------- --------------------
30153703 29814478
我的理解是oldest_flashback_scn ,指的是oldest_flashback_scn_time对应的时间,也就是最远可以回退的SCN
这里取决于 flashback_retention参数和闪回区可用空间
我的意思是闪回开始的时候,数据库的CURRENT_SCN为T0
我在t0,也就是当前时间做闪回,闪回以后没有resetlogs,我想反悔,回到闪回前的T0时间。
当我试图后悔,再次闪回到T0时间的时候,却不知道T0具体是多少了
因为闪回之前数据库要在mount状态,必须关闭数据库到mount状态才能进行闪回。
那么shutdown的这一刻,写硬盘做完全检查点,实际上这一刻的current_scn会写入到 checkpoint_change#中
我只要查询checkpoint_change#值,就知道关闭数据库做闪回之前的那个T0时间
那么一旦闪回到T1时间后,后悔了,想要回到T0时间,也就是没有闪回的那个状态
此时闪回到v$database.checkpoint_change# 即可。
这个办法是不是唯一的办法?可以取消闪回?
|
|