All about Oracle Technologies

Wednesday 30 November 2016

Oracle GoldenGate 12: đồng bộ giữa SQL Server 2012 – SQL Server 2012

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
 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
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)
  • 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. Môi trường NGUỒN
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
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.

5 comments :

  1. This comment has been removed by the author.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Chào Anh NTP ,
    Cám ơn bài viết của Anh, Anh có thể hướng dẫn chi tiết về :"CẤU HÌNH ODBC SYSTEM DATA SOURCE " và "edit params sqlext" .
    Error lỗi của Em :"2018-04-23 15:19:31 ERROR OGG-00868 Oracle GoldenGate Capture for SQL Server, SQLEXT.prm: Supplemental logging is disabled for database 'DBSOURCE'. To enable logging, perform the following: 1) Set 'trunc. log on chkpt.' to false. 2) Create a full backup of the database. Please refer to the "Oracle GoldenGate For Windows and UNIX Administration Guide" for details."

    ReplyDelete
  5. Cám ơn anh/chị đã chia sẻ kiến thức.

    ReplyDelete