Cơ chế đồng bộ hoá dữ liệu phân tán trong hệ quản trị cơ sở dữ liệu Oracle - Pdf 26


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 1

PHẦN MỞ ĐẦU
Xử lý các giao dịch đã trở nên ngày càng quan trọng trong các ứng dụng
công nghệ thông tin cho doanh nghiệp, đặc biệt là trong các lĩnh vực ngân hàng,
tài chính, chứng khoán, giao dịch bất động sản… Kết quả là người sử dụng phải
truy cập, phân tích, xử lý, tích hợp, lưu trữ và xác minh dữ liệu giao dịch nhanh
hơn bao giờ hết – thường là trong thời gian thực – trên những hệ thống dữ liệu
không có chỗ cho việc gián đoạn hoặc thời gian chết. Nhu cầu về dữ liệu với độ
trễ thấp được kết hợp bởi sự tăng trưởng theo cấp số nhân về khối lượng dữ liệu
giao dịch và sự gia tăng các môi trường ứng dụng công nghệ thông tin không đồng
nhất trong các doanh nghiệp, tạo ra một nhu cầu cấp thiết về tích hợp dữ liệu cũng
như giải pháp đồng bộ dữ liệu. Các giải pháp này luôn đi kèm với yêu cầu dễ dàng
trong triển khai và tác động ở mức thấp nhất đối với các ứng dụng quan trọng của
doanh nghiệp.
Trong nội dung bài tiểu luận này, tôi xin trình bày kiến trúc cơ sở dữ liệu
phân tán được xây dựng và hỗ trợ trong hệ quản trị cơ sở dữ liệu Oracle 11g và
một công nghệ đồng bộ dữ liệu phân tán nổi bật của Oracle, đó là Oracle
GoldenGate 11g. Hiện nay, công nghệ GoldenGate được sử dụng hầu hết trong
các doanh nghiệp hàng đầu thế giới để hỗ trợ cho các hệ thống dữ liệu quan trọng
trong việc tích hợp và tăng cường tính sẵn sàng cao cho các cơ sở dữ liệu. Oracle
GoldenGate 11g phát triển dựa trên việc ứng dụng một loạt các công nghệ mới
nên tài liệu về kiến trúc, tài liệu triển khai chưa có nhiều. Trong tiểu luận này, tôi
chỉ trình bày kiến trúc công nghệ cơ bản của nó.
Tôi xin chân thành cảm ơn Phó giáo sư, Tiến sĩ Đỗ Phúc, giảng viên môn
học “Cơ sở dữ liệu nâng cao”, đã truyền đạt những kiến thức quý báu về các hệ cơ
sở dữ liệu tiên tiến hiện nay cũng như những hướng nghiên cứu sâu hơn về hệ cơ
sở dữ liệu phân tán; đã hướng dẫn và chỉ bảo để hoàn thành chuyên đề nghiên cứu
rất bổ ích và lý thú này.

Hệ quản trị cơ sở dữ liệu phân tán (Distributed Database Management System
D-DBMS) được định nghĩa là một hệ thống phần mềm cho phép quản trị các hệ
cơ sở dữ liệu phân tán và làm cho sự phân tán trở nên “trong suốt” đối với người
sử dụng.
Hệ cơ sở dữ liệu phân tán (Distributed Database System - DDBS) được xây
dựng dựa trên hai công nghệ cơ bản là cơ sở dữ liệu và mạng máy tính. Một hệ cơ
sở dữ liệu phân tán không phải là một “tập hợp các tập tin” được lưu trữ riêng rẽ
tại mỗi nút của một mạng máy tính. Để tạo ra một hệ cơ sở dữ liệu phân tán các
tập tin không chỉ có liên đới logic mà chúng còn phải có cấu trúc và được truy
xuất qua một giao diện chung.

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 3 Hình 1.1: Mô hình hệ cơ sở dữ liệu phân tán
Hệ cơ sở dữ liệu phân tán thuần nhất: các cơ sở dữ liệu cục bộ ở tất cả các nơi
(site) đều dùng chung một hệ quản trị cơ sở dữ liệu.
Hệ cơ sở dữ liệu phân tán không thuần nhất: các cơ sở dữ liệu cục bộ ở các nơi
(site) không dùng chung một hệ quản trị cơ sở dữ liệu.
2. Kiến trúc cơ bản của cơ sở dữ liệu phân tán
Kiến trúc này không biểu diễn tường minh cho mọi hệ cơ sở dữ liệu phân tán.
Tuy nhiên, với kiến trúc này các mức của cơ sở dữ liệu phân tán được trình bày
mang tính khái niệm thích hợp để dễ hiểu về tổ chức của các cơ sở dữ liệu phân
tán nói chung.
- Sơ đồ tổng thể: Định nghĩa tất cả các dữ liệu sẽ được lưu trữ trong cơ sở dữ
liệu phân tán. Trong mô hình quan hệ, sơ đồ tổng thể bao gồm định nghĩa của các
tập quan hệ tổng thể.
- Sơ đồ phân đoạn: Mỗi quan hệ tổng thể có thể chia thành một vài phần không
gối lên nhau được gọi là đoạn (fragments). Có nhiều cách khác nhau để thực hiện

dụng làm cực đại hóa tính cục bộ của ứng dụng.
-Tăng độ tin cậy và tính sẵn sàng: Nếu có một thành phần nào đó của hệ thống bị
hỏng, hệ thống vẫn có thể duy trì hoạt độ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 5

4. Kiến trúc cơ sở dữ liệu phân tán trong Oracle 11g
Một hệ cơ sở dữ liệu phân tán cho phép các ứng dụng truy cập dữ liệu từ các cơ
sở dữ liệu cục bộ và từ xa. Trong một hệ cơ sở dữ liệu phân thán thuần nhất, mỗi
cơ sở dữ liệu là một cơ sở dữ liệu Orcacle. Trong một hệ cơ sở dữ liệu phân thán
không thuần nhất, có ít nhất một cơ sở dữ liệu không phải là Oracle. Các cơ sở dữ
liệu phân tán sử dụng kiến trúc client/server để xử lý các yêu cầu thông tin.
Hệ cơ sở dữ liệu phân tán thuần nhất
Trong Oracle, một hệ cơ sở dữ liệu phân tán thuần nhất là một mạng lưới của
hai hay nhiều cơ sở dữ liệu Oracle nằm trên một hoặc nhiều máy. Hình 1.3 minh
họa một hệ thống phân tán kết nối 3 cơ sở dữ liệu: HQ, MFG và SALES. Một ứng
dụng đồng thời có thể truy cập hoặc sửa đổi dữ liệu trong một số cơ sở dữ liệu
trong môi trường phân tán. Ví dụ, một truy vấn từ một máy trạm Manufacturing
trên cơ sở dữ liệu cục bộ MFG có thể truy xuất dữ liệu từ bảng products trên cơ
sở dữ liệu cục bộ và bảng dept trên cơ sở dữ liệu từ xa HQ. Đối với một ứng
dụng client, vị trí và nền tảng của cơ sở dữ liệu là trong suốt. Ta cũng có thể tạo ra
các synonyms cho các đối tượng từ xa trong hệ thống phân tán để người dùng có
thể truy cập chúng với cú pháp tương tự như các đối tượng cục bộ. Ví dụ, nếu ta
kết nối đến cơ sở dữ liệu MFG nhưng muốn truy cập dữ liệu trên cơ sở dữ liệu HQ,
ta tạo ra một synonyms trên MFG cho bảng dept từ xa, cho phép thực hiện truy
vấn này: SELECT * FROM dept;
Bằng cách này, một hệ thống phân tán cho phép truy cập như một hệ thống dữ
liệu tập trung. Người sử dụng trên MFG không cần phải biết rằng các dữ liệu họ
đang truy cập nằm trên các cơ sở dữ liệu từ xa.

công nghệ của cơ sở dữ liệu phân tán nhưng cơ sở dữ liệu thứ bản không cung cấp
được cho các ứng dụng các lợi ích mà môi trường cơ sở dữ liệu phân tán có sẵn.
Thông thường, dữ liệu thứ bản được sử dụng để cải thiện hiệu suất của cơ sở dữ
liệu cục bộ và bảo vệ tính sẵn sàng của các ứng dụng. Ví dụ, một ứng dụng
thường truy cập đến cơ sở dữ liệu cục bộ hơn là truy cập đến một máy chủ từ xa
để giảm thiểu lưu lượng truy cập mạng và đạt hiệu suất tối đa. Hơn nữa, ứng dụng
vẫn có thể hoạt động nếu máy chủ cục bộ gặp sự cố nhưng các máy chủ khác với
dữ liệu thứ bản vẫn còn truy cập được.
Hệ cơ sở dữ liệu phân tán không thuần nhất
Trong một hệ cơ sở dữ liệu phân tán không thuần nhất có ít nhất một cơ sở dữ
liệu không phải là Oracle. Để truy cập, Oracle xem nó như là một cơ sở dữ liệu
Oracle cục bộ. Máy chủ cơ sở dữ liệu Oracle truy cập cơ sở dữ liệu này thông qua
các dịch vụ xử lý không đồng nhất (Oracle Heterogeneous Services) kết hợp với
một agent. Nếu ta truy cập một cơ sở dữ liệu không phải là Oracle thông qua
Oracle Transparent Gateway thì agent chính là cổng truy cập của ứng dụng. Ví
dụ, nếu ta có một cơ sở dữ liệu Sysbase trong hệ cơ sở dữ liệu phân tán Oracle thì
ta cần khai báo một cổng truy cập Sysbase để cơ sở dữ liệu Oracle có thể giao tiếp
với nó. Ngoài ra, ta cũng có thể dùng các kết nối thông dụng để truy cập đến các
cơ sở dữ liệu không phải Oracle thông qua các giao thức ODBC hay OLE DB.
Dịch vụ xử lý không đồng nhất (Heterogeneous Services): Heterogeneous
Services (HS) là một thành phần tích hợp trong máy chủ cơ sở dữ liệu Oracle. HS
cung cấp kiến trúc chung và cơ chế quản trị của các sản phẩm Oracle Database
Gateway và các phương tiện truy cập không đồng nhất khác. Ngoài ra, nó cũng
cung cấp khả năng tương thích ngược cho hầu hết phiên bản của Oracle
Transparent Gateway.
Transparent Gateway Agents: Đối với từng hệ cơ sở dữ liệu không phải là
Oracle mà ta truy cập, HS sử dụng một Transparency Gateway Agent để giao tiếp
với cơ sở dữ liệu đó. Agent này là đặc trưng cho từng hệ thống cơ sở dữ liệu, vì
vậy mỗi loại hệ thống có đòi hỏi có một agent khác nhau. Transparency Gateway
Agent tạo thuận lợi trong việc giao tiếp giữa một hệ thống Oracle và không Oracle

Một máy trạm có thể kết nối trực tiếp hoặc gián tiếp đến một máy chủ cơ sở dữ
liệu. Một kết nối trực tiếp xảy ra khi một máy trạm kết nối đến một máy chủ và
truy cập thông tin trong cơ sở dữ liệu chứa trên máy chủ đó. Ví dụ, nếu kết nối với
cơ sở dữ liệu HQ và truy cập bảng dept trên cơ sở dữ liệu này như trong hình 1.4,
ta có thể gõ lệnh như sau: SELECT * FROM dept; Truy vấn này là trực tiếp
vì ta không truy cập đối tượng nào trên cơ sở dữ liệu từ xa. Ngược lại, một kết nối
gián tiếp xảy ra khi một máy trạm kết nối đến một máy chủ và sau đó truy cập
thông tin trong một cơ sở dữ liệu trên máy chủ khác. Ví dụ, nếu ta kết nối đến cơ
sở dữ liệu HQ và truy cập đến bảng emp của cơ sở dữ liệu từ xa SALES như trong
hình 1.4, ta gõ lệnh như sau: SELECT * FROM emp@sales; Truy vấn này là
gián tiếp vì đối tượng mà ta đang truy cập không nằm trên cơ sở dữ liệu mà ta
đang kết nối.
5. Các liên kết cơ sở dữ liệu (Database links)
Khái niệm trung tâm của các hệ cơ sở dữ liệu phân tán chính là Database link.
Một database link là một kết nối giữa hai máy chủ vật lý, cho phép một máy trạm
truy cập chúng như một cơ sở dữ liệu logic.
Database link
Database link là một con trỏ xác định một con đường giao tiếp một chiều từ
một máy chủ cơ sở dữ liệu Oracle đến một máy chủ cơ sở dữ liệu khác. Các con
trỏ liên kết được định nghĩa là một mục trong bảng từ điển dữ liệu. Để truy cập
liên kết này, ta phải được kết nối với cơ sở dữ liệu cục bộ có chứa các mục từ điển
dữ liệu đó. Một liên kết database link là một cách diễn giải theo ý nghĩa rằng một
máy trạm kết nối đến một cơ sở dữ liệu cục bộ A có thể sử dụng một liên kết được
lưu trữ trong cơ sở dữ liệu A để truy cập thông tin trong cơ sở dữ liệu từ xa B,
nhưng người dùng kết nối đến cơ sở dữ liệu B không thể sử dụng liên kết đó để
truy xuất dữ liệu trong cơ sở dữ liệu A. Một kết nối database link cho phép người
dùng cục bộ truy xuất dữ liệu trên cơ sở dữ liệu từ xa. Vì vậy, mỗi cơ sở dữ liệu
trong hệ thống phân tán phải có một tên toàn cục (global database name) duy nhất
trong một mạng (domain network). Tên toàn cục này xác định duy nhất một máy
chủ cơ sở dữ liệu trong một hệ phân tán.


Current user link
Người dùng kết nối như một người dùng toàn cục. Một
người dùng cục bộ có thể kết nối như là một người dùng
toàn cục trong ngữ cảnh của một stored procedure mà không
cần lưu password của người dùng toàn cục trong khai báo
liên kết. Ví dụ, Jane có truy cập một thủ tục do Scott viết,
truy cập tài khoản của Scott và các lược đồ của Scott trên cơ
sở dữ liệu HQ. Current user link là một thể hiện của Oracle
Advanced Security.
Tạo các database link bằng cách dùng lệnh CREATE DATABASE LINK, sau
khi liên kết được tạo ra ta có thể sử dụng nó để khai báo các đối tượng lược đồ
trong câu lệnh SQL.
Các liên kết cơ sở dữ liệu được chia xẻ (Shared Database Links)
Một shared database link là một liên kết giữa một tiến trình của máy chủ cục bộ
và một cơ sở dữ liệu từ xa. Liên kết này là được chia xẻ vì nhiều tiến trình máy
trạm có thể sử dụng liên kết này cùng lúc.
Khi một cơ sở dữ liệu cục bộ được kết nối với một cơ sở dữ liệu từ xa thông
qua một database link, cơ sở dữ liệu có thể chạy trong chế độ dedicated server
hoặc shared server. Bảng dưới đây minh hoạ các khả năng:

Một shared database link có thể tồn tại một trong bốn cấu hình trên. Các shared
link khác với các standard link như sau:
- Những người dùng khác nhau truy cập cùng một đối tượng lược đồ thông
qua một database link có thể chia sẻ một kết nối mạng.
- Khi một người dùng cần phải thiết lập một kết nối đến một máy chủ từ xa
từ một tiến trình máy chủ cụ thể, tiến trình này có thể tái sử dụng các kết
nối đã được thiết lập trước đó đến máy chủ từ xa. Tái sử dụng kết nối có
thể xảy ra nếu kết nối đó đã được thiết lập trên cùng một tiến trình máy chủ
với cùng database link, có thể trong một phiên làm việc (session) khác.


Tên của một cơ sở dữ liệu được hình thành bằng cách bắt đầu từ nút lá của cây
và lần theo đường đi đến nút gốc. Ví dụ, cơ sở dữ liệu mfg trong DIVISION3
thuộc nhánh acme_tools của miền com. Tên cơ sở dữ liệu toàn cục của mfg
được tạo ra bằng cách nối các nút trong cây như sau:
mfg.division3.acme_tools.com
Đặt tên cho các database link
Thông thường, một database link có cùng tên với tên cơ sở dữ liệu toàn cục của
các cơ sở dữ liệu từ xa mà nó tham chiếu. Ví dụ, nếu tên cơ sở dữ liệu toàn cục
của một cơ sở dữ liệu là sales.us.oracle.com thì database link cũng được
gọi là sales.us.oracle.com.
Khi ta thiết lập tham số khởi tạo GLOBAL_NAMES là TRUE, cơ sở dữ liệu bảo
đảm rằng tên của database link hoàn toàn giống như tên của cơ sở dữ liệu toàn
cục. Ví dụ, nếu tên của cơ sở dữ liệu toàn cục của hq là hq.acme.com thì tên
liên kết cũng là hq.acme.com. Lưu ý rằng, cơ sở dữ liệu kiểm tra phần tên miền
của cơ sở dữ liệu toàn cục trong từ điển dữ liệu chứ không phải kiểm tra trong
thiết lập DB_DOMAIN trong tập tin tham số khởi tạo.
Nếu ta thiết lập tham số khởi tạo GLOBAL_NAMES là FALSE, thì không thể sử
dụng được tên toàn cục. Ta có thể đặt tên cho database link là gì cũng được. Ví
dụ, ta có thể đặt tên database link cho hq.acme.com là foo. Tuy nhiên, Oracle
khuyến cáo ta nên sử dụng tên toàn cục bởi vì nhiều tính năng hữu ích của Oracle
đòi hỏi tên toàn cục.
Sau khi đã bật tính năng đặt tên toàn cục, các database link cơ bản là trong suốt
đối với người dùng trong một cơ sở dữ liệu phân tán bởi vì tên của database link
cũng giống như tên toàn cục của các cơ sở dữ liệu mà chúng trỏ đến. Ví dụ, lệnh
sau đây tạo ra một database link trong máy chủ cục bộ đến cơ sở dữ liệu từ xa:
CREATE PUBLIC DATABASE LINK sales.division3.acme.com USING
'sales1';
Tạo các database link: Ví dụ
Tạo database link dùng câu lệnh CREATE DATABASE LINK. Bảng sau đưa

current user
CREATE DATABASE LINK
sales.us.americas.acme_
auto.com CONNECT TO
scott IDENTIFIED BY
tiger USING 'sales_us';
sales using net
service name
sales_us
scott using
password
tiger
Private fixed
User
CREATE PUBLIC DATABASE
LINK sales CONNECT TO
scott IDENTIFIED BY
tiger USING 'rev';
sales using net
service name rev
scott using
password
tiger
Public fixed
User
CREATE SHARED PUBLIC
DATABASE LINK
sales.us.americas.acme_
auto.com CONNECT TO
scott IDENTIFIED BY

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 15

- schema là tập các cấu trúc dữ liệu logic hoặc các đối tượng lược đồ. Một
lược đồ sở hữu bởi một người dùng và có cùng tên với người dùng đó. Mỗi người
dùng chỉ sở hữu một lược đồ.
- schema_object là một cấu trúc dữ liệu logic như là table, index, view,
synonym, procedure, package, database link.
- global_database_name là tên xác định duy nhất một cơ sở dữ liệu từ
xa. Tên này phải giống như tham số khởi tạo DB_NAME và DB_DOMAIN trừ phi
tham số GLOBAL_NAMES được đặt là FALSE.
Ví dụ, bằng cách sử dụng database link đến cơ sở dữ liệu
sales.division3.acme.com, một người dùng hoặc một ứng dụng có thể
tham chiếu đến dữ liệu từ xa như sau:
SELECT * FROM ; # emp
table in scott's schema
SELECT loc FROM ;
Nếu tham số GLOBAL_NAMES được đặt thành FALSE thì ta có thể sử dụng tên
bất kỳ cho liên kết đến sales.division3.acme.com. Ví dụ, ta có thể đặt
liên kết này là foo. Sau đó, ta có thể truy cập cơ sở dữ liệu từ xa này như sau:
SELECT name FROM scott.emp@foo; # link name different
from global name
Uỷ quyền cho việc truy cập các đối tượng lược đồ từ xa
Để truy cập vào một đối tượng lược đồ từ xa, ta phải được cấp quyền truy cập
đến đối tượng đó trong cơ sở dữ liệu từ xa. Hơn nữa, để thực hiện bất kỳ thao tác
cập nhật, chèn hay xoá trên các đối tượng từ xa, ta phải được cấp quyền SELECT
cùng với các quyền UPDATE, INSERT hoặc DELETE trên đối tượng đó. Không
giống như khi truy cập một đối tượng cục bộ, quyền SELECT là cần thiết cho việc
truy cập một đối tượng từ xa bởi vì cơ sở dữ liệu này không có khả năng mô tả từ
xa. Cơ sở dữ liệu phải thực hiện lệnh SELECT * trên các đối tượng từ xa để xác

cập các đối tượng trong lược đồ jane và scott trên cơ sở dữ liệu từ xa hq:
SELECT * FROM ;
INSERT INTO (acc_no,
acc_name, balance) VALUES (5001, 'BOWER', 2000);
UPDATE
SET balance = balance + 500;
DELETE FROM
WHERE acc_name = 'BOWER';
Các hạn chế của database link
Ta không thể thực hiện các thao tác sau bằng cách sử dụng database link:
- Gán quyền trên các đối tượng từ xa.

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 17

- Thực hiện lệnh DESCRIBE trên một số đối tượng từ xa. Tuy nhiên một số đối
tượng sau hỗ trợ lệnh DESCRIBE: Table, View, Procedure, Function.
- Phân tích các đối tượng từ xa.
- Xác định hoặc thực thi toàn vẹn tham chiếu.
- Gán các vai trò cho người dùng trong cơ sở dữ liệu từ xa.
- Lấy vai trò không mặc định trên một cơ sở dữ liệu từ xa.
- Thực hiện các phép kết truy vấn băm trên các kết nối đến shared server.
- Sử dụng một current user link mà không cần chứng thực thông qua SSL, mật
khẩu hoặc xác thực NT.
6. Quản trị cơ sở dữ liệu phân tán
Sự tự trị (Site autonomy)
Sự tự trị có nghĩa là mỗi máy chủ tham gia trong một cơ sở dữ liệu phân tán
được quản lý một cách độc lập tách khỏi tất cả các cơ sở dữ liệu khác. Mặc dù vài
cơ sở dữ liệu có thể làm việc cùng nhau, nhưng mỗi cơ sở dữ liệu là một kho chứa
dữ liệu riêng biệt được quản lý riêng rẽ. Một số lợi ích của sự tự trị trong một cơ

+ Kerberos version 5 cho các connected user link.
+ DCE cho các connected user link.
- Mã hoá phiên đăng nhập cho các kết nối client-to-server và server-to-server.
Các chủ đề sau đây cần được xem xét khi cấu hình một hệ cơ sở dữ liệu phân
tán Oracle:
Xác thực thông qua database link: Các database link có thể riêng tư hoặc công
khai, được xác thực hoặc không được xác thực. Ta tạo các liên kết công khai bằng
cách khai báo từ khoá PUBLIC trong lệnh tạo liên kết.
Ví dụ, ta có thể gõ lệnh: CREATE PUBLIC DATABASE LINK foo
USING 'sales';
Ta có thể tạo các liên kết xác thực bằng cách khai báo CONNECT TO,
AUTHENTICATED BY hoặc cả hai trong lệnh tạo database link. Ví dụ:
CREATE DATABASE LINK sales CONNECT TO scott IDENTIFIED
BY tiger USING 'sales';
CREATE SHARED PUBLIC DATABASE LINK sales CONNECT TO
nick IDENTIFIED BY firesign AUTHENTICATED BY david
IDENTIFIED BY bowie USING 'sales';
Bảng sau mô tả cách người dùng truy cập cơ sở dữ liệu từ xa thông qua liên kết:
Kiểu liên kết
Xác thực
Bảo mật truy cập
Private
No
Khi kết nối đến cơ sở dữ liệu từ xa, cơ sở dữ liệu sử dụng
thông tin bảo mật (userid/password) lấy từ phiên làm việc
cục bộ. Do đó, liên kết này là connected user database
link. Mật khẩu phải được đồng bộ giữa hai cơ sở dữ liệu.

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 19

để hỗ trợ các ứng dụng sử dụng hệ thống. Lưu ý rằng:
- Các tài khoản người dùng cần thiết để thiết lập các kết nối server-to-server phải
có sẵn trong tất cả các cơ sở dữ liệu trong một hệ cơ sở dữ liệu phân tán.
- Các vai trò cần thiết để truy cập đến cơ sở dữ liệu phân tán phải tồn tại trong tất
cả các cơ sở dữ liệu của một hệ cơ sở dữ liệu phân tán.
Khi tạo ra các database link cho các nút mạng trong một hệ cơ sở dữ liệu phân
tán, cần phải xác định tài khoản người dùng và vai trò người dùng nào trong mỗi
vị trí (site) cần phải hỗ trợ kết nối server-to-server để sử dụng các liên kết này.
Trong môi trường phân tán, người dùng thường xuyên yêu cầu truy cập nhiều dịch
vụ mạng, khi đó ta phải cấu hình xác thực riêng biệt cho mỗi người dùng truy cập

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 20

vào từng dịch vụ mạng, quản trị bảo mật trở nên cồng kềnh, đặc biệt là trong các
hệ thống lớn.
Quản lý tập trung người dùng và đặc quyền: Cơ sở dữ liệu Oracle cung cấp
nhiều cách khác nhau để quản lý người dùng và đặc quyền khi tham gia vào một
hệ cơ sở dữ liệu phân tán. Ví dụ, ta có các tuỳ chọn sau:
- Enterprise user management: Ta có thể tạo ra các người dùng toàn cục – những
người dùng được chứng thực qua SSL hoặc mật khẩu – sau đó quản lý những
người dùng này và các đặc quyền của họ trong một thư mục thông qua một dịch
vụ thư mục độc lập.
- Network authentication service: Kỹ thuật phổ biến này đơn giản hoá việc quản
lý bảo mật trong môi trường phân tán. Ta có thể sử dụng tuỳ chọn Oracle
Advanced Security để tăng cường cho Oracle Net và bảo mật cho một hệ cơ sở dữ
liệu phân tán Oracle. Chứng thực của Windows NT là một ví dụ của một giải pháp
xác thực không thông qua Oracle.

Hình 1.7: Minh hoạ bảo mật người dùng toàn cục thông qua dịch vụ quản trị thư mục.

Cơ sở dữ liệu nâng cao Trang 22

5. Cơ sở dữ liệu SALES truy vấn dịch vụ thư mục để xác định xem người dùng
scott có quyền truy cập SALES hay không, và phát hiện ra scott có thể truy
cập lược đồ cục bộ guest bằng cách sử dụng vai trò clerk2.
6. Người dùng scott đăng nhập vào SALES tới lược đồ guest với vai trò
clerk2 và thực hiện lệnh SELECT để lấy những thông tin cần thiết và chuyển nó
đến HQ.
7. Cơ sở dữ liệu HQ nhận được dữ liệu yêu cầu từ SALES và trả về cho scott.
Mã hoá dữ liệu: tuỳ chọn Oracle Advanced Security cũng cho phép Oracle Net
và các sản phẩm liên quan sử dụng mã hoá dữ liệu mạng và kiểm tra để bảo đảm
rằng dữ liệu không thể được đọc hoặc thay đổi bởi người khác. Nó bảo vệ dữ khỏi
những thay đổi trái phép bằng cách sử dụng RSA Data Security RC4 hoặc thuật
toán mã hoá Data Encryption Standard (DES).
Kiểm soát các database link
Ta phải luôn thực hiện các hoạt động kiểm soát cục bộ. Đó là, nếu một người
dùng hoạt động trong một cơ sở dữ liệu cục bộ và truy cập cơ sở dữ liệu từ xa
thông qua database link, các hoạt động cục bộ được kiểm soát ở cơ sở dữ liệu cục
bộ, các hoạt động từ xa được kiểm soát ở cơ sở dữ liệu từ xa, cung cấp các tuỳ
chọn kiểm soát thích hợp được đặt trong các cơ sở dữ liệu tương ứng.
Cơ sở dữ liệu từ xa không thể xác định một yêu cầu kết nối là thành công hay
không và các lệnh SQL tiếp theo đến từ một máy chủ khác hay đến từ một máy
trạm cục bộ. Xem ví dụ sau:
- Fixed user link hq.acme.com kết nối người dùng cục bộ jane đến cơ sở
dữ liệu từ xa HQ như người dùng từ xa scott.
- Người dùng scott được kiểm soát trên cơ sở dữ liệu từ xa.
Các hoạt động được thực hiện trong suốt phiên kết nối từ xa được kiểm soát
như là scott kết nối cục bộ đến HQ và thực hiện các hoạt động tương tự ở đó. Ta
phải thiết lập các tuỳ chọn kiểm soát trong cơ sở dữ liệu từ xa nắm bắt các hoạt
động của người dùng – trong trường hợp này là scott trên cơ sở dữ liệu HQ –

Hỗ trợ SNMP: Bên cạnh khả năng quản trị mạng của nó, Oracle Simple
Network Management Protocol (SNMP) hỗ trợ cho phép một máy chủ cơ sở dữ
liệu Oracle được định vị và truy vấn bởi bất kỳ hệ thống quản trị mạng nào dựa
trên SNMP. SNMP là tiêu chuẩn được chấp nhận trong nhiều hệ quản trị mạng
thông dụng như:
- HP OpenView
- Digital POLYCENTER Manager on NetView
- IBM NetView/6000

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 24

- Novell NetWare Management System
- SunSoft SunNet Manager
7. Xử lý phân tán trong hệ thống phân tán
Một giao dịch (còn gọi là giao tác) là một đơn vị logic của công việc được cấu
thành bởi một hoặc nhiều câu lệnh SQL được thực hiện bởi một người dùng. Một
giao dịch bắt đầu với việc thực hiện câu lệnh SQL đầu tiên của người dùng và kết
thúc khi nó được chấp thuận (commit) hoặc huỷ bỏ (rolled back) bởi người dùng
đó. Một giao dịch từ xa chỉ chứa các lệnh truy cập đến một nút mạng từ xa. Một
giao dịch phân tán chứa các lệnh truy cập nhiều hơn một nút mạng.
Lệnh SQL từ xa
Một truy vấn từ xa là một truy vấn mà nó chọn thông tin từ một hoặc nhiều
bảng từ xa, tất cả các bảng này đều nằm trên một nút mạng từ xa. Ví dụ, truy vấn
sau đây truy cập dữ liệu từ bảng dept trong lược đồ scott của cơ sở dữ liệu từ
xa SALES:
SELECT * FROM _auto.com;
Một cập nhật từ xa là một cập nhật sửa đổi dữ liệu trong một hoặc nhiều bảng,
tất cả các bảng này đều nằm trên một nút mạng từ xa. Ví dụ, truy vấn sau đây cập
nhật dữ liệu từ bảng dept trong lược đồ scott của cơ sở dữ liệu từ xa SALES:

Giao dịch từ xa
Một giao dịch từ xa chứa một hoặc nhiều truy vấn từ xa, tất cả chúng đều tham
chiếu đến một nút mạng từ xa. Ví dụ, giao dịch sau đây chứa hai truy vấn, mỗi
truy vấn đều truy cập đến cơ sở dữ liệu SALES từ xa:
UPDATE _auto.com
SET loc = 'NEW YORK' WHERE deptno = 10;
UPDATE _auto.com
SET deptno = 11 WHERE deptno = 10;
COMMIT;
Giao dịch phân tán
Một giao dịch phân tán là một giao dịch bao gồm một hay nhiều truy vấn đơn
hay nhóm, cập nhật dữ liệu trên hai hoặc nhiều nút mạng riêng biệt của cơ sở dữ
liệu phân tán. Ví dụ, giao dịch sau đây cập nhật cơ sở dữ liệu cục bộ và cơ sở dữ
liệu từ xa SALES:
UPDATE _auto.com
SET loc = 'NEW YORK' WHERE deptno = 10;
UPDATE scott.emp SET deptno = 11 WHERE deptno = 10;
COMMIT;
Lưu ý: Nếu tất cả các lệnh của giao dịch chỉ tham chiếu đến một nút mạng từ xa
thì giao dịch đó là từ xa, chứ không phải phân tán.
Cơ chế chấp thuận hai pha
Một cơ sở dữ liệu phải bảo đảm rằng tất cả các câu lệnh trong một giao dịch,
phân tán hoặc không phân tán, phải được chấp thuận hoặc huỷ bỏ. Các ảnh hưởng

Trích đoạn Giới thiệu Kiến trúc và cơ chế hoạt động của Oracle GoldenGate 11g Kiến trúc và cơ chế hoạt động của Oracle GoldenGate 11g
Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status