暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle闪回数据存档

ASKTOM 2020-01-12
348

问题描述

大家好,
我们正在数据库中使用Oracle Flashback Data Archive来跟踪大多数关键表中的审核。我们最初计划存储数据6个月,但我们面临的错误/问题很少,使其不稳定。
因此,我们现在将其保留为一个月。以下是问题

1) 我们面临ORA-01555: 快照太旧: 名称为 “” 的回滚段号太小。当我们查询以下几个表时,此错误立即出现

在timestamp minvalue和maxvalue之间从tblA版本中选择 *;

我们的撤消表空间为100gb,保留24小时,没有保证。

我们不希望将其作为保证,因为我们担心它是否会影响DB的批量交易。我们是否需要更改任何撤消设置?有没有一种方法可以确定无缝FDA应该拥有的撤消Tbsp (基于每小时没有交易)?
根据论坛,它说UNDO中的数据在FDA可以提取之前被擦除。如果是这样,


2) 尽管我们创建时保留了一个月,但我们无法查询过去5天或10天 (间歇性)。它看起来像一个Oracle问题,下面是参考信息
我们在我们组织的Oracle支持的帮助下应用了补丁,但这个问题仍然在重复发生

http://asktom.oracle.com/pls/apex/asktom.search?tag=oracle-flashback-error-not-a-valid-system-change-number

3) 我们使用FDA作为档案,但也要对这些数据进行一些统计查询。在过去24小时内,col1更改了多少行。但是当我们这样做的时候非常慢。我们是否需要为version_starttime/version_endtime索引这些表?是否建议
使用FDA进行此类分析查询,或者提取并加载到另一个实例并在那里再次运行它是有意义的吗?它更像是一个设计决策,但想得到一些建议

专家解答

对于 (1)

我会看看MOS note 2408008.1,并与支持人员聊天,看看这是否与您相关。

另外,请查看v $ undostat,其中有一个数字 “tuned_undoretention”,该数字应告诉您获得的真正的撤消保留。

在非闪回方案中,您可以将其与 “maxqueyrlen” 数字进行比较,以确保您的撤消时间比最长的查询时间长。

但是,在倒叙的情况下,实际上是maxquerylen,您将尝试使用as “AS OF” 命令返回多远。我们将先尝试撤消我的撤消,然后进入存档。正因为如此,如果FDA将成为您业务/应用程序功能的核心部分,我们通常建议使用 “保证” 模式。

对于 (2),您能否在评论中放置一些示例,以便我们看到一些上下文

对于 (3),您可以看到闪回查询的基础查询计划,例如

SQL> select * from EMP 
  2   AS OF TIMESTAMP SYSDATE-3;

-----------------------------------------------------------------
| Id  | Operation                   | Name               | Rows  |
-----------------------------------------------------------------
|   0 | SELECT STATEMENT            |                    |   446 |
|   1 |  VIEW                       |                    |   446 |
|   2 |   UNION-ALL                 |                    |       |
|*  3 |    FILTER                   |                    |       |
|   4 |     PARTITION RANGE ITERATOR|                    |   445 |
|*  5 |      TABLE ACCESS FULL      | SYS_FBA_HIST_69539 |   445 |
|*  6 |    FILTER                   |                    |       |
|*  7 |     HASH JOIN OUTER         |                    |     1 |
|*  8 |      TABLE ACCESS FULL      | EMP                |     1 |
|*  9 |      TABLE ACCESS FULL      | SYS_FBA_TCRV_69539 |    14 |
------------------------------------------------------------------
复制


这些基础对象的结构确实针对数据保留进行了优化,并在数据超过其闪回保留期后清除了数据。但是,如果这将有助于某些查询,则可以在历史记录表上创建 (非唯一) 索引。参考:https://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/4421812.pdf

但是对于完全临时的查询,您可能会更好地查看将内容提取到单独的表中,然后让人们对此进行疯狂的查询。

MOS note 2370465.1中也有一些内部调整建议 (但在执行本文档中的任何操作之前,请咨询支持人员)。

希望这有所帮助。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论