程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Ogg: Sybase to Oracle個人,sybaseoracle

Ogg: Sybase to Oracle個人,sybaseoracle

編輯:Oracle教程

Ogg: Sybase to Oracle個人,sybaseoracle


摘要:

  • sybase版本:Sybase15(源端)
  • Oracle版本:11g(目標端)
  • Goldengate版本:11.2.0.1.0(源端),12c(目標端)
  • 個人博客:www.czhiying.cn

Goldengate同步原理:

   Oracle GoldenGate軟件是一種基於日志的結構化數據復制備份軟件,它通過解析源數據庫在線日志或歸檔日志獲得數據的增量變化,再將這些變化應用到目標數據庫,從而實現源數據庫與目標數據庫同步。參考圖如下:

ogg同步原理圖

  從上圖可以知道,Ogg的同步實現方式有兩種:

  既然存在兩種同步方式,存在即有理,但是我還是推薦使用第二種方式同步數據。因為這樣本地有保存Trail文件,有保障一點。所以我下面的介紹也是基於第二種方式來進行同步的。

同步思路:

同步步驟:

假設需要同步的庫是test,則使用isql進入sybase命令行後,執行

use test

go

dbcc settrunc(ltm,valid)

go

目的:ogg的捕獲進程可以成功捕獲到事務日志變化的保證;如果沒有開啟此選項,extract進程啟動將會失敗,各位可以試驗一下。其實,如果沒有開啟此選項,當你使用ggsci進行添加附加日志的時候,ggsci也會提醒你沒有開啟某個庫的第二事務截斷點選項。

注意:這裡的ltm選項可以說又愛又恨啊,為什麼這麼說呢,請看我另外一篇文章。

  3.進入ggsci控制台,使用dblogin訪問數據庫,添加表級附加日志;

進入ggsci控制台後,使用命令:

dblogin sourcedb 數據源,userid 用戶名,password 密碼

注意:因為gg是oracle的產品,所以其他的數據庫需要使用odbc建立數據源,讓oracle能訪問到其數據庫,如何建立數據源,可以去上度娘,這裡就不做介紹了。

success後使用命令添加附加日志:

add trandata test.test; (這裡的test.test的意思是,對test庫下的test表添加附加日志。)

成功添加的話,將會看到enable的相關信息,同時,如果這裡沒對同步庫開啟ltm選項的話,將會看到一條提醒,不過不用擔心,你過會再去開啟也行,反正在extract進程啟動之前開啟就行。

  4.配置ogg針對源數據庫(Sybase數據庫)的捕獲進程;

prm文件:

EXTRACT ext_test   --捕獲進程名稱

sourcedb test,userid sa,password 123456

EXTTRAIL dirdat/te

DISCARDFILE dirrpt/ext_test.dsc , APPEND

REPORTCOUNT EVERY 10000 RECORDS, RATE

GETTRUNCATES

table dbo.test;  --聲明需要捕獲數據變化的表

ggsci控制台:

edit params ext_test(將會創建一個ext_test.prm的參數文件,將上述參數復制進該文件)

add extract ext_test,tranlog,begin now(創建extract進程)

add exttrail dirdat/te,extract ext_test,megabytes 100(創建exttrail,既抓取數據後記錄到本地trail文件)

啟動extract進程:

start ext_test

如無意外,進程啟動成功。如果這裡啟動失敗的話,請使用命令,view report ext_test,查看錯誤報告,如果解決不了,可留下評論,博主看到會幫你解決。

  5.源端配置、啟動數據泵進程

目的:由於Ogg將捕獲到的數據變化記錄為自身定義的trail文件並存放於本地文件中,故需要使用數據泵進程將這些trail文件遠程投遞到目標機上。

ggsci控制台:

edit params dp_test

參數文件配置:

EXTRACT dp_test
sourcedb test,userid sa,password 123456
RMTHOST 127.0.0.1(准備投遞的遠程主機Ip), MGRPORT 7810(遠程主機mgr進程的端口號)
RMTTRAIL D:\ogg112101_ggs_Windows_x86_ora11g_32bit\dirdat\du
discardfile  dirrpt/dumpdsc.dsc,append,megabytes 1024
TABLE dbo.test;

add extract dp_test,exttrailsource dirdat/te(這裡創建數據泵進程,trail源是剛剛捕獲進程設置的trail路徑)

add rmttrail D:\ogg112101_ggs_Windows_x86_ora11g_32bit\dirdat\du,extract dp_test,megabytes 100(這裡創建rmttrail定義)

start dp_test

如無意外,進程成功開啟。這裡要注意的一點是,准備投遞過去的那台電腦,必須先安裝好ogg,由於博主這裡是使用同一台電腦,所以博主這裡安裝了兩個Ogg,一個for sybase,一個for oracle,兩個是不同端口的。

  6.目標端配置、啟動應用進程

目的:將源端投遞過來的trail文件進行解密、分析,將源端的增量數據同步更新到目標數據庫。

目標端ggsci:

edit params rep_test

參數文件配置:

REPLICAT rep_test
SOURCEDEFS dirdef/def_test.def
USERID ogg, PASSWORD 123456
Discardfile dirrpt/rep_test.dsc,append,megabytes 1024
REPERROR (DEFAULT, discard)
Map dbo.test, TARGET ogg.TEST;

Dblogin userid ogg, password 123456(訪問oracle數據庫,目的是建checkpoint表)

Add checkpointtable ogg.chkpt_test(表名隨意,有意義就行)

add replicat rep_test,exttrail dirdat/du,CHECKPOINTTABLE ogg.chkpt_test(這裡的exttrail,是指源端投遞過來的trail文件)

start rep_test

啟動成功,即可在sybase端試試插入數據,更新數據,刪除數據,是否會進行同步。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved