Bài viết này sẽ hướng dẫn cách sử dụng Oracle GoldenGate để đồng bộ dữ liệu giữa 2 CSDL SQL Server 2012
A. CẤU HÌNH SQL SERVER
i. Môi trường NGUỒN
i.1. Tạo Database mới tên là DBSOURCE
i.2. Tạo user mới tên là gg_user, password là gg_user
i.3. Phân quyền gg_user có quyền db_owner
i.4. Tạo bảng EMP và DEP trong DBSOURCE
i.5.Bật mode CDC của DBSOURCE
ii. Môi trường ĐÍCH
ii.1 Tạo Database mới tên là DBTARGET
ii.2. Tạo user mới tên là gg_user, password là gg_user
ii.3. Phân quyền gg_user có quyền db_owner
ii.4. Tạo bảng EMP và DEP trong DBTARGET
B. CẤU HÌNH ODBC SYSTEM DATA SOURCE
Thực hiện bước này ở cả 2 môi trường nguồn và đích với:
C. CẤU HÌNH OGG
i. Giải nén file OGG Core for SQL Server windows x64 (tải GoldenGate for SQL Server cho windows x64 tại đây)
ii.1. Đăng nhập GGSCI
ii.2. Cấu hình Port cho tiến trình Manager
Nhập thông số cấu hình cho tiến trình MANAGER (trong Notepad) và lưu lại
ii.3. Cấu hình tham số cho tiến trình Extract
Nhập thông số cấu hình cho tiến trình EXTRACT (trong Notepad) và lưu lại
ii.4. Cấu hình tham số cho tiến trình Data Pump
Nhập thông số cấu hình cho tiến trình DATA PUMP (trong Notepad) và lưu lại
ii.5. Khai báo thêm DATASTORE và 2 tiến trình EXTRACT và DATA PUMP
ii.6. Bật tính năng đọc thông tin giao dịch các bảng dữ liệu của SQL Server
ii.7. Khởi động các tiến trình
iii. Môi trường ĐÍCH
iii.1. Đăng nhập GGSCI
iii.2. Cấu hình Port cho tiến trình Manager
Nhập thông số cấu hình cho tiến trình MANAGER (trong Notepad) và lưu lại
iii.3. Cấu hình tham số cho tiến trình Replicat
Nhập thông số cấu hình cho tiến trình REPLICAT (trong Notepad) và lưu lại
iii.4. Thêm tiến trình REPLICAT
iii.5. Khởi động các tiến trình
D. KIỂM THỬ VIỆC ĐỒNG BỘ DỮ LIỆU NGUỒN-ĐÍCH
Mở SQL Server Management Studio ở DBSOURCE và insert cá dữ liệu mẫu sau
Kiểm tra bên môi trường đích.
*Thực hiện việc DML dữ liệu tương tự cho các bảng còn lại.
A. CẤU HÌNH SQL SERVER
i. Môi trường NGUỒN
i.1. Tạo Database mới tên là DBSOURCE
i.2. Tạo user mới tên là gg_user, password là gg_user
i.3. Phân quyền gg_user có quyền db_owner
i.4. Tạo bảng EMP và DEP trong DBSOURCE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | USE [DBSOURCE] GO CREATE TABLE [dbo].[emp]( [id] [int] NULL, [ename] [varchar](50) NULL ) GO CREATE TABLE [dbo].[dep]( [id] [int] NOT NULL PRIMARY KEY, [dname] [varchar](50) NULL ) GO |
i.5.Bật mode CDC của DBSOURCE
1 2 3 4 5 | USE [DBSOURCE] GO EXEC sys.sp_cdc_enable_db GO |
ii. Môi trường ĐÍCH
ii.1 Tạo Database mới tên là DBTARGET
ii.2. Tạo user mới tên là gg_user, password là gg_user
ii.3. Phân quyền gg_user có quyền db_owner
ii.4. Tạo bảng EMP và DEP trong DBTARGET
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | USE [DBTARGET] GO CREATE TABLE [dbo].[emp]( [id] [int] NULL, [ename] [varchar](50) NULL ) GO CREATE TABLE [dbo].[dep]( [id] [int] NOT NULL PRIMARY KEY, [dname] [varchar](50) NULL ) GO |
B. CẤU HÌNH ODBC SYSTEM DATA SOURCE
Thực hiện bước này ở cả 2 môi trường nguồn và đích với:
- System DSN cho môi trường nguồn tên là: DBSOURCE
- System DSN cho môi trường đích tên là: DBTARGET
Cấu hình ODBC System Data Source |
i. Giải nén file OGG Core for SQL Server windows x64 (tải GoldenGate for SQL Server cho windows x64 tại đây)
- Môi trường nguồn, lưu vào đường dẫn sau: C:\SRC\OGG12
- Môi trường đích, lưu vào đường dẫn sau: C:\TGT\OGG12
ii.1. Đăng nhập GGSCI
1 2 3 4 5 6 7 8 9 10 11 12 | C:\SRC\ogg12>ggsci Oracle GoldenGate Command Interpreter for SQL Server Version 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140920.0203 Windows x64 (optimized), Microsoft SQL Server on Sep 20 2014 04:33:50 Operating system character set identified as windows-1252. Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved. GGSCI (MASTER) 1> |
ii.2. Cấu hình Port cho tiến trình Manager
1 | ggsci>edit params mgr |
Nhập thông số cấu hình cho tiến trình MANAGER (trong Notepad) và lưu lại
1 | PORT 7809 |
ii.3. Cấu hình tham số cho tiến trình Extract
1 | ggsci>edit params sqlext |
Nhập thông số cấu hình cho tiến trình EXTRACT (trong Notepad) và lưu lại
1 2 3 4 5 6 7 8 | EXTRACT sqlext SOURCEDB dbsource, USERID gg_user, PASSWORD gg_user EXTTRAIL c:\src\ogg12\dirdat\lt TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT TRANLOGOPTIONS EXCLUDEUSER gg_user WARNLONGTRANS 1h, CHECKINTERVAL 30m REPORTCOUNT EVERY 10 MINUTES, RATE TABLE dbo.*; |
ii.4. Cấu hình tham số cho tiến trình Data Pump
1 | ggsci>edit params sqldpump |
Nhập thông số cấu hình cho tiến trình DATA PUMP (trong Notepad) và lưu lại
1 2 3 4 5 6 | EXTRACT sqldpump PASSTHRU RMTHOST SLAVE01, MGRPORT 7809, COMPRESS RMTTRAIL c:\tgt\ogg12\dirdat\rt REPORTCOUNT EVERY 10 MINUTES, RATE TABLE dbo.*; |
ii.5. Khai báo thêm DATASTORE và 2 tiến trình EXTRACT và DATA PUMP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | GGSCI (MASTER) 1> create subdirs Creating subdirectories under current directory C:\SRC\ogg12 Parameter files C:\SRC\ogg12\dirprm: already exists Report files C:\SRC\ogg12\dirrpt: created Checkpoint files C:\SRC\ogg12\dirchk: created Process status files C:\SRC\ogg12\dirpcs: created SQL script files C:\SRC\ogg12\dirsql: created Database definitions files C:\SRC\ogg12\dirdef: created Extract data files C:\SRC\ogg12\dirdat: created Temporary files C:\SRC\ogg12\dirtmp: created Credential store files C:\SRC\ogg12\dircrd: created Masterkey wallet files C:\SRC\ogg12\dirwlt: created Dump files C:\SRC\ogg12\dirdmp: created GGSCI (MASTER) 2> create datastore Profile 'Trace' added. 2016-11-26 21:50:00 INFO OGG-06489 Datastore created. GGSCI (MASTER) 3> add extract sqlext, tranlog, begin now EXTRACT added. GGSCI (MASTER) 4> add exttrail c:\src\ogg12\dirdat\lt, extract sqlext, megabytes 50 EXTTRAIL added. GGSCI (MASTER) 5> add extract sqldpump, exttrailsource C:\src\ogg12\dirdat\lt EXTRACT added. GGSCI (MASTER) 5> add rmttrail c:\tgt\ogg12\dirdat\rt, extract sqldpump, megabytes 50 RMTTRAIL added. GGSCI (MASTER) 6> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER STOPPED EXTRACT STOPPED SQLDPUMP 00:00:00 00:04:22 EXTRACT STOPPED SQLEXT 00:00:00 00:05:23 |
ii.6. Bật tính năng đọc thông tin giao dịch các bảng dữ liệu của SQL Server
1 2 3 | ggsci>DBLOGIN SOURCEDB DBSOURCE, USERID gg_user, PASSWORD gg_user ggsci>ADD TRANDATA dbo.* |
ii.7. Khởi động các tiến trình
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | GGSCI (MASTER) 1> start mgr Manager started. GGSCI (MASTER) 2> start sqlext Sending START request to MANAGER ... EXTRACT SQLEXT starting GGSCI (MASTER) 3> start sqldpump Sending START request to MANAGER ... EXTRACT SQLDPUMP starting GGSCI (MASTER) 4> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING SQLDPUMP 00:00:00 00:00:00 EXTRACT RUNNING SQLEXT 00:00:00 00:00:00 |
iii. Môi trường ĐÍCH
iii.1. Đăng nhập GGSCI
1 2 3 4 5 6 7 8 9 10 11 12 | C:\TGT\ogg12>ggsci Oracle GoldenGate Command Interpreter for SQL Server Version 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140920.0203 Windows x64 (optimized), Microsoft SQL Server on Sep 20 2014 04:33:50 Operating system character set identified as windows-1252. Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved. GGSCI (SLAVE01) 1> |
iii.2. Cấu hình Port cho tiến trình Manager
1 | ggsci>edit params mgr |
Nhập thông số cấu hình cho tiến trình MANAGER (trong Notepad) và lưu lại
1 | PORT 7809 |
iii.3. Cấu hình tham số cho tiến trình Replicat
1 | ggsci>edit params sqlrep |
Nhập thông số cấu hình cho tiến trình REPLICAT (trong Notepad) và lưu lại
1 2 3 4 5 | REPLICAT sqlrep SOURCEDB dbtarget, USERID gg_user, PASSWORD gg_user ASSUMETARGETDEFS REPORTCOUNT EVERY 10 MINUTES, RATE MAP dbo.*, TARGET dbo.*; |
iii.4. Thêm tiến trình REPLICAT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | GGSCI (SLAVE01) 1> create subdirs Creating subdirectories under current directory C:\TGT\ogg12 Parameter files C:\TGT\ogg12\dirprm: already exists Report files C:\TGT\ogg12\dirrpt: created Checkpoint files C:\TGT\ogg12\dirchk: created Process status files C:\TGT\ogg12\dirpcs: created SQL script files C:\TGT\ogg12\dirsql: created Database definitions files C:\TGT\ogg12\dirdef: created Extract data files C:\TGT\ogg12\dirdat: created Temporary files C:\TGT\ogg12\dirtmp: created Credential store files C:\TGT\ogg12\dircrd: created Masterkey wallet files C:\TGT\ogg12\dirwlt: created Dump files C:\TGT\ogg12\dirdmp: created GGSCI (SLAVE01) 2> add replicat sqlrep, exttrail c:\tgt\ogg12\dirdat\rt, nodbcheckpoint REPLICAT added |
iii.5. Khởi động các tiến trình
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | GGSCI (SLAVE01) 1> start mgr Manager started. GGSCI (SLAVE01) 2> start sqlrep Sending START request to MANAGER ... REPLICAT SQLREP starting GGSCI (SLAVE01) 3> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING SQLREP 00:00:00 00:00:03 |
D. KIỂM THỬ VIỆC ĐỒNG BỘ DỮ LIỆU NGUỒN-ĐÍCH
Mở SQL Server Management Studio ở DBSOURCE và insert cá dữ liệu mẫu sau
1 2 3 4 5 6 | insert into emp values(1,'Johny'); go insert into emp values(2,'Sandy'); go update emp set ename='Johnny' where id=1; go |
*Thực hiện việc DML dữ liệu tương tự cho các bảng còn lại.