$ awk 'BEGIN{pre="computer0-"; p[1]=pre"1 "; p[2]=pre"10"; p[3]=pre"7"}
{for(i=1;i<4;i++)
if($0~p[i])
{print p[i], $0;
next}
}' file | column -t
到还原点失败。以下代码仅在某些步骤之间有睡眠时才有效。
FLASHBACK TABLE
为什么需要延迟并且有办法消除它?
答案 0 :(得分:7)
这种奇怪可能是由SMON
进程引起的,该进程负责跟踪闪回查询所依赖的SCN和时间戳。有一个映射表SYS.SMON_SCN_TIME
,每5分钟插入一条新记录SMON
。
在FLASHBACK TABLE
内部执行命令INSERT /*+ APPEND */ into SYS_TEMP_FBT SELECT /*+ FBTSCAN FULL(S) PARALLEL(S, DEFAULT) */ :1, :2, :3, rowid, SYS_FBT_INSDEL FROM "<schema>."TEST_TABLE" as of SCN :4 S
(注意在同一模式中创建表SYS_TEMP_FBT
),该命令使用此映射。
直到Oracle 10.2,您需要等待整整5分钟才能在新的/更改的对象上成功执行FLASHBACK查询。在11.1中,引入了TIM_SCN_MAP
列以使映射更精细。最多100个映射存储在一个值中,这使得SCN映射的时间戳大约精确到3秒。
我尝试了很多东西,但我不认为你可以做任何事情,但是等待大约3秒钟以避免错误,因为这是由后台进程异步处理的,没有任何用户控制。