Sql SCN保留查询存档数据的最大天数
我有一张启用了闪回功能的桌子。我想使用Sql SCN保留查询存档数据的最大天数,sql,database,oracle,oracle12c,flashback,Sql,Database,Oracle,Oracle12c,Flashback,我有一张启用了闪回功能的桌子。我想使用截至子句查询数据,如下所示: SELECT * FROM employees AS OF TIMESTAMP TO_TIMESTAMP('2019-09-11 00:00:00', 'YYYY-MM-DD HH24:MI:SS'); 闪回存档的保留期为14天 从今天起,2019年10月16日,我可以回到2019年9月11日。如果我在上述查询中将9月10日(即2019-09-10 00:00:00转换为TO_TIMESTAMP),我将获得ORA-08180
截至
子句查询数据,如下所示:
SELECT *
FROM employees AS OF TIMESTAMP TO_TIMESTAMP('2019-09-11 00:00:00', 'YYYY-MM-DD HH24:MI:SS');
闪回存档的保留期为14天
从今天起,2019年10月16日,我可以回到2019年9月11日。如果我在上述查询中将9月10日(即2019-09-10 00:00:00
转换为TO_TIMESTAMP
),我将获得ORA-08180:根据指定时间未找到快照
那么,我怎样才能找到SCN保留的确切时间呢?我浏览了OraDocs,发现了以下信息:
当生成SCN时,SCN和时间戳之间的关联由数据库在有限的时间段内记住。如果数据库以自动撤消管理模式运行,则此时间段是自动调整的撤消保留时间段的最大值,以及数据库中所有闪回存档的保留时间,但不少于120小时
我查询了UNDO_RETENTION
参数,它被设置为默认900秒。而且只有一个闪回存档,保留天数设置为14天。因此,根据doc,SCN的寿命必须为14天。但是我怎样才能回到一个月前
附言:我正在检查另一个数据库,其中
UNDO\u RETENTION
参数设置为默认值2700(45分钟),并且只有一个闪回存档,RETENTION\u DAYS
设置为14。在这种情况下,我最多只能查询6天。SCN的寿命是如何计算的?它是否与创建闪回归档文件的时间有关?我认为,启用闪回的表是指启用闪回归档的表。SCN与数据库中已提交的更改相关联。通过最早的SCN,我们正在寻找与对象关联的最早的SCN。要获取与已更改和提交的对象关联的所有SCN,例如employees表,请使用下面的SQL。从SCN MINVALUE和MAXVALUE之间的员工版本中选择版本\u startscn START\u SCN、版本\u endscn END\u SCN;结果记录按时间顺序递减,因此最后一条记录将具有最早的SCN。要获取与SCN关联的时间戳,请使用select SCN_To_timestamp()作为dual中的时间戳;拥有SCN后,您可能不需要时间戳,因为SCN足以查询闪回数据归档。