IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> OGG-00665:OCI Error getting OCI_ATTR_NAME for UDT SYS.ANYDATA (status = 24328-ORA-24328) -> 正文阅读

[大数据]OGG-00665:OCI Error getting OCI_ATTR_NAME for UDT SYS.ANYDATA (status = 24328-ORA-24328)

1、生产环境:

Linux系统版本:OracleLinux7.9
Oracle软件版本:11.2.0.4 RAC
Oracle GoldenGate版本:11.2.1.0.0

2、故障描述:

ogg抽取进程ABENDING,查看$GGATE_HOME/ggserr.log日志发现报错如下:

2022-01-26 15:04:08 ERROR OGG-00665 Oracle GoldenGate Capture for Oracle, e_chouqu.prm:
OCI Error getting OCI_ATTR_NAME for UDT SYS.ANYDATA (status = 24328-ORA-24328: illegal attribute value), SQL<Not available>.
2022-01-26 15:04:08 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, e_chouqu.prm: PROCESS ABENDING.

报错信息中只是描述了非法的属性值 SYS.ANYDATA导致SQL不可用

3、问题处理:

1、查询$GGATE_HOME/dirrpt目录下抽取进程日志获取更详细的报错信息,日志信息如下:

2022-01-26 15:04:08  INFO    OGG-01057  Recovery completed for all targets.
Wildcard TABLE resolved (entry u_ws.*):
  TABLE "u_ws"."SCHEDULER$_JOB_ARG";

Source Context :
  SourceModule            : [ggdb.ora.sess]
  SourceID                : [/scratch/mmar/view_storage/mmar_17707241/oggcore/OpenSys/src/gglib/ggdbora/ocisess.c]
  SourceFunction          : [oci_try]
  SourceLine              : [651]
  ThreadBacktrace         : [26] elements
                          : [/acfs/userspace/ggate/libgglog.so(CMessageContext::AddThreadContext()+0x1e) [0x7fc5fd0f860e]]
                          : [/acfs/userspace/ggate/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...)+0x2cc) [0x7fc5fd0f135c]]
                          : [/acfs/userspace/ggate/libgglog.so(_MSG_ERR_ORACLE_OCI_ERROR_WITH_DESC_SQL(CSourceContext*, int, char const*, char const*, char const*, CMessageFactory::MessageDisposition)+0x4e) [0x7fc5fd0e07c0]]
                          : [/acfs/userspace/ggate/extract(OCISESS_context_def::oci_try(int, char const*, ...)+0x463) [0x66a333]]
                          : [/acfs/userspace/ggate/extract() [0x66d282]]
                          : [/acfs/userspace/ggate/extract() [0x66e0b5]]
                          : [/acfs/userspace/ggate/extract(OCIUDT_get_udt_def(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, ggs::gglib::ggapp::CDBObjName<(DBObjType)13> const&, int, DDLPropertyBuffer*, short)+0x2ea) [0x66edf6]]
                          : [/acfs/userspace/ggate/extract(gl_get_col_specs(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, col_def*, ggs::gglib::ggapp::CDBObjName<(DBObjType)13> const&, short, char const*, long, long, short, short, short*, int*, int*, int, DDLP
ropertyBuffer*, short, char*)+0x5ad) [0x65741d]]                          : [/acfs/userspace/ggate/extract() [0x658005]]
                          : [/acfs/userspace/ggate/extract(gl_get_query_def(file_def const*, ggs::gglib::ggunicode::UString const&, short, char*)+0x41) [0x65a721]]
                          : [/acfs/userspace/ggate/extract(gl_get_odbc_table_def(file_def*, short, char*)+0xdb) [0x65c71b]]
                          : [/acfs/userspace/ggate/extract(get_extract_source_def(file_def*, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&)+0x53) [0x573103]]
                          : [/acfs/userspace/ggate/extract(add_source_file(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, unsigned int*, unsigned int, recopts_t*, ggs::gglib::ggunicode::UString const&, int*, int, wc_def*, ggs::gglib::ggapp::CQualDBObjName<(DBOb
jType)1>&, int)+0x340) [0x55a430]]                          : [/acfs/userspace/ggate/extract(get_map_entry(ggs::gglib::ggunicode::UString const&, int, wc_def*, int)+0x57b) [0x55b7ab]]
                          : [/acfs/userspace/ggate/extract(wc_def::resolve_wc_entry(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, int, unsigned int*, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1>*, int)+0x1af) [0x5f04ff]]
                          : [/acfs/userspace/ggate/extract(WILDCARD_check_table(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const*, int, unsigned int*, int, unsigned int, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1>*, int)+0x12c) [0x5f08ac]]
                          : [/acfs/userspace/ggate/extract(REDOORA_lookup_table(file_def**, log_context_t*, int, bool, SparseArray<bool, int, SparseArrayEntry<bool, int>, 1>*)+0x233) [0x6a6263]]
                          : [/acfs/userspace/ggate/extract() [0x6d3c42]]
                          : [/acfs/userspace/ggate/extract(REDOORAOUT_get_committed_record(objectpool*, cache_object*, log_context_t*, chkpt_context_t*, short, int, int, int*, char*, int*, int*, int*, char*, short*, int*, char*)+0xdef) [0x6d92df]]
                          : [/acfs/userspace/ggate/extract(REDO_read_transaction_record(objectpool*, cache_object*, int, char*, int*, long*, char*, short*, int*, int*, int*, char*)+0x146) [0x6a5e76]]
                          : [/acfs/userspace/ggate/extract(RTC_read(char*, int*, long*, char*, short*, int, char*)+0x281) [0x7353f1]]
                          : [/acfs/userspace/ggate/extract(READ_EXTRACT_RECORD(chkpt_context_t*, short, char*, __std_rec_hdr*, int*, int*, long*, short, short, char*, short*, char*, short*, long*, char*)+0xcc) [0x4f7fcc]]
                          : [/acfs/userspace/ggate/extract(process_extract_loop()+0x625) [0x563de5]]
                          : [/acfs/userspace/ggate/extract(main+0x5e6) [0x5765d6]]
                          : [/lib64/libc.so.6(__libc_start_main+0xfd) [0x7fc5f8f1ed1d]]
                          : [/acfs/userspace/ggate/extract(__gxx_personality_v0+0x39a) [0x4efd9a]]

2022-01-26 15:04:08  ERROR   OGG-00665  OCI Error getting OCI_ATTR_NAME for UDT SYS.ANYDATA (status = 24328-ORA-24328: illegal attribute value), SQL<Not available>.

通过抽取进程e_chouqu的rpt报告可以发现,在捕获"u_ws"."SCHEDULER$_JOB_ARG"表的数据时产生了(ORA-24328: illegal attribute value)报错

3、查看"u_ws"."SCHEDULER$_JOB_ARG"表结构

SQL> desc u_ws.SCHEDULER$_JOB_ARG;
Name         Type         Nullable Default Comments 
------------ ------------ -------- ------- -------- 
JOB_NAME     VARCHAR2(30) Y                         
ARG_NAME     VARCHAR2(30) Y                         
ARG_POSITION NUMBER       Y                         
VALUE        SYS.ANYDATA  Y                         
FLAGS        NUMBER       Y                         
ENABLED      VARCHAR2(1)  Y                         

SQL>

可以看到 “VALUE” 字段的数据类型为:“SYS.ANYDATA”,这就是日志中的报错所在。

原因:

通过在MOS查询到在Oracle GoldenGate - 版本 11.1.1.1.2 及更高版本的ogg中,并不支持ANYDATA的数据类型,导致抽取进程无法捕获表中的数据。

处理:

因为ogg并不支持该种数据类型的表,所以只能将其进行屏蔽处理,在抽取进程配置文件中添加TABLEEXCLUDE参数,例如:

TABLEEXCLUDE <schema.table_name>

特别注意: TABLEEXCLUDE 参数必须放在所有 TABLE 和 SEQUENCE 语句之前

参阅官方文档ID:1437156.1

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:59:11  更:2022-01-28 11:59:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:53:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码