本文主要講述ogg 12.3 經過CDC抽取mssqlserver 2016 enterprise的過程,以sqlserver爲目標端投遞配置相對簡單,因此在此不在贅述。sql
針對之前的mssqlserver,是直接解析日誌的模式,因此配置略有不一樣。數據庫
1. 解壓ogg 12.3 for sqlserver軟件,執行create subdirs,編輯mgr並啓動。ide
2. 數據庫安裝配置,並打補丁sqlserver
3. create schema ogg測試
4. 建立測試表spa
5. 建立globals文件命令行
6. 建立同步用戶3d
7. 確保sqlagent能正常啓動日誌
8. 在源端DB上啓用CDCorm
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
用於存放配置表,其中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);
在OGG目錄下,新建globals文件,內容以下
ggschema ogg
建立訪問DB的用戶並賦權srcogg, tgtogg
目標端用戶
agent用於啓動CDC對應的job, 因此必需要啓動agent才能正常同步。
use sourcedb
EXECUTE sys.sp_cdc_enable_db
若是須要遠程捕獲sqlserver,則只要配置經過odbc能遠程訪問DB便可實現。
GGSCI>dblogin sourcedb srcdb, userid srcogg, password srcogg
GGSCI>add trandata dbo.test1
GGSCI>add trandata dbo.test2
執行完成以後,能夠看到多了一張配置表
ogg.OracleGGTranTables由OGG 第一次add trandata自動建立。
須要先刪除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');
能夠看到正常捕獲數據。