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.

Wednesday 23 November 2016

Các tiến trình của Oracle GoldenGate 12


Điều làm cho OGG trở nên linh hoạt và có khả năng mở rộng đó chính là các tiến trình xử lý Sao chụp dữ liệu (Capture), Truyền dữ liệu (Transmit) và Phân phối dữ liệu (Deliver) trên các môi trường không đồng nhất. Các tiến trình này kết hợp với các tập tin Trail để đồng bộ các giao dịch giữa các môi trường với nhau. Phần tiếp theo sẽ lần lượt giới thiệu về các tiến trình của OGG.

OGG Processes
 
1. Manager Process
Tiến trình Manager đảm nhận các công việc sau đây:
  • Khởi động hoặc khởi động lại các tiến trình khác của OGG
  • Quản lý cổng kết nối của các tiến trình
  • Quản lý các tập tin Trail
  • Quản lý các sự kiện, lỗi và báo cáo vượt ngưỡng
1 tiến trình Manager có thể quản lý nhiều loại tiến trình khác của OGG. Điều này giúp cho việc quản lý trở nên tập trung hơn trên 1 môi trường.

2. Collector Process
Tiến trình này là 1 tiến trình chạy ngầm ở môi trường đích khi việc đồng bộ thay đổi trực tuyến hoạt động. Tiến trình này đảm bảo các công việc sau:
  • Đảm bảo yêu cầu kết nối giữa tiến trình Extract ở môi trường nguồn và tiến trình Manager ở môi trường đích hoạt động ở cổng kết nối hợp lệ
  • Nhận các giao dịch từ CSDL nguồn chuyển sang và ghi thành tập tin Trail ở môi trường đích
Khi có 1 yêu cầu kết nối, tiến trình Manager sẽ tự động kích hoạt tiến trình Collector để hoạt động mà không cần người dùng can thiệp vào. 1 tiến trình Collector chỉ có thể nhận thông tin duy nhất từ 1 tiến trình Extract. Tiến trình Collector sẽ tự ngừng khi tiến trình Extract ngừng.

3. Capture Process
Tiến trình này sẽ theo dõi sự thay đổi của dữ liệu (Change Data Capture - CDC) trong CSDL nguồn. Khi dữ liệu được “commit”, tiến trình này sẽ ghi những giao dịch thay đổi vào file trên đĩa cứng gọi là các tập tin Trail. Các tập tin Trail này có thể chuyển qua lại giữa các môi trường nguồn-đích thông qua giao thức TCP-IP.
Trường hợp môi trường nguồn-đích cùng sử dụng chung hệ thống file trên local hoặc Network File System thì các tập tin Trail này không cần chuyển qua lại giữa 2 môi trường.

4. Data Pump Process
Tiến trình này dùng để chuyển dữ liệu qua lại giữa môi trường nguồn-đích thông qua môi trường mạng. Trong 1 số trường hợp chúng ta không cần tiến trình này nếu như tiến trình Extract dữ liệu đẩy các giao dịch thay đổi ra tập tin Trail và lưu trực tiếp lên hệ thống đích. Tuy nhiên, điểm lợi khi sử dụng tiến trình này đó là: trong trường hợp mất kết nối mạng, tiến trình này vẫn tiếp tục thu thập các tập tin Trail phát sinh bên hệ thống nguồn, giữ chúng lại đến khi hệ thống mạng được khôi phục. Việc này đảm bảo các giao dịch mới phát sinh luôn được lưu lại và không bị thất thoát khi có sự cố mạng xảy ra.

5. Delivery Process
Tiến trình này chiụ trách nhiệm đọc các giao dịch từ các tập tin Trail và cập nhật chúng vào CSDL đích theo trình tự về thời gian dựa vào thứ tự SCN.

** Các tập tin TRAIL
Thật sự các tập tin Trail là gì? Chúng là các tập tin dạng nhị phân của OGG được sử dụng để lưu trữ các giao dịch thay đổi và được chuyển đổi qua lại giữa môi trường nguồn-đích. Các tập tin này hỗ trợ cho việc nhân bản và trích xuất liên tục các thay đổi trong CSDL bằng việc lưu lại các thay đổi trên các mẫu tin tạm thời vào đĩa cứng. Các tập tin Trail có thể tồn tại ở môi trường nguồn - gọi là các tập tin Local Trail hoặc trên môi trường đích - gọi là các tập tin Remote Trail. Bằng việc sử dụng các tập tin Trail, các tiến trình của OGG hoạt động gần như độc lập với nhau và giúp cho OGG trở nên linh hoạt và dễ dàng trong việc điều khiển xử lý và phân phối dữ liệu.

Tuesday 22 November 2016

Giới thiệu về Oracle GoldenGate 12


1. Giới thiệu:
Oracle Golden Gate (OGG) là giải pháp tích hợp dữ liệu theo thời gian thực, đảm bảo tính sẵn sàng truy cập vào cơ sở dữ liệu. OGG cung cấp một giải pháp đồng bộ dữ liệu các phiên giao dịch giữa các môi trường Production.

Cơ chế hoạt động của OGG là thu thập, lọc, vận chuyển, kiểm tra, chuyển đổi và phân phối dữ liệu các phiên giao dịch theo thời thực trong các môi trường cơ sở dữ liệu, đảm bảo tính toàn vẹn dữ liệu và hiệu suất cao giữa cơ sở dữ liệu nguồn và đích.

2. Các kiến trúc của OGG:
Một trong những lợi điểm của OGG đó là hỗ trợ nhiều kiến trúc đồng bộ dữ liệu khác nhau. Với các kiến trúc thông dụng này, doanh nghiệp hoàn toàn có thể chọn lựa cho mình 1 kiến trúc phù hợp với yêu cầu của tổ chức mình nhất cho việc đồng bộ dữ liệu. Sau đây là các kiến trúc của OGG:

2.1 Nhân bản dữ liệu 1 chiều (Unidirectional Replication):
Đây là kiến trúc thông dụng nhất của OGG. Kiến trúc này cho phép đồng bộ 1 chiều từ CSDL nguồn sang CSDL đích.

OGG Unidirectional Replication
 
2.2 Nhân bản dữ liệu 2 chiều (Bidirectional/Active-Active Replication):
Kiến trúc này cho phép đồng bộ dữ liệu theo cả 2 chiều, giữa CSDL nguồn và CSDL đích.

OGG Bidirectional Replication
 
2 trường hợp phổ biến thường được sử dụng trong kiến trúc này là:
- Nâng cấp CSDL: trong quá trình nâng cấp từng CSDL thì hệ thống vẫn phải đảm bảo các giao dịch phát sinh được ghi nhận vào CSDL.
- Mô hình CSDL có tính sẵn sàng cao (High Availability) để dự phòng khi có thảm hoạ xảy ra.
Trong xu thế điện toán đám mây ngày nay, nhiều tổ chức cũng đã áp dụng kiến trúc này cho việc di chuyển dữ liệu lên/xuống giữa Public/Private Cloud.

2.3 Kho dữ liệu theo thời gian thực (Real-time Data Warehousing):
Trong thế giới mà việc kinh doanh phát triển nhanh chóng thì dữ liệu đóng vai trò hết sức quan trọng đối với các tổ chức. Dữ liệu có giá trị được sử dụng để doanh nghiệp ra các quyết định kinh doanh quan trọng. OGG trong trường hợp này là 1 công cụ tốt cho việc hợp nhất tất cả các dữ liệu có liên quan từ các hệ quản trị CSDL không đồng nhất về 1 kho dữ liệu tập trung.

OGG Real-time Data Warehousing

2.4 Phân tán dữ liệu theo thời gian thực (Real-time Data Distribution):
Như phân tích ở trên, OGG là 1 công cụ tốt cho việc hợp nhất các nguồn dữ liệu về 1 nguồn tập trung. Ngoài ra, OGG còn thể hiện vai trò là 1 công cụ để phân tán dữ liệu ra các vị trí dữ liệu đích khác nhau.

OGG Real-time Data Distribution
Trong kiến trúc phân tán dữ liệu, OGG chuyển toàn bộ dữ liệu hoặc 1 phần dữ liệu từ CSDL nguồn đến các CSDL đích ở các vị trí địa lý khác nhau. Cách thực hiện này cho phép các tổ chức phân chia dữ liệu dựa trên khu vực địa lý hoặc khu vực kinh doanh khác nhau. Kiến trúc này đảm bảo được việc bảo mật dữ liệu theo vùng.

2.5 Phân tán dữ liệu thông qua việc chuyển thông điệp (Data Distribution via Messaging):
Kiến trúc này tương tự như kiến trúc phân tán dữ liệu theo thời gian thực đã được đề cập ở trên, điểm khác biệt duy nhất chính là cách chuyển dữ liệu từ nguồn đến đích. 
OGG Data Distribution via Messaging
 
Kiến trúc này sử dụng Flat file cho việc phân tán dữ liệu. Việc sử dụng Flat file đảm bảo OGG có thể chuyển dữ liệu đến bất kỳ hệ thống nào từ bất kỳ CSDL nào hoặc các ứng dụng văn phòng như Microsoft Excel hay các hệ thống lớn chạy Big Data.