Kiến trúc Oracle GoldenGate 11g bao gồm các module riêng biệt nhưng có thể được kết hợp để cung cấp tối đa sự linh hoạt, tính sẵn sàng và hiệu suất cao cho các doanh nghiệp. Kiến trúc này tạo điều kiện cho việc di chuyển dữ liệu giao dịch trong bốn bước đơn giản nhưng vô cùng mạnh mẽ.
- Capture: Oracle GoldenGate 11g sao chụp các thao tác thay đổi dữ liệu đã được chấp thuận trong các log file của cơ sở dữ liệu giao dịch với một hiệu suất cao và chi phí thấp, không can thiệp trực tiếp vào cơ sở dữ liệu.
- Route: Oracle GoldenGate 11g dùng một loạt các giao thức vận chuyển, nén và mã hoá dữ liệu giao dịch trước khi gửi đi. Các dữ liệu giao dịch có thể được gửi thông qua các Open Database Connectivity hoặc thông qua một bộ chuyển đổi đặc biệt để đến hàng đợi JMS.
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 36
- Transform: Tại bất cứ thời điểm nào trước khi đưa dữ liệu vào hệ thống đích, Oracle GoldenGate 11g có thể được dùng để thực hiện một số chức năng sẵn có như lọc và biến đổi dữ liệu.
- Apply: Oracle GoldenGate 11g cập nhật các dữ liệu giao dịch đã được chấp thuận vào một hay nhiều cơ sở dữ liệu đích với độ trễ khoảng vài giây và bảo tồn tính toàn vẹn của giao dịch.
Oracle GoldenGate 11g bao gồm bốn thành phần và module riêng biệt: 1. Oracle GoldenGate Capture
2. Oracle GoldenGate Trail Files 3. Oracle GoldenGate Delivery 4. Oracle GoldenGate Manager
Hình 2.1: Kiến trúc cơ bản của Oracle GoldenGate 11g
Oracle GoldenGate Capture
Module Capture chụp các kết quả giao dịch đã được chấp thuận từ các hoạt động insert, update, delete của một cơ sở dữ liệu và định tuyến chúng để phân phối.
Chụp dữ liệu với tốc độ cao, tác động thấp: Module Capture không yêu cầu bất
cứ một thay đổi nào đối với các cơ sở dữ liệu nguồn cũng như các ứng dụng mà nó hỗ trợ. Để duy trì hiệu suất tối ưu, module Captutre sử dụng một loạt các kỹ
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 37
thuật CDC (change data capture) đối với cơ sở dữ liệu nguồn. Ví dụ, trong các cơ sở dữ liệu có hỗ trợ transaction log như Oracle, Microsoft SQL server, IBM DB2 (LUW), x/OS và Sysbase và những hệ này chạy trên các hệ thống HP NonStop/Enscribe, SQL/MP, và SQL/MX, các thay đổi được chụp thông qua việc truy cập trực tiếp đến các transaction log (hoặc redo log, nếu có thể) của cơ sở dữ liệu đó. Đối với những hệ thống sử dụng Teradata của Oracle, các API tuỳ chỉnh sẽ được phát triển để cho phép Oracle GoldenGate chụp các giao dịch đã được chấp thuận với hiệu quả tương tự. Oracle GoldenGate 11g cũng đã đạt được chứng nhận hỗ trợ cho các hệ thống Oracle Teradata.
Transaction log chứa tất cả các thay đổi của cơ sở dữ liệu và được duy trì tự động bởi các ứng dụng cơ sở dữ liệu độc lập của Oracle GoldenGate 11g. Do vậy, module Capture không yêu cầu thêm bảng nào vào cơ sở dữ liệu nên tổng chi phí giảm đáng kể so với kỹ thuật chụp dữ liệu dựa trên trigger. Các khảo sát thực tế từ các khách hàng của Oracle cho thấy phần trăm chi phí này chỉ chiếm một con số khi chạy module Capture trên cơ sở dữ liệu nguồn. Module Capture có thể tự động điều chỉnh bộ nhớ giao dịch của nó dựa trên kích thước và số lượng giao dịch mà nó chụp được, qua đó tối ưu hoá việc sử dụng bộ nhớ, cho phép chi phí thấp hơn trên các hệ thống nguồn.
Chọn lọc bảng, hàng, cột: Khi không phải tất cả các giao dịch thay đổi từ hệ
thống nguồn cần được sao chép đến hệ thống đích – như là báo cáo thời gian thực – module Capture cho phép người dùng lọc các bảng và hàng theo tiêu chí xác định và bỏ qua các mục không đáp ứng nhu cầu của họ. Người dùng cũng có thể lựa chọn và áp dụng các quy tắc chuyển đổi cho các cột cụ thể thông qua các chức năng có sẵn trong Oracle GoldenGate 11g hoặc Oracle Data Integrator Enterprise Edition.
Sử dụng mạng hiệu quả và xử lý dữ liệu khối lượng lớn: Module Capture có thể
định tuyến các giao dịch thông qua mạng LAN, WAN cũng như Internet và nó có thể làm giảm thiểu băng thông mạng bằng một số cách. Thông thường, dữ liệu được truyền đi chỉ là một phần nhỏ của dữ liệu được tạo ra trên cơ sở dữ liệu và được lưu trữ trong transaction log. Bởi vì chỉ có dữ liệu được chấp thuận mới được truyền đi, nên các hoạt động trung gian và thao tác roll-back không được chuyển giao. Lưu lượng mạng được tối ưu hoá bằng cách bó những bản ghi riêng
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 38
rẽ vào các gói dữ liệu lớn, hiệu quả hơn, tránh được vấn đề thắt cổ chai dạng record-at-a-time. Một số mức độ nén dữ liệu cũng được tích hợp để làm giảm hơn nữa lượng băng thông cần thiết cho việc truyền dữ liệu. Tuỳ thuộc vào kiểu dữ liệu, việc nén dữ liệu có thể làm giảm hơn 75% lượng dữ liệu cần chuyển.
Đối với những tình huống đòi hỏi khối lượng dữ liệu thay đổi rất lớn, người dùng có thể triển khai nhiều module Capture để giảm thiểu độ trễ giữa các hệ thống nguồn và đích.
Các điểm kiểm tra dữ liệu tin cậy: Oracle GoldenGate 11g tạo ra một điểm
kiểm soát các dữ liệu giao dịch mới nhất bất cứ khi nào nó gặp phải một giới hạn của các dữ liệu được chấp thuận (các lệnh commit tác động lên cơ sở dữ liệu). Điều này cho phép nó chuyển giao tất cả các bản ghi đã được chấp thuận đến hệ thống đích, ngay cả khi gặp sự cố hoặc hệ thống khởi động lại. Các điểm kiểm soát dữ liệu lưu trữ vị trí hiện tại đang xử lý của cả hai module Capture và Delivery. Sau khi mạng hoặc hệ thống được khôi phục, Oracle GoldenGate 11g khởi động lại từ điểm kiểm soát sau cùng. Oracle GoldenGate 11g cũng ghi các thao tác chưa được chấp thuận lên đĩa cứng để việc phục hồi dữ liệu nhanh chóng và đơn giản trong trường hợp quá trình chuyển giao và sao chụp dữ liệu bị dừng hoặc bị gián đoạn.
Oracle GoldenGate Trail Files
Trail File – cơ chế hàng đợi độc đáo của Oracle GoldenGate 11g – chứa dữ liệu thay đổi gần nhất trong một định dạng độc lập, có thể chuyển đổi được gọi là Oracle GoldenGate Universal Data Format và có thể được chuyển đổi sang XML và các định dạng phổ biến khác để cung cấp cho các ứng dụng khác nhau. Module Capture có thể tạo ra các tập dữ liệu duy nhất hoặc chồng lấn trong mỗi Trail File. Căn cứ vào yêu cầu thực hiện, người dùng có thể lưu trữ các Trail File trên hệ thống đích, hệ thống nguồn hoặc cả hai. Trail File cũng có thể được phân phối đến các hàng đợi loại khác và các giao tiếp ứng dụng khác.
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 39
Hình 2.2: Cơ chế hoạt động của Trail file.
Kiến trúc linh hoạt, riêng biệt: Một kiến trúc riêng biệt giải quyết nhiều vấn đề
được kết hợp chặt chẽ. Việc khớp các tiến trình với nhau tạo ra sự phụ thuộc giữa thu thập và chuyển giao dữ liệu. Ví dụ, nếu chuyển giao chậm hơn thu thập thì các hoạt động chuyển giao phải được tăng cường. Trong trường hợp cúp điện đột xuất, việc cách ly bảo đảm rằng các hệ thống không bị ảnh hưởng vẫn tiếp tục hoạt động.
Việc triển khai đồng bộ các quá trình hay việc phối hợp chặt chẽ các quá trình này có thể gây áp lực cho khả năng mở rộng. Một số lượng lớn các trạm kiểm soát liên quá trình cần phải thực hiện để bảo đảm dữ liệu không bị mất, do đó tạo ra nhiều thông điệp hơn và tổng chi phí vẫn còn cao. Tình trạng đứt mạng kéo dài hơn một vài phút cũng có thể gây ra việc tiêu thụ tài nguyên quá mức, bởi vì các giao dịch đang xử lý cần phải được xếp hàng đợi trong bộ nhớ và cuối cùng hoán
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 40
đổi vào đĩa cứng. Hoạt động của bộ nhớ ảo hay bộ nhớ vật lý không phải là liên tục, do đó nếu quá trình này thất bại, dữ liệu sẽ không nhất quán thậm chí sẽ bị mất.
Bằng cách phân đoạn dữ liệu trong Trail File, Oracle GoldenGate 11g tách riêng dữ liệu nguồn và đích để hỗ trợ sự không đồng nhất dữ liệu. Không giống như các kiến trúc khác thực hiện việc kết hợp các quá trình một cách chặt chẽ, kiến trúc riêng biệt này cho phép mỗi module thực hiện tác vụ của nó một cách độc lập.
Oracle GoldenGate 11g cũng cung cấp sự linh hoạt trong việc lựa chọn phần cứng, hệ điều hành và cơ sở dữ liệu nguồn và đích. Cũng hỗ trợ cho sự linh hoạt tối đa và dễ dàng trong sử dụng, người dùng có thể sử dụng các phiên bản khác nhau của các module Capture, Delivery và Trail Files trong việc thực hiện cùng một tác vụ.
Data Pumps: Tuỳ thuộc vào cấu hình và môi trường, có thể thích hợp hơn là tạo
ra các Trail File trên hệ thống nguồn và sử dụng tính năng riêng của Oracle GoldenGate 11g, gọi là Data Pump, để đẩy liên tục (gọi là bơm) các Trail File từ hệ thống nguồn đến hệ thống đích. Trong trường hợp gặp sự cố trục trặc mạng (giữa hệ thống nguồn và hệ thống đích), Oracle GoldenGate 11g vẫn có thể tiếp tục sao chụp các giao dịch bởi vì dữ liệu vẫn có thể xếp hàng đợi trong các Trail File tại hệ thống nguồn, tăng cường khả năng khôi phục trong trường hợp cơ sở dữ liệu gặp sự cố.
Tính năng Data Pump được Oracle khuyến cáo sử dụng nếu dữ liệu cần được phân phối đến nhiều đích từ một nguồn (một – nhiều). Trong khi module Capture chỉ tập trung vào việc sao chụp các giao dịch, thì từng Data Pump riêng lẻ có thể được thiết lập để phân phối dữ liệu đến các hệ thống đích đó, gia tăng hiệu quả một cách tổng thể. Khả năng chịu lỗi cũng gia tăng đáng kể nếu được cấu hình như vậy, bởi vì bất cứ sự cố nào xảy ra cho một hệ thống đích cũng không có tác động đếu nguồn sao chụp – các giao dịch vẫn được tiếp tục được sao chụp, định tuyến và gửi đi đến các hệ thống khác ngay cả khi một trong số hệ thống đích gặp sự cố. Data Pump cũng có thể được sử dụng để định tuyến dữ liệu thông qua một hệ thống trung gian, ngay cả hệ thống đó không có cài đặt một cơ sở dữ liệu nào.
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 41
Hình 2.3: Data pump và Trail file.
Khả năng lưu trữ và kiểm soát: Các Trail File có thể tạo ra một kho thông tin
sạch từ cơ sở dữ liệu nguồn bằng cách chuyển đổi các bản ghi bị tác động bởi lệnh delete và update thành các lệnh insert vào một nơi khác. Đối với mục đích kiểm soát và tuân thủ, Oracle GoldenGate 11g cũng có thể duy trì một bảng lịch sử riêng biệt để theo dõi các cập nhật đến những bản ghi riêng lẻ khi chúng thay đổi.
Oracle GoldenGate Delivery
Module Delivery lấy bất kỳ các dữ liệu giao dịch trong Trail File và lập tức cập nhật vào cơ sở dữ liệu đích. Thông qua việc sử dụng Oracle GoldenGate Application Adapters, Oracle GoldenGate 11g cũng có khả năng xuất bản các các dữ liệu thay đổi ra định dạng XML hoặc định dạng khác, cũng như cung cấp dữ liệu dưới dạng flat file cho các sản phẩm của bên thứ ba, chẳng hạn như hệ thống ETL.
Toàn vẹn dữ liệu và nhất quán giao dịch: Module Delivery áp dụng mỗi thay
đổi trên cơ sở dữ liệu theo thứ tự như đã diễn ra trên cơ sở dữ liệu nguồn để phục vụ tính toàn vẹn dữ liệu và toàn vẹn tham chiếu. Ngoài ra, nó cũng áp dụng những thay đổi trong cùng một giao dịch tượng tự như khi chúng diễn ra trên cơ sở dữ liệu nguồn nhằm bảo đảm tính nhất quán trên hệ thống đích.
Ánh xạ và chuyển đổi cột: Như module Capture, người dùng có thể cấu hình
module Delivery thông qua các tiêu chí do người dùng khai báo để không chỉ khai báo các bảng mục tiêu mà còn khai báo các dòng, cột cụ thể. Mặc định, module Delivery sẽ đưa dữ liệu vào cột đích có cùng tên với cột nguồn và điều này cũng
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 42
được thực hiện cho hai bảng có cùng tên. Tuy nhiên, ta có thể dễ dàng cấu hình Oracle GoldenGate 11g để di chuyển dữ liệu từ một bảng nguồn đến nhiều bảng đích hoặc ngược lại. Điều này có thể được sử dụng trong việc chuẩn hoá dữ liệu trong nhà kho dữ liệu hoặc trong môi trường OLTP (Online Transaction Processing).
Người dùng cũng có thể xác định các ánh xạ rõ ràng và các quy tắc chuyển đổi, từ việc đơn giản như gán các cột đến những phép biến đổi phức tạp hơn mà Oracle GoldenGate 11g hỗ trợ như các hàm về ngày tháng, toán học, chuỗi và các hàm tiện ích khác. Module Delivery cũng hỗ trợ việc sử dụng các hàm và thủ tục lưu trữ trong cơ sở dữ liệu và cho phép các ánh xạ ngầm định và các quy tắc tuờng minh kết hợp với nhau. Nếu các phép biến đổi bổ sung, chất lượng dữ liệu, kết hợp và các chức năng khác được yêu cầu, Oracle GoldenGate 11g sẽ tích hợp với Oracle Data Integrator Enterprise Edition 11g để hỗ trợ việc tích hợp dữ liệu.
Tối ưu hoá việc chuyển giao dữ liệu tốc độ cao, khối lượng lớn: Module
Delivery cung cấp rất nhiều kỹ thuật để tối ưu hoá việc gửi các giao dịch thay đổi đến cơ sở dữ liệu đích. Các tiến trình gửi dữ liệu của Oracle GoldenGate 11g, nếu có thể, sẽ chạy cục bộ đến các cơ sở dữ liệu đích, tối đa hoá thông lượng bằng cách tránh các giới hạn của mạng. Module Delivery cũng giảm thiểu việc truy cập vào ra đĩa cứng trong khi vẫn bảo toàn các tính chất của giao dịch gốc. Hơn nữa, khi có thể, các cập nhật sẽ được thực hiện thông qua các giao tiếp cơ sở dữ liệu cục bộ hơn là thông qua các tầng trung gian và bộ nhớ cache nội được sử dụng để bảo đảm thực thi nhanh chóng các lệnh lặp đi lặp lai.
Có thể triển khai nhiều module Delivery để giảm thiểu thời gian trễ trong trường hợp khối lượng dữ liệu tăng cao trong những khoảng thời gian cao điểm. Tiến trình capture-route-transform-apply chạy liên tục, sao cho các giao dịch gần nhất được chấp thuận ở cơ sở dữ liệu nguồn thì cũng ngay lập tức được di chuyển và phân phối tới cơ sở dữ liệu đích.
Trì hoãn cập nhật: Để tối đa sự linh hoạt, module Delivery có thể cập nhật dữ
liệu ngay lập tức hoặc trì hoãn một thời gian theo lựa chọn của người dùng mà không làm mất tính toàn vẹn giao dịch. Điều này cho phép có thêm một lớp bảo vệ dữ liệu khi cần thiết và giữ cho hệ thống thứ cấp ở một trạng thái nhất quán phía sau hệ thống chính. Trong cấu hình này, Oracle GoldenGate 11g định tuyến các
Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle
Cơ sở dữ liệu nâng cao Trang 43
dữ liệu thay đổi về các Trail File trên máy chủ đích mà không chuyển giao nó đến cơ sở dữ liệu đích cho đến khi tất cả thay đổi đã được gửi đến Trail File đích. Tất