Phần này sẽ giới thiệu kỹ thuật làm giảm lưu lượng dữ liệu giao dịch với SQL Server khi đã cấu hình nhiều Server trên mạng.
1. Giới thiệu về nhân bản dữ liệu
Nhân bản dữ liệu (Replication) là cơng cụ được sử dụng để sao chép một hoặc nhiều CSDL đến một hoặc nhiều server (SQL Server) khác. Các Server được đặt trong mạng máy tính nội bộ (LAN). Người khai thác cĩ thể thực hiện truy cập đến CSDL cĩ trong Server chứa dữ liệu được nhân bản. Dữ liệu giữa các máy được thực hiện đồng bộ với nhau theo lịch hoặc theo sự kiện, khi cĩ yêu cầu. Nhân bản dữ liệu cĩ những ưu điểm sau:
− Dữ liệu được lưu trữ ở nhiều nơi, hiệu quả trong việc cĩ nhiều ứng dụng cùng truy cập, khai thác.
− Thích hợp với các ứng dụng phân tích dữ liệu của hệ thống xử lý giao dịch trực tuyến (OLTP) trong kho dữ liệu (Data warehouse).
− Cĩ thể khai thác dữ liệu khi khơng kết nối đến Server.
− Giảm thiểu xung đột do số lượng lớn các giao dịch trên mạng.
− Là một giải pháp an tồn khi Server bị lỗi hoặc bảo dưỡng.
Mơ hình nhân bản.
Dịch vụ nhân bản dữ liệu gồm các thành phần cơ bản sau: Publisher, Distributor, Subscribers, Publications, Articles, Subscriptions.
− Publisher: là server cung cấp dữ liệu nhân bản cho các server khác. Một publisher cĩ thể thiết lập nhiều bộ dữ liệu nhân bản (gọi là publication).
− Distributor: là server quản lý các thơng tin nhân bản, lưu trữ dữ liệu trong các giao dịch thực hiện nhận và chuyển dữ liệu từ Publisher đến các Subscriber. Remote distributor là server tách rời khỏi publisher và được cấu hình là distributor. Local distributor là một server được cấu hình là Publisher và Distributor.
− Subscriber: Là server nhận dữ liệu nhân bản. Subscriber gắn liền với publication (là máy chủ nhận dữ liệu nhân bản của một bộ dữ liệu cấu hình nhân bản).
− Article: Là một bảng, tập dữ liệu hoặc đối tượng của CSDL cấu hình để nhân bản.
− Publication: Là một tập gồm một hoặc nhiều article.
− Subscription: Là một giao dịch yêu cầu bản sao bộ dữ liệu hoặc các đối tượng của CSDL thực hiện nhân bản. Trong mỗi giao dịch publisher thực hiện đẩy (push subscription) dữ liệu, subscriber thực hiện kéo (pull subscription).
Nhân bản dữ liệu được thực hiện theo những mơ hình cơ bản sau:
− Central Publisher: Là mơ hình Publisher và Distributor thiết lập trên một máy. Gồm các mơ hình sau:
Một Publisher và nhiều Subscriber.
Publisher và Subscriber được thiết lập trên một máy:
− Publisher và Distributor khơng thiết lập trên một máy:
− Republisher: Là mơ hình Publisher xuất bản dữ liệu đến Subscriber, sau đĩ Subscriber được thiết lập là Publisher xuất bản dữ liệu đến Subscriber khác.
Đường truyền giữa hai máy được thiết lập là Publisher cĩ thể tốc độ thấp, phù hợp với vị trí xa nhau. Ví dụ mơ hình giữa các vùng cách xa nhau:
+ Central Subscriber: Là mơ hình Subscriber thiết lập nhận dữ liệu xuất bản từ nhiều Publisher.
Những kiểu nhân bản dữ liệu.
Cĩ 3 kiểu nhân bản dữ liệu: Snaphot, Transaction, Merge.
Snapshot replication: là kiểu nhân bản thực hiện sao chép, phân tán dữ liệu hoặc các đối tượng của CSDL tại một thời điểm. Snapshot thường được sử dụng cho những tình huống sau:
Dữ liệu thường là tĩnh, ít thay đổi. Nhân bản số lượng dữ liệu nhỏ.
Transaction replication: là kiểu nhân bản mà bắt đầu bằng nhân bản Snapshot, sau đĩ sẽ thực hiện nhân giao dịch dữ liệu theo các sự kiện insert, update, delete và những thay đổi liên quan đến thực hiện thủ tục, khung nhìn chỉ mục. Nhân bản kiểu này cho phép thực hiện lọc dữ liệu tại Publisher, cho phép người sử dụng sửa đổi dữ liệu nhân bản tại
subscriber và chuyển dữ liệu đã sửa đổi đến Publisher hoặc Subscriber khác, dữ liệu sửa đổi này cĩ thể coi là dữ liệu được xuất bản. Nhân bản kiểu này được thực hiện khi:
Muốn sửa đổi dữ liệu được xuất bản chuyển đến Subscriber, thời gian thực hiện theo giây, hoặc tức thời.
Cần giao dịch trên tồn bộ hệ thống nhân bản dữ liệu (dữ liệu cĩ thể chuyển đến tất cả các Subscriber hoặc khơng chuyển đến Subscriber nào).
Subscriber thường xuyên kết nối với Publisher.
Merge replication: là kiểu nhân bản dữ liệu cho phép thực hiện nhân bản sửa đổi dữ liệu trên nhiều Subscriber, cĩ thể kết nối (online) hoặc khơng kết nối (offline) đến Publisher. Dữ liệu sẽ được đồng bộ theo lịch hoặc theo yêu cầu, dữ liệu cập nhật cĩ thời điểm sau sẽ được chấp nhận. Kiểu nhân bản này thực hiện khi:
Nhiều Subscriber cĩ nhu cầu cập nhật dữ liệu và chuyển dữ liệu cập nhật đến Publisher hoặc Subscriber khác.
Subscriber yêu cầu nhận hoặc chuyển dữ liệu khi offline, đồng bộ dữ liệu với các Subscriber và Publisher sau.
2. Cấu hình Publisher và Distributor.
Trước khi thực hiện cấu hình các máy thành Publisher hay Distributor ta phải thực hiện chạy dịch vụ SQL Server Agent trong chức năng Service manager. Các bước cấu hình như sau:
- Chọn Server cần cấu hình -> Replication
- Nhấp phải chuột -> Configure Publishing Subscription and Distribution...
- Thực hiện theo các bước: + Chọn thư mục Snapshot
- Đặt tên CSDL của Distribution.
- Chọn CSDL tham gia nhân bản, kiểu nhân bản.
- Chọn Server được cấu hình là Subscriber của Publisher đang thiết lập. - Kết thúc.
Tạo Publication
Bước này sẽ thực hiện tạo Publication, cách thực hiện như sau: + Chọn Publication trong Replication của Publisher.
+ Thực hiện theo các bước:
- Chọn CSDL cần xuất bản dữ liệu hoặc đối tượng.
- Chọn kiểu nhân bản (trong ví dụ này thực hiện kiểu Merge).
- Chọn phiên bản SQL Server của Subscriber.
- Chọn Article tham gia Publication.
- Đặt tên cho Publication.
- Kết thúc.
Tạo Push Subscription.
Bước này thực hiện tạo thủ tục đẩy (push) từ Publisher (Distributor trong ví dụ này) đến Subscriber, được thực hiện trên Publisher. Các bước thực hiện như sau:
- Chọn Publication của Publisher -> Nhấn phải chuột -> Push new Subscription... - Chọn Subscriber.
- Chọn CSDL trên Subscriber nếu đã cĩ, nếu chưa cĩ thực hiện chọn chức năng tạo mới.
- Chọn lịch thực hiện đồng bộ dữ liệu.
- Kết thúc. Sau khi thiết lập xong trên Subscriber sẽ cĩ CSDL theo tên đã tạo.
Bước này thực hiện tạo cơng cụ kéo dữ liệu nhân bản từ Publisher về Subscriber, được thực hiện trên Subscriber.
- Chọn Subscription của Subscriber → Nhấn phải chuột → New Pull Supcription... - Thực hiện theo các bước:
+ Chọn Publication.
+ Chọn Agent tham gia kết nối Publisher.
- Thực hiện tiếp các bước và kết thúc. Nếu đã tạo Push Subscription với một CSDL sẽ khơng được tạo Pull Subscription với CSDL đĩ.
Thực hiện đồng bộ dữ liệu
Sau khi thiết lập theo các mơ hình nhân bản xong, cĩ thể thực hiện đồng bộ dữ liệu bằng cách:
- Thực hiện theo lịch.
- Theo yêu cầu: Chọn Subscription (Push hoặc Pull) → Nhấn phải chuột → Start Synchronizing.
Sau khi thực hiện xong dữ liệu sẽ được đồng bộ giữa Publisher và Subscriber. Ngồi thực hiện theo cơng cụ ta cĩ thể tìm hiểu thực hiện nhân bản theo câu lệnh T-SQL hoặc Stored Procedure.