如何在ODI SNP_EXP_TXT工作资源库表确定Orphan 记录
应用:
Oracle Data Integrator - 版本: 10.1.3.2.0及以后发行的版本
该文档的信息可以应用到任何平台
目的
SNP_EXP_TXT表位于ODI 10g工作资源库,用来存储指示会话不能够开始的错误消息,
存储执行相关的记录:
所有会话,步骤和任务警告,错误消息
会话参数和关键字
会话变量的默认值和当前值
情境报告
存储情境定义信息:
情境变量的默认值和当前值
情境文件夹和变量描述域
存储和文本类型变量相关的信息:
文本类型变量的历史值
由于多重的原因,SNP_EXP_TXT 表可能有大量的orphan 记录。
这些悬挂外键涉及已被删除的会话:
在ODI版本10.1.3.4.2问题已被处理
当使用垃圾图标清理会话时,会删除部分操作。低于5级的执行日志用于ODI操作员(参考Bug:7393196)
缺少的SQL指令用于手动清理执行的次数(注意:在ODI版本10.1.3.2.0之前SNP_EXP_TXT 不存在)
在使用OdiPurgeLog 工具或者垃圾图标清理会话时,变量值没有被删除(参考 Bug:8640312 或者 Bug:9011740)
该文档的目的是来解释如何确定orphan记录和如何在 SNP_EXP_TXT 表上执行适当的删除操作
最后审核日期
2009.12.1
使用说明
提供一个解决问题的向导来帮助调试一个指定的问题。检测工具包含在文档里,用来帮助解决问题
检修细节:
1.停止所有的ODI进程
停止所有的ODI进程,像:代理、情境、日志清理、包、集合接口。。。。
2.确定orphan记录
RCC实用程序与两种调查水平中的一种一起运行:
一个完整的ODI套件库分析(选项1)
或者
检查ODI套件库数据(选项3)
请看:
注释1058107.1:ODI-RCC实用程序
在套件库一致性检验过程中,一个ORA_DIAG_ETXT_ORPH表被创建,并且该表在下面的操作中会被使用
3.连接工作套件库
连接数据库和群集ODI工作套件库表的架构
4.分析orphan记录
以下的SQL指令将允许你查阅这些记录:
select count(*), UPD
from ORA_DIAG_ETXT_ORPH
group by UPD
select S.I_TXT, S.LAST_DATE, S.TXT, S.TXT_ORD
from SNP_EXP_TXT S,
ORA_DIAG_ETXT_ORPH X
where X.I_TXT = S.I_TXT
and X.UPD is null
order by S.I_TXT, S.TXT_ORD
5.删除orphan记录
这些记录是不能用于任何情况下,因为它们没有参考任何其他的表,因此从SNP_EXP_TXT里删除它比较好
on Oracle:
create table ORA_DIAG_ETXT_ORP2
as
select S.*
from SNP_EXP_TXT S,
ORA_DIAG_ETXT_ORPH X
where X.I_TXT = S.I_TXT
and X.UPD is not null
truncate table SNP_EXP_TXT
insert into SNP_EXP_TXT
select *
from ORA_DIAG_ETXT_ORP2
analyze table SNP_EXP_TXT compute statistics;
alter table SNP_EXP_TXT enable row movement;
alter table SNP_EXP_TXT shrink space cascade;
on Microsoft SQLServer:
select S.*
into ORA_DIAG_ETXT_ORP2
from SNP_EXP_TXT S,
ORA_DIAG_ETXT_ORPH X
where X.I_TXT = S.I_TXT
and X.UPD is not null
truncate table SNP_EXP_TXT
insert into SNP_EXP_TXT
select *
from ORA_DIAG_ETXT_ORP2
on IBM DB2/400:
i)为了整理表格,首先在SNP_EXP_TXT启动RGZPFM
ii)然后:
create table ORA_DIAG_ETXT_ORP2
like SNP_EXP_TXT
insert into ORA_DIAG_ETXT_ORP2
select S.*
from SNP_EXP_TXT S,
ORA_DIAG_ETXT_ORPH X
where X.I_TXT = S.I_TXT
and X.UPD is not null
drop table SNP_EXP_TXT
create table SNP_EXP_TXT
like ORA_DIAG_ETXT_ORP2
alter table SNP_EXP_TXT
add constraint PK_EXP_TXT primary key (I_TXT, TXT_ORD)
insert into SNP_EXP_TXT
select *
from ORA_DIAG_ETXT_ORP2
iii)最后,在SNP_EXP_TXT启动 RGZPFM
on IBM DB2 UDB:
create table ORA_DIAG_ETXT_ORP2
like SNP_EXP_TXT
insert into ORA_DIAG_ETXT_ORP2
select S.*
from SNP_EXP_TXT S,
ORA_DIAG_ETXT_ORPH X
where X.I_TXT = S.I_TXT
and X.UPD is not null
alter table SNP_EXP_TXT
activate not logged initially
with empty table
insert into SNP_EXP_TXT
select *
from ORA_DIAG_ETXT_ORP2