成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

oracle ogg同步目標(biāo)庫數(shù)據(jù)出現(xiàn)亂碼處理

IT那活兒 / 1917人閱讀
oracle ogg同步目標(biāo)庫數(shù)據(jù)出現(xiàn)亂碼處理
點擊上方“IT那活兒”,關(guān)注后了解更多精彩內(nèi)容?。?/span>

環(huán)境

源端 os:Linux redhat 7,db 19.9 noncdb,ogg:19.1.0.0.4
目標(biāo)端 os:Linux redhat 7,db 12.2 cdb,ogg:12.3.0.1.2
近期有一套Oracle數(shù)據(jù)庫ogg完成同步部署,第二天應(yīng)用反饋有張表數(shù)據(jù)的字段出現(xiàn)亂碼,然后開始接手分析。

檢查環(huán)境

1. 源庫數(shù)據(jù)沒有亂碼,目標(biāo)庫有。

--源庫數(shù)據(jù):
--目標(biāo)庫數(shù)據(jù):
2. 除了歷史數(shù)據(jù),增量同步數(shù)據(jù)也會產(chǎn)生亂碼。
3. 源庫是ZHS16GBK字符集,目標(biāo)庫是AL32UTF8字符集,從官方文檔上查看,oracle是支持不同字符集之間同步。
4. 源庫ogg版本高于目標(biāo)庫版本。
5. 源庫DB版本高于目標(biāo)庫版本。

核查參數(shù)

1. 抽取進程
e_show2.prm

EXTRACT E_SHOW2
SETENV (ORACLE_HOME="/oracle/app/oracle/product/19.0.0/db" )
SETENV (ORACLE_SID="hncustdb11")
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg, password AACAAAAAAAAAAAQAMISHOEYDWBYEMJPGRBRIAFMGHCEEJINJ, encryptkey default
DISCARDFILE ./dirrpt/E_SHOW2.dsc,APPEND,MEGABYTES 1024
DBOPTIONS LOBBUFSIZE 1048576
TRANLOGOPTIONS DBLOGREADER
FETCHOPTIONS FETCHPKUPDATECOLS
CACHEMGR CACHESIZE 2GB
EXTTRAIL ./dirdat/E_SHOW2/t1,FORMAT RELEASE 12.3
BR BRINTERVAL 60M
GETTRUNCATES
TABLE UCR_CRM11.TF_F_USER;
......
2. 投遞進程
d_show2.prm

EXTRACT D_SHOW2
PASSTHRU
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
RMTHOST 10.***.***.164,MGRPORT 7809
RMTTRAIL ./dirdat/D_HNCUS1/t1,FORMAT RELEASE 12.3
TABLE *.*;


3. 復(fù)制進程


r_hncus1.prm

REPLICAT R_HNCUS1
SETENV (ORACLE_HOME="/u01/app/oracle/product/12.2.0.1/dbhome_1")
--SETENV (ORACLE_SID="showdb1")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
userid ogg@SHOWDB_WH1, password AACAAAAAAAAAAAPAMISHOEYDWBYEMJPGYILJRBWEGAZALJPE,encryptkey default
discardfile ./dirrpt/R_HNCUS1.dsc,append,megabytes 2048
sourcecharset passthru
grouptransops 2000
handlecollisions
maxtransops 500
gettruncates
dynamicresolution
ALLOWNOOPUPDATES
ASSUMETARGETDEFS
--reperror default,discard
map UCR_CRM11.TF_F_USER, target UCR_OGG_CRM11.TF_F_USER;
......


4. 環(huán)境變量

--源環(huán)境變量:
hncustdb11:/home/oracle(hncustdb11)$id
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1000(dba),1003(oper),1004(asmdba),1006(backupdba),1007(dgdba),1008(kmdba)

hncustdb11:/home/oracle(hncustdb11)$env
--LANG 未設(shè)置:
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
--目標(biāo)環(huán)境變量:
[oracle@exdadbadm01 ~]$ id
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba),1003(racoper),1004(asmdba)

[oracle@exdadbadm01 ~]$ env

LANG=en_US.UTF-8
--NLS_LANG 未設(shè)置。
----分析:
  • 源庫ogg版本高于目標(biāo)庫,抽取進程和投遞進程都加上了FORMAT RELEASE 12.3,暫時排除該原因。

  • 源庫和目標(biāo)庫字符集不一致,抽取和復(fù)制進程都指定了NLS_LANG,并且復(fù)制進程中加了sourcecharset passthru參數(shù),并且按照文檔上的說明支持不同字符集之間同步。

核查源庫表出現(xiàn)亂碼字段的字符集

排除以上原因,懷疑是源庫的數(shù)據(jù)有部分非ZHS16GBK數(shù)據(jù)。對源庫表上該字段進行dump。
未發(fā)現(xiàn)非ZHS16GBK數(shù)據(jù)。

測試同版本ogg是否會產(chǎn)生亂碼


這個時候懷疑是ogg產(chǎn)品bug或者高低版本不兼容導(dǎo)致的,目標(biāo)端有很多復(fù)制進程,但出問題的只有這一個,并且該問題可以100%重現(xiàn)。

在目標(biāo)端另外一個節(jié)點安裝19.1.0.0.4版本ogg,并建立測試表進行測試。
數(shù)據(jù)依然有亂碼,說明和ogg版本不兼容沒有關(guān)系。

檢查源庫和目標(biāo)庫表結(jié)構(gòu)差異

在創(chuàng)建測試表的時候,留意到源庫和目標(biāo)庫的部分字段長度和類型不一致,只要長度夠長,ogg同步是不會斷,懷疑是應(yīng)用在目標(biāo)庫做了修改。
先進行測試,將源庫的DDL取出來,在目標(biāo)庫建立測試表,在12版本的ogg下進行配置驗證,發(fā)現(xiàn)亂碼消失。

重現(xiàn)初始化

確定了亂碼產(chǎn)生原因,重建目標(biāo)端表結(jié)構(gòu),使用expdp方式進行初始化,發(fā)現(xiàn)報錯提示數(shù)據(jù)超出字段長度。
不同字符集的數(shù)據(jù),占用的長度也是不一致,ZHS16GBK字符集數(shù)據(jù)長度要大于AL32UTF8。
所以應(yīng)該是當(dāng)時做ogg部署的同事為了成功impdp導(dǎo)入數(shù)據(jù),把字段長度改長了。但修改字段類型我是無法理解的。
既然無法使用expdp,那么就只能采用dblink+insert+scn的方式進行初始化了。
至此問題解決!


本 文 原 創(chuàng) 來 源:IT那活兒微信公眾號(上海新炬王翦團隊)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129707.html

相關(guān)文章

  • DBASK問答集萃第四期

    摘要:問題九庫控制文件擴展報錯庫的擴展報錯,用的是裸設(shè)備,和還是原來大小,主庫的沒有報錯,并且大小沒有變,求解釋。專家解答從報錯可以看出,控制文件從個塊擴展到個塊時報錯,而裸設(shè)備最大只支持個塊,無法擴展,可以嘗試將參數(shù)改小,避免控制文件報錯。 鏈接描述引言 近期我們在DBASK小程序新關(guān)聯(lián)了運維之美、高端存儲知識、一森咖記、運維咖啡吧等數(shù)據(jù)領(lǐng)域的公眾號,歡迎大家閱讀分享。 問答集萃 接下來,...

    SKYZACK 評論0 收藏0
  • OGG Integrated Native DDL簡單測試

    OGG Integrated Native DDL簡單測試 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%;...

    IT那活兒 評論0 收藏1085

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<