Bài blog trình bày chi tiết các bước thiết lập Transactional Replication sử dụng Backup để khởi tạo Subscriptions mà không cần Snapshot cho tất cả Articles, vì Snapshot tốn nhiều thời gian với Large Databases.
Giới thiệu
Thiết lập Transactional Replication cho một SQL Server Database rất lớn là một nhiệm vụ khổng lồ. Thông thường, bạn thiết lập Transactional Replication bằng cách tạo Snapshot mà không cân nhắc thời gian Snapshot mất bao lâu và dung lượng disk cho Snapshot Folder. Để tránh mất quá nhiều thời gian tạo Initial Snapshot và Reinitialize Subscribers, bài viết này khám phá cách dễ dàng khởi tạo Subscriber từ SQL Database Backup.
Chi tiết các bước Setup:
Để thiết lập Transactional Replication – Trước hết, bạn cần cấu hình Distributor. Trong lab này, tôi đã cấu hình xong Distributor, tham khảo link sau để cấu hình Distributor:
https://docs.microsoft.com/en-us/sql/relational-databases/replication/configure-publishing-and-distribution?view=sql-server-ver15
Tổng quan quy trình:
- Tạo Publication.
- Sửa đổi Publication Properties.
- Backup Publisher Database.
- Restore Backup lên Subscriber Database.
- Tạo Subscription qua T-SQL vì GUI không hỗ trợ khởi tạo từ Database Backup.
Thông tin môi trường:
- Publisher + Distributor: Node1
- Subscriber: Node2
- Publisher Database: ABC_PUB
- Subscriber Database: ABC_SUB
- Publication: ABC_PUB_BKP
- Subscription: ABC_SUB_BKP
Bước 1: Tạo Publication bằng cách chọn Database cho Replication.
Publisher Database: ABC_PUB
Bước 2: Chọn loại Publication và các Table tham gia Replication.
Chọn Articles để replicate:
Bước 3: Vì dùng Database Backup File thay vì Snapshot, để trống và nhấn Next như ảnh chụp.
Đã tạo Publication: ABC_PUB_BKP
Bước 4: Set ‘Allow initialization from backup files’ = TRUE.
Từ T-SQL:
Từ GUI: Trên Publication Properties, chọn Subscription Options, set “Allow initialization from backup files” = “True”, nhấn OK để lưu.
Bước 5: Vô hiệu hóa Distribution Cleanup SQL Server Job (Right-click Job Name → Disable):
Bắt buộc phải disable Job trước khi lấy Backup ở bước tiếp theo. Nếu không, bạn có thể gặp lỗi.
Bước 6: Thực hiện Database Backup từ Publisher.
Bước 7: Restore Backup lên Subscriber Server.
Bước 8: Thực thi SP_ADDSUBSCRIPTION trên Publication Database với các tham số như ảnh chụp.
Bước 9: Sau khi hoàn tất các bước khác, kích hoạt lại Distribution Cleanup Job.
Bước 10: Kiểm tra Replication Status dùng SSMS → Replication → Replication Monitor.
Có thể thấy trạng thái Performance hiển thị Excellent và không có Snapshot Agent được tạo trong toàn bộ quá trình vì đã dùng Backup File để khởi tạo.
Kết luận
Khởi tạo từ Database Backup File giải quyết nhiều vấn đề khi đồng bộ Large Databases nhưng cũng tạo ra một vài vấn đề riêng. Những vấn đề này có thể giải quyết bằng kế hoạch kỹ lưỡng, hy vọng bài viết giúp đơn giản hóa quy trình.
Sử dụng tab Feedback để bình luận hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.