魔獸傳奇

          java程序愛好者
          posts - 28, comments - 16, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Oracle GoldenGate配置及學習

          Posted on 2012-10-17 11:58 龍旋風 閱讀(6451) 評論(0)  編輯  收藏

          Oracle GoldenGate學習總結

           

          一、Oracle GoldenGate工作原理:

             http://wenku.baidu.com/view/0768726f561252d380eb6e82.html

             網上有,不再描述,具體參考:

              http://wenku.baidu.com/view/59d54ee80975f46527d3e140.html

              Oracle GoldenGate產品的相關下載地址:

              http://edelivery.oracle.com

          http://www.oracle.com/technetwork/cn/testcontent/index-100295-zhs.html

             

                 GoldenGate幾個重要進程介紹:

          1、Manager管理進程在兩端開啟,監控和重啟其他進程;分配數據存儲和報告錯誤及事件;

          2、Extract進程從日志中抓取并傳輸到target端事務數據;

          3、Server Collector進程在target(接受)端接受數據并寫入trail文件;

          4、Replicat進程讀取trail文件,并應用到traget數據庫;

          5、trail文件時gg自己抓捕信息的文件,是一個OS文件,存放在./dirdat/下,以X00000命名,N順序1,2,3…此文件用完可配置參數自動刪除。

           

          二、Oracle GoldenGate配置:

          1、同一臺計算上,部署兩個Orcle數據庫,yglis源數據庫,ygtest目標數據庫。分部建立兩個GG環境:

          2、將下載的GoldenGate解壓重新命名,建立兩個gg環境的如下:

              注:解壓后的文件夾名稱不能為Oracle GoldenGate會存在沖突。

                  源數據配置GG路徑:

                  D:\gg\ggs_yglis

                  目標數據配置GG路徑:

          D:\gg\ggs2_ygtest

          3、配置OrateGoldenGate

                 >Cd D:\gg\ggs_yglis

                 >ggsci

          >create subdirs

          >exit

           

          >D:\gg\ggs2_ygtest

                 >ggsci

          >create subdirs

          >exit

          4、查看源數據庫是否開啟最小附加日志模式,進入到源數據庫的SQL命令模式:

              Sql> select supplemental_log_data_min from v$database;

              若查詢結果為N,執行下述命令:

              Sql> alter database add supplemental log data;

              Sql> alter system switch log file;

              Sql> exit;

          5、配置源數據庫的GoldenGate參數:

              注:配置相關數據前,請先建立測試表。

              gg> ggsci

              gg> edit params ./GLOBALS

              在彈出的文件中寫入

              MGRSERVNAME mgrtest1

              gg> exit;

          6、接著配置windows源數據庫進程

              > install addservice addevents

              配置成功后再次進入到源數據庫的ggsic

              gg> ggsic

              gg> edit params mgr

              在彈出的文件中輸入

              Port 7809

          7、配置一個Extract進程:

              gg> edit param eiextt

              在彈出的文件中輸入

              --注釋,第一行是Extract的名稱

              --第二三行處理的是中文亂碼問題

              --第四是要導出的數據庫連接

              --第五行是導入的trail文件路徑

              --第六行之后,需要出的表

              EXTRACT EIEXTT

          setenv (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")

          getenv (NLS_LANG)

          USERID yglis@ygcms, PASSWORD yglis

          EXTTRAIL ./dirdat/tt

          TABLE yglis.ldcode123;

          TABLE yglis.ldcom;

           

           

          上述文件建立后,需增加Extract進程

          gg> add extract eiextt,tranlog,begin now

          gg> add exttrail ./dirdat/tt,extract eiextt, megabytes 5   

              8、在源數據庫端增加一個PUMP進程

                 gg> edit params epmptt

                 在彈出的文件中輸入:

          EXTRACT EPMPTT

          PASSTHRU

          setenv (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")

          getenv (NLS_LANG)

          RMTHOST localhost,MGRPORT 7841

          RMTTRAIL ./dirdat/tt

          TABLE yglis.ldcode123;

          TABLE yglis.ldcom;

           

           

          上述文件建立后,增加pump進程

          gg> add extract epmptt,exttrailsource ./dirdat/tt

          gg> add rmttrail ./dirdat/tt,extract epmptt,megabytes 5

           

          所有上述配置完成后,源數據庫端配置完成,檢查進程可使用

          gg> info all

          啟動進程

          gg> start mgr

          gg> start *

              9、配置目標數據庫端的GoldenGate相關:

                 配置manager進程與源數據段一致

                 gg> edit params ./GLOBALS

                 彈出文件寫入

                 MGRSERVNAME mgrtarget

          CHECKPOINTTABLE ygtest.ggschkpt

          在退出exit中輸入install addservice addevents

           

          再進入到ggsci模式

          gg> edit params mgr

          在彈出的文本框中寫入

          Port 7841

           

          gg> add checkpointtable ygtest.ggschkpt

          gg> dblogin userid ygtest,password ygtest

          gg> add replicat poratt,exttrail ./dirdat/tt,checkpointtable ygtest.ggschkpt

           

          配置replicat進程(接受進程)

          gg> edit param poratt

          在彈出的文本框中寫入

          replicat poratt

          setenv (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")

          getenv (NLS_LANG)

          userid ygtest@ygtest, password ygtest

          assumetargetdefs

          reperror default, discard

          discardfile ./dirrpt/poratt.dsc, purge

          map yglis.ldcode123, target ygtest.ldcode123;

          map yglis.ldcom, target ygtest.ldcom;

           

          完成上述操作后,檢查進程:

          gg> info all

          gg> start mgr

          gg> start *

           

          10、當源、目標端的GG都配置完成,并且所有的進程都RUNNING狀態,說明配置成功,即可驗證

          源數據庫端配置

           

          目標端配置

           

            

             附加新建的表和測試數據:

            

             附加所有進程文件:

            

              源端進程配置文件

             

             

             

              目標端進程配置文件

            

            

            

           

          三、DDL表結構同步情況:

          DDL配置可以不用與DML配置同時進行,可以單獨進行,沒有關聯必要性,參考網址:

          http://www.xtopace.com/database/oracle-goldengate-ddl-synchronization-configuration.html

          1、進入到GoldenGate安裝路徑后,使用dba權限連接數據庫,查看相關配置是否OK

              確認數據庫歸檔模式:

          RECYCLEBIN是否關閉---10G以上版本為了支持DDL復制建議關閉RECYCLEBIN

          SQL> show parameter recyclebin;

          SQL> alter system set recyclebin=off;

          設置完成后,重啟數據庫服務,并重新進入GoldenGate安裝路徑,使用SYSDBA用戶登錄并執行下述SQL

              SQL> @marker_setup.sql

              SQL> @ddl_setup.sql

              SQL> @role_setup.sql

              SQL> GRANT GGS_GGSUSER_ROLE to [用戶名];

              SQL> @ddl_enable.sql

              SQL> @marker_status.sql

              SQL> exit

          2、修改上述二中配置的DML進程eiexttporatt進程,分部增加DDL復制同步的配置語句,具體截圖如下:

          修改eiexttporatt進程前先配置管理進程,增加GGSCHEMA用戶如下

          以下EiexttPoratt進程配置新增DDL相關。

          3、上述所有配置完成后,重啟manager服務,并開啟所有進程,測試修改表結構

          alter table ldcode123 add(test varchar(20));

          4、檢查另一個環境的表是否同步修改。

           

          四、遺留問題:

                

          1、目前使用GG在兩個庫之間的同步發現,同步數據中有中文,則出現亂碼,還未解決!

          中文亂碼問題解決,在配置的ExtractReplicat進程中增加配置語句:

          setenv (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")

          getenv (NLS_LANG)

                

          2、另對于同步進程進行修改的時候,是否需要終止進程?若終止進程,則如何保證數據同步的實時及準確性?

           

          3、雙向實時復制同一個表的數據,是否會存在問題?

          此問題已經解決,配置方法同Oracle GoldenGate步驟,反向配置源目端的進程,可以實現DML雙向數據同步,但不能解決DDL雙向數據同步。

                 附加文件:

                 YGLIS源端配置文件:

                       

                 YGTEST目標端配置文件:

                       

           

          五、如何卸載Oracle GoldenGate產品:

          如果想卸載源數據庫或目標數據庫不在使用Oracle GoldenGate產品了,且需從當前的windows系統的任務服務中刪除,執行操作步驟:

          1、進入源或目標GG配置目錄,輸入以下命令:

              gg> stop *

              gg> stop mgr

          2、刪除Oracle GoldenGate安裝路徑

          3、運行windows命令,執行sc delete [服務名]


          六、Oracle GoldenGate命令參數詳解:

                 參考官方文檔

                


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 曲松县| 陆丰市| 绵阳市| 自治县| 宜昌市| 福贡县| 历史| 垣曲县| 栖霞市| 双峰县| 荣成市| 太仓市| 连山| 凤翔县| 永安市| 延庆县| 岳阳市| 安远县| 剑川县| 宣城市| 墨玉县| 铁岭县| 安阳市| 兴安县| 中阳县| 仪征市| 璧山县| 眉山市| 屯留县| 徐汇区| 德江县| 达孜县| 都兰县| 迭部县| 高雄市| 杂多县| 田东县| 海安县| 东丽区| 乐业县| 青海省|