本文主要講述ogg 12.3 通過CDC抽取mssqlserver 2016 enterprise的過程,以sqlserver為目標端投遞配置相對簡單,所以在此不在贅述。
針對以前的mssqlserver,是直接解析日誌的模式,所以配置略有不同。
配置步驟概述
1. 解壓ogg 12.3 for sqlserver軟體,執行create subdirs,編輯mgr並啟動。
2. 資料庫安裝配置,並打補丁
3. create schema ogg
4. 建立測試表
5. 建立globals檔案
6. 建立同步使用者
7. 確保sqlagent能正常啟動
8. 在源端DB上啟用CDC
9. 建立ODBC
10. add trandata
11. 建立清理歷史變更資料的job
12. 建立抽取程式
13. 測試
安裝過程
OGG軟體及sqlserver 2016安裝步驟在此省略。
補丁下載安裝
安裝完成sqlserver 2016 ent版本之後,還需要打補丁:
https://support.microsoft.com/en-us/help/3166120/fix-could-not-find-stored-procedure-sys-sp-cdc-parse-captured-column-l
源庫上建立OGG schema
用於存放配置表,其中cdc schema由啟用CDC步驟的儲存過程建立。
語法:
USE [sourcedb]
GO
CREATE SCHEMA [ogg] AUTHORIZATION [dbo]
GO
建立測試表
use sourcedb;
create table dbo.test1 (id int primary key, name varchar(50));
create table dbo.test2( id int, name varchar(50), age int);
use targetdb;
create table dbo.test1 (id int primary key, name varchar(50));
create table dbo.test2( id int, name varchar(50), age int);
建立Globals檔案
在OGG目錄下,新建globals檔案,內容如下
ggschema ogg
建立OGG同步使用者
建立訪問DB的使用者並賦權srcogg, tgtogg
目標端使用者
啟動sqlagent
agent用於啟動CDC對應的job, 所以必須要啟動agent才能正常同步。
源庫上啟用cdc
use sourcedb
EXECUTE sys.sp_cdc_enable_db
建立ODBC
如果需要遠端捕獲sqlserver,則只要配置通過odbc能遠端訪問DB即可實現。
OGG trandata
GGSCI>dblogin sourcedb srcdb, userid srcogg, password srcogg
GGSCI>add trandata dbo.test1
GGSCI>add trandata dbo.test2
執行完成之後,可以看到多了一張配置表
ogg.OracleGGTranTables由OGG 第一次add trandata自動建立。
建立OGG clean job
需要先刪除DB自帶的clean job
EXECUTE sys.sp_cdc_drop_job 'cleanup'
然後在OGG安裝目錄下,進入命令列,執行如下語句,其中(local)是預設的sqlserver例項
ogg_cdc_cleanup_setup.bat createjob srcogg srcogg sourcedb (local) ogg
其中: srcogg為使用者名稱及密碼,source為源DB的名稱,(local)為sqlserver例項, ogg為對應的schema。
此時,會再增加兩張配置表:
and add a new job
配置抽取程式
GGSCI (DESKTOP-V8IQDQP) 6> view param exsrc
extract exsrc
sourcedb srcdb, userid srcogg, password srcogg
exttrail ./dirdat/aa
table dbo.*;
add extract exsrc, tranlog, begin now
add exttrail ./dirdat/aa, extract exsrc
測試
insert into dbo.test1 values(1, 'bc是中kos');
可以看到正常捕獲資料。