技術學習總結OracleGoldenGate之HelloWorld_第1頁
技術學習總結OracleGoldenGate之HelloWorld_第2頁
技術學習總結OracleGoldenGate之HelloWorld_第3頁
技術學習總結OracleGoldenGate之HelloWorld_第4頁
技術學習總結OracleGoldenGate之HelloWorld_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、技術學習總結Oracle GoldenGate之HelloWorld作者:溫曉烽創(chuàng)建時間:2014/08/14更新時間:2014/08/14參考:版本:1.0Note: Title, Subject, Last Updated Date, Reference Number, and Version are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you change any of these values, be car

2、eful not to accidentally delete the bookmark. You can make bookmarks visible by selecting Tools->OptionsView and checking the Bookmarks option in the Show region.Note: To add additional approval lines, press Tab from the last cell in the table above. Copy Number_Note: You can delete any elements

3、of this cover page that you do not need for your document. For example, Copy Number is only required if this is a controlled document and you need to track each copy that you distribute.文檔控制變更記錄5日期作者版本變更說明2012-11-25溫曉烽1.0初版審閱姓名職位分發(fā)拷貝編號姓名崗位1234Note: The copy numbers referenced above should be written

4、 into the Copy Number space on the cover of each distributed copy. If the document is not controlled, you can delete this table, the Note To Holders, and the Copy Number label from the cover page.目錄文檔控制ii1概述21.1技術原理21.2GoldenGate可靠的復制41.3GoldenGate支持操作系統(tǒng)和數(shù)據(jù)庫類型51.4 GoldenGate體系結構51.5 GoldenGate進程62 安

5、裝與配置72.1前提準備72.2安裝配置73服務管理193.1啟動服務193.2停止服務204測試215GoldenGate雙向復制(數(shù)據(jù)泵模式)225.1目標端創(chuàng)建extract進程225.2在源端數(shù)據(jù)庫創(chuàng)建checkpoint表255.3在源端創(chuàng)建replicat進程255.4測試266其它276.1查看日志276.2常用命令276.3好用的文檔27已解決及待解決問題28待解決問題28已解決問題2829 / 33文檔可自由編輯打印1概述1.1技術原理Oracle公司的GoldenGate TDM(交易數(shù)據(jù)管理)軟件是一種基于日志的結構化數(shù)據(jù)復制軟件,它通過解析源數(shù)據(jù)庫在線日志或歸檔日志獲得

6、數(shù)據(jù)的增刪改變化,再將這些變化應用到目標數(shù)據(jù)庫,實現(xiàn)源數(shù)據(jù)庫與目標數(shù)據(jù)庫同步、雙活。GoldenGate TDM 軟件可以在異構的IT基礎結構(包括幾乎所有常用操作系統(tǒng)平臺和數(shù)據(jù)庫平臺)之間實現(xiàn)大量數(shù)據(jù)亞秒一級的實時復制,其復制過程簡圖如下:利用捕捉進程(Capture Process)在源系統(tǒng)端讀取Online Redo Log或Archive Log,然后進行解析,只提取其中數(shù)據(jù)的變化如增、刪、改操作,并將相關信息轉換為GoldenGate TDM自定義的中間格式存放在隊列文件中。再利用傳送進程將隊列文件通過TCP/IP傳送到目標系統(tǒng)。捕捉進程在每次讀完log中的數(shù)據(jù)變化并在數(shù)據(jù)傳送到目標

7、系統(tǒng)后,會寫檢查點,記錄當前完成捕捉的log位置,檢查點的存在可以使捕捉進程在中止并恢復后可從檢查點位置繼續(xù)復制。目標系統(tǒng)接受數(shù)據(jù)變化并緩存到GoldenGate TDM隊列當中,隊列為一系列臨時存儲數(shù)據(jù)變化的文件,等待投遞進程讀取數(shù)據(jù)。GoldenGate TDM投遞進程從隊列中讀取數(shù)據(jù)變化并創(chuàng)建對應的SQL語句,通過數(shù)據(jù)庫的本地接口執(zhí)行,提交到數(shù)據(jù)庫成功后更新自己的檢查點,記錄已經(jīng)完成復制的位置,數(shù)據(jù)的復制過程最終完成。 由此可見,GoldenGate TDM是一種基于軟件的數(shù)據(jù)復制方式,它從數(shù)據(jù)庫的日志解析數(shù)據(jù)的變化(數(shù)據(jù)量只有日志的四分之一左右)。GoldenGate TDM將數(shù)據(jù)變化

8、轉化為自己的格式,直接通過TCP/IP網(wǎng)絡傳輸,無需依賴于數(shù)據(jù)庫自身的傳遞方式,而且可以通過高達9:1的壓縮率對數(shù)據(jù)進行壓縮,可以大大降低帶寬需求。在目標端,GoldenGate TDM可以通過交易重組,分批加載等技術手段大大加快數(shù)據(jù)投遞的速度和效率,降低目標系統(tǒng)的資源占用,可以在亞秒級實現(xiàn)大量數(shù)據(jù)的復制,并且目標端數(shù)據(jù)庫是活動的。 GoldenGate TDM提供了靈活的應用方案,基于其先進、靈活的技術架構可以根據(jù)用戶需求組成各種拓撲結構,如圖所示:GoldenGate TDM各種拓撲結構示意圖 1、單向數(shù)據(jù)復制:由一個源數(shù)據(jù)庫復制到一個目的數(shù)據(jù)庫,一般用于高可用性和容災,為生產(chǎn)機保持一個活

9、動的備份數(shù)據(jù)庫,從而在發(fā)生災難的時候迅速切換,減少數(shù)據(jù)丟失和系統(tǒng)宕機時間; 2、雙向數(shù)據(jù)復制:利用GoldenGate TDM可以實現(xiàn)兩個數(shù)據(jù)庫之間數(shù)據(jù)的雙向復制,任何一方的數(shù)據(jù)變化都會被傳遞到另一端,可以利用此模式開展雙業(yè)務中心; 3、廣播復制-由一個數(shù)據(jù)庫向多個數(shù)據(jù)庫復制,利用GoldenGate TDM的數(shù)據(jù)過濾功能可以實現(xiàn)數(shù)據(jù)的有選擇分發(fā); 4、集中復制-由多個數(shù)據(jù)庫向一個數(shù)據(jù)庫復制,可以將分布的、跨平臺或異構的多個數(shù)據(jù)庫集中到一個數(shù)據(jù)庫。此種模式廣泛應用于n+1模式的容災,通過將多個系統(tǒng)數(shù)據(jù)庫集中到一起,可以充分利用備份中心的設施,大幅減少投資;另外也用于跨平臺多系統(tǒng)的數(shù)據(jù)集成,為這

10、些提供系統(tǒng)提供一個統(tǒng)一視圖便于查詢和統(tǒng)計數(shù)據(jù)。 5、層復制-由A數(shù)據(jù)庫向B復制,同時又由B向C復制,可以在以上幾種模式基礎上無限制擴展。 由此可見,GoldenGate TDM的復制模式非常靈活,用戶可以根據(jù)自己的需求選擇特定的復制方式,并根據(jù)系統(tǒng)擴展對復制進行擴展。1.2GoldenGate可靠的復制GoldenGate TDM 可以提供可靠的數(shù)據(jù)復制,主要體現(xiàn)在下面三點: ·保證事務一致性 :GoldenGate TDM 在災備數(shù)據(jù)庫應用復制數(shù)據(jù)庫交易的順序與在生產(chǎn)中心數(shù)據(jù)庫上的順序相同,并且按照相同的事務環(huán)境提交,確保在目標系統(tǒng)上數(shù)據(jù)的完整性和讀一致性,為實時查詢和事務處理創(chuàng)造

11、了條件。 ·檢查點機制保障數(shù)據(jù)無丟失 GoldenGate TDM的抽取和復制進程使用檢查點機制記錄完成復制的位置。對于抽取進程,其檢查點記錄當前已經(jīng)抽取日志的位置和寫隊列文件的位置;對于投遞進程,其檢查點記錄當前讀取隊列文件的位置。檢查點機制可以保證在系統(tǒng)、網(wǎng)絡或GoldenGate TDM進程故障重啟后數(shù)據(jù)無丟失。 ·可靠的數(shù)據(jù)傳輸機制 GoldenGate TDM 用應答機制傳輸交易數(shù)據(jù),只有在得到確認消息后才認為數(shù)據(jù)傳輸完成,否則將自動重新傳輸數(shù)據(jù),從而保證了抽取出的所有數(shù)據(jù)都能發(fā)送到備份端。數(shù)據(jù)傳輸過程中支持128位加密和數(shù)據(jù)壓縮功能; 1.3GoldenGate

12、支持操作系統(tǒng)和數(shù)據(jù)庫類型 GoldenGate TDM公司的核心產(chǎn)品Transactional Data Management (TDM),可以在異構的IT基礎結構之間實現(xiàn)大量數(shù)據(jù)的秒一級的數(shù)據(jù)捕捉、轉換和投遞。GoldenGate TDM可以支持幾乎所有常用操作系統(tǒng)如和數(shù)據(jù)庫平臺,如下表所示: 操作系統(tǒng)數(shù)據(jù)庫MS NT, 2000, XP, Linux, Sun Solaris, HP-UX, IBM AIX, HP NonStop, TRU64, IBM z/OS,OS/390 Oracle, DB2, MS SQL Server, MySQL, Enscribe, SQL/MP, SQL

13、/MX, Sybase, Teradata, 其他ODBC 兼容數(shù)據(jù)庫 1.4 GoldenGate體系結構下圖是最簡單Golden Gate結構圖,Golden Gate有源端和目標端,源端捕獲日志發(fā)送到目標端應用,這個過程分為六步驟。1、 捕獲:實時捕獲交易日志(已提交數(shù)據(jù)),包含DML和DDL,并可根據(jù)規(guī)則進行過濾。2、 隊列:把捕獲的日志數(shù)據(jù)加載入隊列(寫入trail文件),這是可選項,為了提高安全性,怕網(wǎng)絡傳丟了。也可以不入隊列,直接從redo buffer傳遞給目標端。3、 數(shù)據(jù)泵:將trail文件廣播到不同的目標端。4、 網(wǎng)絡:從源網(wǎng)絡壓縮加密后傳送到目的網(wǎng)絡。5、 接收隊列:接

14、收從源端傳過來的trail文件。6、 交付:把trail文件內容轉換成SQL語句在目標庫執(zhí)行。1.5 GoldenGate進程1)Manager進程:這是GG全局主進程,它是GG守護進程統(tǒng)籌全局,它可以啟動、監(jiān)控、終止Golden Gate的其它進程,收集錯誤報告及事件,分配數(shù)據(jù)存儲空間,發(fā)布閥值告警等,在源端和目標端有且只有一個Manager進程。 2)Extract進程:運行在源端的進程,實時捕獲交易數(shù)據(jù),可以直接在redo buffer捕獲傳遞到目標端,也可以在redo buffer捕獲先寫入trail隊列在傳遞到目標端。非Oracle庫支持從數(shù)據(jù)表捕獲數(shù)據(jù)。 3)Pump進程:運行在源

15、端的進程,將源端產(chǎn)生的本地trail文件廣播到不同的目標端,pump進程本質是extract進程的一種特殊形式,如果不使用trail文件,那么extract進程在捕獲完交易日志后直接傳遞到目標端,生成遠程trail文件。 4)Collector進程:運行在目標端的進程,專門接收從源端傳過來的trail文件日志生成隊列。 5)Delivery進程:運行在目標端的進程,通常我們也把它叫做replicat進程,是數(shù)據(jù)傳遞的最后一站,負責讀取遠程trail文件內容,解析為SQL語句在目標庫上執(zhí)行。2 安裝與配置2.1前提準備2.1.1軟件準備產(chǎn)品軟件版本介質安裝于GoldenGateGoldenGat

16、e12.1.2121210_fbo_ggs_Linux_x64_shiphome.zip源/目標2.1.1環(huán)境準備HostIP用途OS版本DB版本xfeng. localdomain192.168.55.130源RHEL 6.0 x86_6412.1.0naruto.localdomain192.168.55.131目標RHEL 6.0 x86_6412.1.0注:所有環(huán)境均采用虛擬機實現(xiàn):VMware Workstation 8.0.02.2安裝配置下面的配置是實現(xiàn)單向復制(源->目標)的配置,后面會有雙向復制(源<->目標)的例子。下面的配置涉及到兩臺機器,源與目標,所以

17、在進行配置前下面都會提到在哪臺機器上進行配置。首先將下載的GoldenGate軟件分別上傳到兩臺機器上。這里需要注意的是后面相關配置都是使用Oracle的Owner用戶(oracle)。2.2.1環(huán)境變量配置(源和目標)LD_LIBRARY2.2.2數(shù)據(jù)庫配置(源和目標)(1)在源數(shù)據(jù)庫啟動歸檔模式查看歸檔模式:從上面可以看到此時數(shù)據(jù)庫并沒有啟動歸檔模式,下面進行啟動。啟動成功后,打開數(shù)據(jù):下面進行手工日志的切換操作,看看歸檔日志是否成功生成:執(zhí)行切換命令:alter system switch logfile ;查看歸檔日志:(2)在源數(shù)據(jù)庫打開最小附加日志查看數(shù)據(jù)庫是否打開最小附加日志:打

18、開最小附加日志:alter database add supplemental log data ;alter system archive log current ;(3)在源和目標數(shù)據(jù)庫中創(chuàng)建表空間、用戶并且給用戶授權-創(chuàng)建表空間 用戶以及設置權限create tablespace goldengate logging datafile '/home/oracle/app/oradata/ORCL/data' size 200M; create user goldengate identified by sadeng default tablespace goldengat

19、e;grant connect to goldengate;grant create session to goldengate;grant alter session to goldengate ;grant resource to goldengate ;grant select any dictionary to goldengate;grant select any table to goldengate ;grant flashback any table to goldengate ;grant alter any table to goldengate ; grant inser

20、t any table to goldengate;grant update any table to goldengate;grant delete any table to goldengate;grant dba to goldengate; -一句搞定(4)在源和目標端創(chuàng)建test_goldengate和test_goldengate2表,后面我們將使用這個表來進行復制操作。create table test_goldengate (id number primary key, message varchar2(40) , message_date date) ;create tabl

21、e test_goldengate2 (id number primary key, message varchar2(40) , message_date date) ;2.2.3安裝GoldenGate(源和目標)(1)解壓執(zhí)行./runInstaller進行安裝選擇12c數(shù)據(jù)庫:指定安裝路徑:點擊安裝:安裝完成:2.2.4配置GoldenGate(源和目標)我們復制的思路是:把源端的數(shù)據(jù)庫goldengate用戶下的test_goldengate表的內容復制到目標端goldengate用戶下的test_goldengate表中。(1) 在源和目標端創(chuàng)建子文件夾(這里只在源端演示,目標端也

22、是同樣操作)進入安裝目錄,啟動ggsci:創(chuàng)建子文件夾:顯示當前環(huán)境信息:(2) 在源和目標端配置manager進程port 7809保存退出。登錄數(shù)據(jù)庫:(4)在源端添加表級附加日志add trandata goldengate.test_goldengate(5)在源端配置extract進程添加extract進程add ext exta , tranlog , begin now添加遠程隊列add rmttrail /home/oracle/goldengate/product/12.1.2/dirdat/sd, ext exta ,MEGABYTES 20注:由于本例中采用的extrac

23、t進程直接將數(shù)據(jù)推送到遠程,所以這里指定的remote上的地址。編輯extract進程參數(shù)文件:extract extasetenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")setenv (ORACLE_SID="orcl")userid goldengate , password sadenggettruncatesrmthost 192.168.55.131 , mgrport 7809rmttrail /home/oracle/goldengate/product/12.1.2/dirdat/sdtable go

24、ldengate.test_goldengate;保存退出。(6)在目標配置replicat進程在目標端數(shù)據(jù)庫創(chuàng)建checkpoint表,說明goldengate為checkpoint的專屬用戶。登錄數(shù)據(jù)庫上面語句:checkpoint表為防止在網(wǎng)絡斷開、進程終止時,從哪個位置來恢復應用。接下來配置replicat進程add replicat repa1 , exttrail /home/oracle/goldengate/product/12.1.2/dirdat/sd , checkpointtable goldengate.checkpoint編輯replicat進程參數(shù)replicat

25、 repa1 -handlecollisions assumetargetdefs setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK") setenv (ORACLE_SID="orcl") userid goldengate , password sadengmap goldengate.test_goldengate , target goldengate.test_goldengate;到這里為止,我們就完成了最簡單的配置。接下來我們啟動相關進程,然后進行的復制測試。3服務管理3.1啟動服務輸入info all

26、 查看當前進程的狀態(tài):可以看到此時的MANAGER和EXTRACT進程都是STOP狀態(tài)的,下面我們進行啟動。這里需要注意的是在進行復制時源端和目標端的MANAGER進程都需要啟動。在源端啟動extract進程啟動extract進程成功后,就可以在目標端上看到推送過來的trail文件了。在目標端啟動replicat進程3.2停止服務stop mgr4測試在上述都配置完成后,并啟動相應進程后,我們在源端往test_goldengate表插入數(shù)據(jù)。查看此時在目標端的trail文件,可以看到此時插入的兩條數(shù)據(jù)就寫進來了。在目標端啟動replicat進程成功后,在目標端數(shù)據(jù)庫就可以看到復制過來的數(shù)據(jù)了5

27、GoldenGate雙向復制(數(shù)據(jù)泵模式)上面的例子是基于源端到目標端的配置,下面進行雙向配置,即當目標端的test_goldengate2的表數(shù)據(jù)發(fā)生變化時同步到源端。這里需要注意的是此時我們此采用數(shù)據(jù)泵模式,現(xiàn)在本地存儲隊列文件,再使用pump進程傳遞到遠程機器(源端)的目錄中,然后使用replicat進程執(zhí)行轉化后的SQL語句應用在遠端數(shù)據(jù)庫中,實現(xiàn)目標端到源端的同步。5.1目標端創(chuàng)建extract進程執(zhí)行命令:add extract ext2,tranlog,begin now此時用info all查看已添加成功接下來設置在目標端抓取的隊列文件放在本地/home/oracle/gold

28、engate/product/12.1.2/dirdat/ds執(zhí)行命令:add exttrail /home/oracle/goldengate/product/12.1.2/dirdat/ds,extract ext2編輯參數(shù)文件執(zhí)行命令:edit params ext2extract ext2 tranlogoptions excludeuser goldengate setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK") setenv (ORACLE_SID="orcl") userid goldengate,p

29、assword sadeng exttrail /home/oracle/goldengate/product/12.1.2/dirdat/dstable goldengate.test_goldengate2;啟動ext2進程啟動成功后就可以看到在本地生成的隊列文件接著添加ext3進程,主要作用是把本地生成的隊列文件傳輸?shù)皆炊说?home/oracle/goldengate/product/12.1.2/dirdat目錄中。執(zhí)行命令:add extract ext3,exttrailsource /home/oracle/goldengate/product/12.1.2/dirdat/ds

30、添加遠程隊列文件:add rmttrail /home/oracle/goldengate/product/12.1.2/dirdat/ds,extract ext3編輯ext3參數(shù)文件extract ext3 tranlogoptions excludeuser goldengate setenv (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK") setenv (ORACLE_SID="orcl") passthru userid goldengate,password sadeng rmthost 192.168.55.1

31、30,mgrport 7809 rmttrail /home/oracle/goldengate/product/12.1.2/dirdat/ds table goldengate.test_goldengate2;注意:passthru表示傳輸進程在傳輸過程中只負責文件傳輸,不進行任何轉化.啟動ext3進程此時源端的對應目錄中就可以看到目標端傳輸過來的隊列文件5.2在源端數(shù)據(jù)庫創(chuàng)建checkpoint表在源端登陸數(shù)據(jù)庫:dblogin userid goldengate, password sadeng創(chuàng)建checkpoint信息的表:add checkpointtable goldenga

32、te.checkpoint此時可以看到創(chuàng)建checkpoint表5.3在源端創(chuàng)建replicat進程在源端執(zhí)行:add replicat rep2,exttrail /home/oracle/goldengate/product/12.1.2/dirdat/ds,checkpointtable goldengate.checkpoint配置rep2進程參數(shù):啟動rep2進程5.4測試配置成功后,我們在目標端的test_goldengate2表中插入測試數(shù)據(jù):注意:此時不要用glodengate用戶插入數(shù)據(jù)6其它6.1查看日志在配置完manager、extract、replicat進程后,執(zhí)行啟動命令后,可能會出現(xiàn)啟動不成功的情況,這是就需要我們看看具體的日志了。路徑為安裝目錄的ggserr.log6.2常用命令命令用途說明info all查看所有進程狀態(tài)info repa查看單個進程狀態(tài)info exta detail查看某個進程的詳細信息start | stop extract *啟動/停止所有extract進程*做通配符start | stop replicat *啟動/停止所有replicat進程啟動/停止所有replicat進程delete exta xxxx刪除某個exta進程delete repa

溫馨提示

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

評論

0/150

提交評論