国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

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

IT那活兒 / 1914人閱讀
oracle ogg同步目標(biāo)庫(kù)數(shù)據(jù)出現(xiàn)亂碼處理
點(diǎ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ù)庫(kù)ogg完成同步部署,第二天應(yīng)用反饋有張表數(shù)據(jù)的字段出現(xiàn)亂碼,然后開(kāi)始接手分析。

檢查環(huán)境

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

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

核查參數(shù)

1. 抽取進(jìn)程
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. 投遞進(jìn)程
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ù)制進(jìn)程


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è)置。
----分析:
  • 源庫(kù)ogg版本高于目標(biāo)庫(kù),抽取進(jìn)程和投遞進(jìn)程都加上了FORMAT RELEASE 12.3,暫時(shí)排除該原因。

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

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

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

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


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

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

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

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

重現(xiàn)初始化

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


本 文 原 創(chuàng) 來(lái) 源:IT那活兒微信公眾號(hào)(上海新炬王翦團(tuán)隊(duì))

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/129707.html

相關(guān)文章

  • DBASK問(wèn)答集萃第四期

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

    SKYZACK 評(píng)論0 收藏0
  • OGG Integrated Native DDL簡(jiǎn)單測(cè)試

    OGG Integrated Native DDL簡(jiǎn)單測(cè)試 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%;...

    IT那活兒 評(píng)論0 收藏1085

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<