抽取进程集成模式注册报错,OGG-08221,OCI Error ORA-44004 invalid qualified SQL Name

一、问题现象

同事在某客户现场,使用OGG 19版本,对DB 19进行抽取进程集成模式注册,报错

OGG-08221,OCI Error ORA-44004 invalid qualified SQL Name

二、匹配MOS

OGG-08221 Cannot Register Or Unregister EXTRACT <extractname> Error: OCI Error ORA (Status = 44004-ORA-44004: Invalid Qualified SQL Name)
(Doc ID 2514820.1) Oracle GoldenGate Command Interpreter for Oracle Version 12.3.0.1.181120 OGGCORE_12.3.0.1.0OGGBP_PLATFORMS_181207.1227_FBO AIX 6, ppc, 64bit (optimized), Oracle 12c on Dec 10 2018 09:15:59 GGSCI > register extract <extract_name> database 2019-03-04 16:07:30 ERROR OGG-08221 Cannot register or unregister EXTRACT <extract_name> because of the following SQL error:
OCI Error ORA (status = 44004-ORA-44004: invalid qualified SQL name ORA-06512: at "SYS.DBMS_ASSERT", line 315 ORA-06512: at "SYS.DBMS_LOGREP_UTIL", line 304 ORA-06512: at "SYS.DBMS_CAPTURE_ADM", line 151 ORA-06512: at line 1). CAUSE The issue is due to the value of "TEST.1DC.COM" for source_global_name BINDS #4866688648: Bind#0 oacdty=96 mxl=08(08) mxlc=00 mal=00 scl=00 pre=00 oacflg=01 fl2=1000000 frm=01 csi=873 siz=96 off=0 kxsbbbfp=12211adb0 bln=08 avl=08 flg=05 value="<extract name>" Bind#1 oacdty=96 mxl=15(15) mxlc=00 mal=00 scl=00 pre=00 oacflg=01 fl2=1000000 frm=01 csi=873 siz=0 off=8 kxsbbbfp=12211adb8 bln=15 avl=15 flg=01 value="TEST.1DC.COM" <=============== A database global name has other restrictions than normal sql objects.Several creative database names cause the register
of Integrated Extract to fail as these names fail in dbms_assert.qualified_sql_name(). Example names are: ABC.COMPUTE-A1111.ORACLECLOUD.INTERNAL # the Minus sign in the domain part TEST.1DC.COM # a part of the domain name starts with a number SOLUTION Please do the following to change from TEST.1DC.COM to TEST.DC.COM and then redo the REGISTER SQL> alter database rename global_name to TEST.DC.COM Note: Above change may break database links that point to this instance if using global naming. On multi-tenant environments OGG currently checks following to sql names. 1: global name of the container db 2: full global name of the pdb 3: short dbname of the pdb. So in addition to above change following is also needed on PDB ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO <newname>

那么实际客户使用了这种特殊的名称吗? 参数查询没有设置domain

select value$ from sys.props$ where name='GLOBAL_DB_NAME';

这才确认注册的PDB的GLOBAL_DB_NAME 存在特殊字符,OGG内部集成注册通过DB参数获取这个名称,后续操作无法解析这个特殊字符报错!

那么解决办法,就是调整PDB的这个参数名称,删除特殊字符!

原文地址:https://www.cnblogs.com/lvcha001/p/15174582.html