星環(huán)科技o(jì)ggtdt4.7部署手冊v1_第1頁
星環(huán)科技o(jì)ggtdt4.7部署手冊v1_第2頁
星環(huán)科技o(jì)ggtdt4.7部署手冊v1_第3頁
星環(huán)科技o(jì)ggtdt4.7部署手冊v1_第4頁
星環(huán)科技o(jì)ggtdt4.7部署手冊v1_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、星環(huán)信息科技()OGG+TDT(4.7)部署手冊目錄1. 文檔說明32. OGG+TDT 數(shù)據(jù)流圖43. 源端 Oracle 配置43.1. 開啟歸檔43.2. 開啟數(shù)據(jù)庫附加日志53.3. 開啟數(shù)據(jù)庫強(qiáng)制日志63.4. 開啟表的 logging 屬性63.5. 創(chuàng)建 goldengate 用戶63.6. 查詢數(shù)據(jù)庫字符集74. 源端 OGG 配置74.1. 安裝 OGG74.1.1. 創(chuàng)建 oracle 用戶和 oinstall 組74.1.2. 使用 oracle 用戶安裝 OGG. 74.1.3. 創(chuàng)建 OGG 相關(guān)目錄84.1.4. 設(shè)置環(huán)境變量8編輯進(jìn)程.1. 編輯管

2、理進(jìn)程84.2.2. 編輯抽取進(jìn)程84.2.3. 編輯傳輸進(jìn)程9添加進(jìn)程94.3.啟動進(jìn)程104.4.生成表結(jié)構(gòu)定義文件104.5.添加 trandata.1. 如果表的列數(shù)不大于 32104.6.2. 如果表的列數(shù)大于 32105. 目標(biāo)端 OGG 配置11安裝 OGG.1. 創(chuàng)建 oracle 用戶和 oinstall 組115.1.2. 使用 oracle 用戶安裝 ogg. 115.1.3. 設(shè)置環(huán)境變量115.1.4. 創(chuàng)建 OGG 相關(guān)目錄115.1.5. 上傳 jar 包115.1.6. 上傳 handlroperties12編輯進(jìn)程125.2

3、.5.2.1. 編輯管理進(jìn)程125.2.2. 編輯 Handler 進(jìn)程12添加進(jìn)程135.3.啟動進(jìn)程135.4.6. 目標(biāo)端 TDT 配置136.1. 安裝 TDT13上傳 hdfs 配置文件136.2.配置 tdt-site.xml136.3.配置持久層.1. 新建 dataSperties146.4.2. 新建 tdt_dataflow_task 表146.4.3. 用戶賦權(quán)14創(chuàng)建 TDT 數(shù)據(jù)庫146.5.創(chuàng)建 TDT 數(shù)據(jù)流作業(yè)156.6.數(shù)據(jù)初始化. 開啟同步166.8.1. 單次提交任務(wù)流作業(yè)166.8.2. 循環(huán)提交任務(wù)

4、流作業(yè)166.9. TDT 日志177. 補充177.1. OGG 常用命令177.2. OGG 重要目錄說明188. 常見問題188.1. SASL authentication not complete188.2. 同步后的 orc 表,日期字段為空188.3. ogg adapter12.2 不支持198.4. 目標(biāo)端中文亂碼191. 文檔說明本文檔用于說明基于 OGG12c 和 TDT4.7 的實時同步部署步驟。版本2. OGG+TDT 數(shù)據(jù)流圖步驟說明:1抽取進(jìn)程(ext01):將 Oracle Redo 日志為 OGG 日志,需要為該進(jìn)程指定OGG 日志的本地目錄和日志名稱的前綴,

5、該前綴由兩位字母組成,如 ab。2傳輸進(jìn)程(dpe01,有時也稱之為數(shù)據(jù)泵進(jìn)程):將步驟 1 中的 OGG 日志傳輸?shù)侥繕?biāo)端。3Handler路徑由 handl進(jìn)程:將目標(biāo)端接收的 OGG 日志為 TDT 日志,后日志的存放roperties 的 gg.handler.tdDir 參數(shù)指定,默認(rèn)為/tmp/ogg,如果gdler.是生產(chǎn)環(huán)境,請自行定義該目錄。4ter 進(jìn)程:將步驟 3 中的 TDT 日志上傳到 HDFS,注意,目前該進(jìn)程只/tmp/ogg目錄新增的文件,并將新增的文件上傳到 HDFS,因此,如果ter 運行過程中意外停止,為避免目標(biāo)端 ORC 表數(shù)據(jù)丟失,停止期間新增的文件要

6、手動上傳到 HDFS。5Job 進(jìn)程:Job 進(jìn)程實際為TDT 的客戶端,負(fù)責(zé)向 TDT Server 提交同步作業(yè),TDT ServerTDH4.7 及以上TDT4.7 及以上目標(biāo)端 GoldenGate Adapter.7源端 Oracle源端 Goldengate11.2、12.1、12.2接收該作業(yè)后,將會解釋 HDFS 的日志數(shù)據(jù),并根據(jù)同步作業(yè)提供的描述方式將增量數(shù)據(jù)寫入到 TDH 的 ORC Tranion 表。注意,TDT 對于同步任務(wù)會順序HDFS 上的數(shù)據(jù)并數(shù)據(jù),數(shù)據(jù)不會丟已處理數(shù)據(jù),所以,重新啟動 Job 進(jìn)程后將從上個停止的時間點繼續(xù)失。

7、3. 源端 Oracle 配置3.1. 開啟歸檔- 1.查詢數(shù)據(jù)庫是否處于歸檔模式SQL select log_mode from v$database;- 2.開啟歸檔$ sqlplus / as sysdbaSQL shutdown immediate;SQL startup mount;SQL alter database archivelog;SQL alter database open;SQL archive log list;- 3.日志切換測試SQL alter system switch logfile;注意:數(shù)據(jù)庫開啟歸檔后,要制定歸檔日志的策略,否則如果歸檔目錄滿了,數(shù)據(jù)

8、庫將被 hang 住。- 查詢歸檔目錄的位置SQL shorameter recoverySQL select name from v$archived_log;3.2. 開啟數(shù)據(jù)庫附加日志- 1.開啟數(shù)據(jù)庫附加日志$ sqlplus / as sysdbaSQL alter database add supplemental log data;SQL alter database add supplemental log data (primary key, unique,foreign key) columns;- 2.確認(rèn):除 SUPPLEMENTAL_LOG_DATA_ALL 外,均開

9、啟附加日志selectSUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI,SUPPLEMENTAL_LOG_DATA_FK,SUPPLEMENTAL_LOG_DATA_ALLfromv$database;- 設(shè)置歸檔目錄,重啟數(shù)據(jù)庫后生效SQL alter system set log_archive_dest_1=location=/ scope=both;- 刪除所有的歸檔日志(慎用)$ rman/RMAN delete noprompt force archivelog all compl

10、eted beforesysdate;3.3. 開啟數(shù)據(jù)庫強(qiáng)制日志- 1.開啟數(shù)據(jù)庫強(qiáng)制日志SQL alter database force logging;- 2.檢查數(shù)據(jù)庫日志模式:SQL select force_logging from v$database;3.4. 開啟表的 logging 屬性1.檢查表是否開啟 logging 屬性sql select TABLE_NAME,LOGGING from DBA_TABLESwhere table_name=;2.開啟表 logging 屬性sql alter table logging;3.確認(rèn)這些表在業(yè)務(wù)中無 nologging

11、操作。3.5. 創(chuàng)建 goldengate 用戶$ sqlplus / as sysdbaSQL create user goldengate identified by goldengate;SQL grant dba to goldengate;注意:僅在非強(qiáng)制日志模式下執(zhí)行該操作。注意:數(shù)據(jù)庫強(qiáng)制日志開啟需要與業(yè)務(wù)和應(yīng)用部門確認(rèn)。如果只同步數(shù)據(jù)庫的一部分表,需要檢查這些表是否開啟 logging 屬性,并確認(rèn)在業(yè)務(wù)中沒有對這些表的 nologging 操作。3.6. 查詢數(shù)據(jù)庫字符集查詢源端字符集,編輯 OGG 進(jìn)程時需要該參數(shù)SQL select PARAMETER,VALUEfrom

12、nls_database_parameterswhere PARAMETER in (NLS_LANGUAGE,NLS_TERRITORY,NLS_CHARACTERSET,NLS_NCHAR_CHARACTERSET);示例:4. 源端 OGG 配置4.1. 安裝 OGG4.1.1. 創(chuàng)建 oracle 用戶和 oinstall 組$ useradd oracle$ groupadnstall$ usermod -g oinstall oracle4.1.2. 使用 oracle 用戶安裝 OGG略。4.1.3. 創(chuàng)建 OGG 相關(guān)目錄GGSCI create subdirs4.1.4. 設(shè)

13、置環(huán)境變量- 修改 oracle 用戶的環(huán)境變量export OGG_HOME=OGG 安裝目錄export LD_LIBRARY_PATH=$OGG_HOME:$OGG_HOME/lib:$LD_LIBRARY_PATH4.2. 編輯進(jìn)程4.2.1. 編輯管理進(jìn)程GGSCI edit params mgrPORT 7809DYNAMICPORTLIST 7810-7820USERID goldengate, PASSWORD goldengateLAGCRITICALMINUTES 45LAGINFOMINUTES 30LAGREPORTHOURS 1PURGEOLDEXTRACTS ./d

14、irdat/*, USECHECKPOS, MINKEEPDAYS 7參數(shù)說明:PORT 7809:mgr 所用端口。DYNAMICPORTLIST 7810-7820:mgr 可用端口范圍。USERID goldengate, PASSWORD goldengate:使用 goldengate/goldengate 登錄數(shù)據(jù)庫。LAGCRITICALMINUTES 45:延遲閾值 45 分鐘。4.2.2. 編輯抽取進(jìn)程- 以抽取 scott 用戶下的表為例,NLS_LANG 的值根據(jù)源端數(shù)據(jù)庫字符集填寫GGSCI edit param ext01EXTRACT EXT01DYNAMICRES

15、OLUTIONSETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)USERID goldengate, PASSWORD goldengateEXTTRAIL ./dirdat/ab, FORMEVEL 3GETUPDATEBEFORESTABLE SCOTT.*;4.2.3. 編輯傳輸進(jìn)程- 以 scott 用戶為例,NLS_LANG 的值根據(jù)源端數(shù)據(jù)庫字符集填寫GGSCI edit params dpe01EXTRACT DPE01DYNAMICRESOLUTION參數(shù)說明:DYNAMICRESOLUTION:動態(tài)表名。EXTTRAIL ./DIRDAT/

16、ab, FORMEVEL 3:將 OGG 日志存放到$OGG_HOME/dirdat/目錄,日志前綴是 ab。GETUPDATEBEFORES:獲取修改前鏡像。TABLE SCOTT.*:抽取 scott 用戶下表的 redo 日志。LAGINFOMINUTES 30:每隔 30 分鐘檢查延遲閾值,如果超過閾值,寫入錯誤日志。LAGREPORTHOURS 1:每隔 1 小時檢查延遲。PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOS, MINKEEPDAYS 7:文件傳輸后,本地文件保留 7 天。SETENV (NLS_LANG=AMERICAN_AMERICA.

17、ZHS16GBK)USERID goldengate,PASSWORD goldengateRMTHOST 26, MGRPORT 7809RMTTRAIL ./dirdat/xe, FORMEVEL 3TABLE SCOTT.*;4.3. 添加進(jìn)程- 登錄到數(shù)據(jù)庫GGSCI dblogin userid goldengate password goldengate- 添加抽取進(jìn)程:ext01- 抽取的日志目錄為$OGG_HOME/dirdat,日志前綴為 ab- THREADS 參數(shù),注意在 RAC 環(huán)境下設(shè)置為 2GGSCI ADD EXTRACT ext01, T

18、RANLOG, THREADS 1, BEGIN NOWGGSCI ADD EXTTRAIL ./dirdat/ab, EXTRACT ext01, MEGABYTES 1024- 添加傳輸進(jìn)程:dpe01- 將源端的$OGG_HOME/dirdat/ab 傳輸?shù)侥繕?biāo)端的$OGG_HOME/dirdat/xeGGSCI ADD EXTRACT dpe01, EXTTRAILSOURCE ./dirdat/abGGSCI ADD RMTTRAIL ./dirdat/xe, EXTRACT dpe01, MEGABYTES 10244.4. 啟動進(jìn)程GGSCI start mgr參數(shù)說明:DYNA

19、MICRESOLUTION:動態(tài)表名RMTHOST 26, MGRPORT 7809:目標(biāo)端地址及管理端口RMTTRAIL ./dirdat/xe, FORMEVEL 3:目標(biāo)端接收日志的日志為$OGG_HOME/dirdat/xeGGSCI start ext01GGSCI start dpe01GGSCI info all4.5. 生成表結(jié)構(gòu)定義文件1.編輯$OGG_HOME/dirprm/schema.prm(以同步 scott 用戶下的表為例,schema.def要為絕對路徑)vi $OGG_HOME/dirprm/schema.prm-defsfile /mn

20、t/disk1/oracle/product//dirdef/schema.defuserid scott,password tigertable scott.*;2.生成表結(jié)構(gòu)信息$OGG_HOME/defgenparamfile $OGG_HOME/dirprm/schema.prmnoextr3.將 schema.def 拷貝到目標(biāo)端$OGG_HOME/dirdef 目錄4.6. 添加 trandata4.6.1. 如果表的列數(shù)不大于 32GGSCI dblogin userid goldengate password goldengateGGSCI add tranda

21、ta owner.table,cols(col1,col2.)GGSCI info trandata owner.table注意:add trandata 時一定不要包含主鍵,否則會報 ORA-00957 錯誤。4.6.2. 如果表的列數(shù)大于 32例如,假設(shè)表 scott.t1 有 40 列,列名從 col1 到 col40,此時,需要修改表的屬性:SQL alter table scott.t1 add supplemental log group group1(col,col2,.,col30) always;SQL alter table scott.t1 add supplementa

22、l log group group2(co31,col32,.,col40) always;5. 目標(biāo)端 OGG 配置5.1. 安裝 OGG5.1.1. 創(chuàng)建 oracle 用戶和 oinstall 組$ useradd oracle$ groupadnstall$ usermod -g oinstall oracle5.1.2. 使用 oracle 用戶安裝 ogg略。5.1.3. 設(shè)置環(huán)境變量- 修改 oracle 用戶下的環(huán)境變量export OGG_HOME=OGG 安裝目錄exportLD_LIBRARY_PATH=$OGG_HOME:$OGG_HOME/lib:/usr/java/

23、latest/jre/lib/amd64/server/:/usr/ja va/latest/jre/lib/amd64/export.UTF-85.1.4. 創(chuàng)建 OGG 相關(guān)目錄GGSCI create subdirs5.1.5. 上傳 jar 包將以下文件上傳到$OGG_HOME/1.oracle 的 lib2.ggjava.zip,并解壓到當(dāng)前文件3.libggjava_ue.so將以下文件(tdt 安裝目錄下可以找到)上傳到$OGG_HOME/dirprm/- 注意:以下的 jarhandlroperties 的-Djava.class.path 決定commons-beanutil

24、s-1.8.0.jarcommons-collections-3.2.1.jarcommons-lang-2.3.jarcommons-logging-1.1.1.jarezmorph-1.0.6.jarjson-lib-2.4-jdk15.jarlog4j-1.2.16.jarslf4j-api-1.6.1.jarslf4j-log4j12-1.6.1.jartransporter-adaptor-1.0.0-transwarp-tdh470.jar5.1.6. 上傳 handlroperties將 handlroperties 上傳到$OGG_HOME/dirprm修改權(quán)限:將 handl

25、roperties 中的 gg.handler.tdDir 目錄,權(quán)限改為 777gdler5.2. 編輯進(jìn)程5.2.1. 編輯管理進(jìn)程GGSCI edit params mgrPORT 7809DYNAMICPORTLIST 7810-7820PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOS, MINKEEPDAYS 305.2.2. 編輯 Handler 進(jìn)程- 以 scott 用戶為例,NLS_LANG 的值根據(jù)源端數(shù)據(jù)庫字符集填寫GGSCI edit params handlerEXTRACndlerSOURCEDEFS ./dirdef/schema.

26、defSETENV (GGS_USEREXIT_CONF = dirprm/handlroperties)SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)GetEnv (JAVA_HOME)GetEnv (PATH)GetEnv (LD_LIBRARY_PATH)GETUPDATEBEFORESPREPDATESCUSEREXIT ./libggjava_ue.so CUSEREXIT PASSTHRU INCLUDEUPDATEBEFORESTABLE SCOTT.*;5.3. 添加進(jìn)程GGSCI add extracndler,exttrailsour

27、ce dirdat/xe5.4. 啟動進(jìn)程GGSCI start mgr6. 目標(biāo)端 TDT 配置6.1. 安裝 TDTTDT4.7 安裝包,使用 rpm 進(jìn)行安裝。6.2. 上傳 hdfs 配置文件將 NameNode 節(jié)點的 core-site.xml 和 hdfs-site.xml 拷貝到/etc/tda/conf/hadoop/目錄。6.3. 配置 tdt-site.xmlvi /etc/tda/conf/nodes.service:namenode 節(jié)點的主機(jī)名2.tdt.jdbc.url:配置 inceptor 連接串3.tdt.

28、jdbc.driver.class:inceptor 驅(qū)動名稱4.添加以下內(nèi)容(若缺少以下內(nèi)容,啟動 job 時會報 SASL 錯誤):tdt.server.thrift.bind.hostTDT 所在的主機(jī)名5.tdt.task.rule.file.location:rule.json 位置,默認(rèn)為/etc/tdt/conf/rule.json6.tdt.server.logging.task.log.location:TDT 日志的位置7.tdt.task.live.time:job 任務(wù)保留時間,調(diào)試階段可以設(shè)為 2day8.其他:如果 inceptor 開啟了安全,請對相關(guān)參數(shù)進(jìn)行配置

29、6.4. 配置持久層配置持久層時需要使用另外,只要 TDT 所在的節(jié)點可以數(shù)據(jù)庫,可以選擇 metastore 或新建一個數(shù)據(jù)庫,到即可,并不要求 TDT 和在同一節(jié)點。假設(shè)使用 07 上的,其主機(jī)名為 node1。6.4.1. 新建 dataSpertiesvi /etc/tda/conf/dataSperties-.jdbc.Driverurl=jdbc:/07:3306/studio?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&aut

30、oReconnect=trueusername=rootpassword=123456poolQuery=select 1poolEnabled=truepoolConnectionsNotUsedFor=36000006.4.2. 新建 tdt_dataflow_task 表- 登錄 07 節(jié)點上的$-u root create database studio; create table studio.tdt_dataflow_task(idbig(20)not null PRIMARY KEY AUTO_INCREMENT ,public_handle_idvarcha

31、r(50) ,secret_handle_idvarchar(50) ,susvarchar(50) ,definitionlongtext,finish_timedatetime,clean_flagtiny(1) default 0,dataflow_idbig(20),start_timedatetime);6.4.3. 用戶賦權(quán)$-u root grant all privileges on *.* to rootnode1 identified by 123456; flush privileges;驗證:$-h node1 -u root -p1234566.5. 創(chuàng)建 TDT 數(shù)

32、據(jù)庫- 登錄到 Inceptor,創(chuàng)建 tdt 數(shù)據(jù)庫create database tdt;6.6. 創(chuàng)建 TDT 數(shù)據(jù)流作業(yè)TDT 作業(yè)由一個 JSON 配置文件進(jìn)行描述,邏輯上為一個有向無環(huán)圖。一個作業(yè)由不同的節(jié)點組成,節(jié)點類型可以劃分為三大類:Reader、Transformer 和 Writer。每個節(jié)點都有唯一的名字,通過在 NodeDependency 中定義多組 Map 來描述所有在有向無環(huán)圖中出現(xiàn)的邊,每個任務(wù)的具體屬性則在NodeDescription 中定義。例如, 源端要同步 POLICY 、UW_APPLY_INFO 、 TMP_UW_APPLY_INFO 、 HX_

33、BIGDATA_TEST01四 個 表 , 其 中HX_BIGDATA_TEST01 表要求在目標(biāo)端的表中額外增加一列JSON 配置文件如下:數(shù)據(jù)進(jìn)入目標(biāo)庫的時間,其5.0 版本將提供頁面配置json 的方法。目前需要手動編輯,生成json 的如下:$ mkdir /tmp/ogg$od 777 /tmp/oggGGSCI starndler4啟動ter 進(jìn)程$ hadoop fs -mkdir /tmp/ogg/data$ sudo -u hdfs hadoop fs -od -R 777 /tmp/ogg$ cd /usr/lib/tda/bin$ sh tdt.shter/tmp/ogg

34、/data/tmp/ogg5使用 sqoop 將源端的全量數(shù)據(jù)抽取到 TDH 的 ORC 事務(wù)表。6.8. 開啟同步6.8.1. 單次提交任務(wù)流作業(yè)$ cd /usr/lib/tda/bin$ sh tdt.sh exlehadooptest03 20000 execute /usr/lib/tda/exles/reader/test.json6.8.2. 循環(huán)提交任務(wù)流作業(yè)- 循環(huán)調(diào)用,每 60s 調(diào)用一次- hadooptest03 :tdt server 所在節(jié)點的主機(jī)名說明:每次提交后 TDT server 將負(fù)責(zé)把 HDFS 上/tmp/ogg/data 中未被處理的數(shù)據(jù)搬運至/tm

35、p/ogg/durrent 中,并把這批數(shù)據(jù)同步至 ORC Tranion 表中。如果執(zhí)行成功,current 目錄下會產(chǎn)生一個 succeed 文件;如果執(zhí)行失敗,則產(chǎn)生一個 failed 文件。下次提交任務(wù)時,將首先處理current 目錄下的數(shù)據(jù),處理完成后再處理新的數(shù)據(jù),從而保證數(shù)據(jù)不丟失。注意:請不要改變 current 文件夾下任何文件。注意:如果源端有 date 類型數(shù)據(jù),sqoop 時請使用 to_char(date,yyyy-MM-dd hh24:mi:ss)進(jìn)行轉(zhuǎn)換。ORC 表中,date 類型不時分秒,如需時分秒請使用 timest類型。#!/bin/shwhile 1=1 dosh tdt.sh exle hadooptest03 20000 execute /usr/lib/tda/exles/reader/test.jsonsleep 60done6.9. TDT 日志- 查看 TDT 日志:$ tail -f /var/log/tda/tda-server.out7. 補

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論