OGG-00918 映射中缺少键列 id.

2024-02-23 14:54:49 INFO OGG-02756 从线索文件获取了表 GISTAR.PXPH_PON_ROUTE 的定义。.

The following columns did not default because of type mismatches:

id

OGG-00918 映射中缺少键列 id.

目标端有字段ID,由于mysql自增,所以只能是bigint类型,而源端是生产id字段为varchar2类型,无法修改。

复制代码
2024-02-23 14:54:49  INFO    OGG-02756  从线索文件获取了表 GISTAR.PXPH_PON_ROUTE 的定义。.
The following columns did not default because of type mismatches:
  id

2024-02-23 14:54:49  INFO    OGG-06511  在默认映射中按名称使用以下列: SPECLINENO, INNER_ORDER, A_RESOURCE_TYPE, A_RESOURCE_TYPE_ID, A_RESOURCE_CODE, A_RESOURCE_ID, A_MOD
ULE_CODE, A_MODULE_ID, A_SERIAL, A_SERIAL_ID, B_RESOURCE_TYPE, B_RESOURCE_TYPE_ID, B_RESOURCE_CODE, B_RESOURCE_ID, B_MODULE_CODE, B_MODULE_ID, B_SERIAL, B_SERIAL_ID, PHY_
CONNECT_TYPE, STATUS, IS_VIRTUAL_ROUTE, USE_STATUS, ENABLED_DATE, REMARK, SAP, AREACODE, BUREAUNO, BUSINESSAREAID, PHYSICALACCESSNBR, LOGICALACCESSNBR, IPADDRESS, EQUIPRO
OMID, MANAGEMENTIP.

Source Context :
  SourceModule            : [er.mapping]
  SourceID                : [er/mapping.cpp]
  SourceMethod            : [get_map_entry]
  SourceLine              : [3446]
  ThreadBacktrace         : [16] elements
                          : [/db/ogg/mysql/libgglog.so(CMessageContext::AddThreadContext())]
                          : [/db/ogg/mysql/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))]
                          : [/db/ogg/mysql/libgglog.so(_MSG_ColumnName(CSourceContext*, int, ggs::gglib::ggapp::CDBObjName<(DBObjType)13> const&, CMessageFactory::Message
Disposition))]
                          : [/db/ogg/mysql/replicat(get_map_entry(ggs::gglib::ggunicode::UString const&, int, wc_def*, ObjectMetadataRequest const&, unsigned int, unsigne
d int, ggs::gglib::ggmetadata::MetadataContext&, ggs::gglib::ggmetadata::TableManager&, unsigned int, ggs::gglib::ggmetadata::CTblMetadata*, ggs::gglib::ggmetadata::CMeta
dataReader*, bool, bool, bool))]
                          : [/db/ogg/mysql/replicat(wc_def::resolve_wc_entry(ObjectMetadataRequest const&, int, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1>*, ggs::ggl
ib::ggmetadata::MetadataContext&, ggs::gglib::ggmetadata::TableManager&, ggs::gglib::ggmetadata::CTblMetadata*, ggs::gglib::ggmetadata::CMetadataReader*))]
                          : [/db/ogg/mysql/replicat(WILDCARD_check_table(ObjectMetadataRequest const&, bool, bool, unsigned int, ggs::gglib::ggapp::CQualDBObjName<(DBObjT
ype)1>*, ggs::gglib::ggmetadata::TableManager&, ggs::gglib::ggmetadata::CTblMetadata*, ggs::gglib::ggmetadata::CMetadataReader*, bool, ggs::gglib::gglcr::CommonLCR*, bool
))]
                          : [/db/ogg/mysql/replicat(ggs::er::ERContext::findSourceMetadata(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, int, ggs::gglib::ggmeta
data::CTblMetadata*, ggs::gglib::ggmetadata::CMetadataReader*, bool))]
                          : [/db/ogg/mysql/replicat(ggs::gglib::ggapp::ReplicationContext::sourceMetadataLookup(ggs::gglib::gglcr::CommonLCR const*))]
                          : [/db/ogg/mysql/replicat(ggs::er::ReplicatContext::processReplicatLoop())]
                          : [/db/ogg/mysql/replicat()]
                          : [/db/ogg/mysql/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain())]
                          : [/db/ogg/mysql/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))]
                          : [/db/ogg/mysql/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]
                          : [/db/ogg/mysql/replicat(main)]
                          : [/lib64/libc.so.6(__libc_start_main)]
                          : [/db/ogg/mysql/replicat()]

2024-02-23 14:54:49  ERROR   OGG-00918  映射中缺少键列 id.

原因是源端为varchar2,目标端是bigint,目标端复制进程增加函数转换处理即可:

复制代码
GGSCI (lnpg) 34> view param ir1

replicat ir1
targetdb resdb@192.168.207.143, userid ogg, password xxx@
discardfile ./dirrpt/ir1.dsc,append,megabytes 1000
MAXTRANSOPS 5000
REPLACEBADCHAR ESCAPE
--map gistar.*, target resdb.*, colmap (id=@NUMSTR(id), usedefaults);
map gistar.pxph_pon_route       , target resdb.pxph_pon_route   , colmap (id=@NUMSTR(id), usedefaults)  ;

源端抽取进程如下:

复制代码
GGSCI (lnpg) 123> view param i1

extract i1
USERIDALIAS oracle11g
RMTHOST 192.168.207.143,MGRPORT 17809
RMTTASK REPLICAT,GROUP ir1

table gistar.pxph_pon_route;

相关参考:Oracle GoldenGate实现实时数据过滤和数据转换详解-CSDN博客

相关推荐
传奇开心果编程9 小时前
【Compose Multiplatform 跨端开发学与练】第5课 网络与数据层
android·网络·学习·ui·ios·kotlin·composer
ao-weilai10 小时前
MySQL数据库:内置函数
android·数据库·mysql
SWAGGY..10 小时前
【C++进阶】:(7)红黑树的原理与 C++ 实现:结构设计、插入调整及性质验证
android·java·开发语言·c++·算法
Android打工仔10 小时前
CoroutineScheduler 设计解析(上)—— 为什么 Dispatchers.IO 会创建更多线程?
android·kotlin·源码阅读
martindelophy11 小时前
用自然语言剪视频:我们在 Timeline Studio 中实现了 ChatCut 对话剪辑
android·音视频
ao-weilai12 小时前
MySQL数据库:复合查询
android·数据库·mysql
三少爷的鞋1 天前
AI 时代,我们都将成为通才型开发者:只懂 Android,已经不够了
android
Dovis(誓平步青云)1 天前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑
晚风叙码1 天前
MySQL 数据类型详解:从数值到字符串,一篇讲透
android·mysql·adb
传奇开心果编程1 天前
【Compose Multiplatform 跨端开发学与练】第3课 布局与组件
android·windows·学习·ui·ios·kotlin·composer