Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Cơ Sở Dữ Liệu

Thêm Articles & Khởi Tạo Lại SQL Server Transactional Replication Từ Backup

Trong blog trước, tôi đã thảo luận cách khởi tạo replication cho database lớn dùng database backup. Tôi sẽ thảo luận cách thêm articles mới và khởi tạo lại subscriber cho SQL Server transactional replication đã cấu hình qua backup.

Giới Thiệu

Thông thường, user dùng snapshot agent để thêm articles mới vào publication hoặc khởi tạo lại subscriber, tuy nhiên, trong kịch bản này, tôi đã cấu hình transactional replication dùng backup file. Dưới đây là các bước chi tiết:

  1. Thêm articles mới vào publication đã khởi tạo với backup.
  2. Khởi tạo lại subscriber đã khởi tạo với backup.

Kịch Bản 1: Cách Thêm Articles Mới Vào Publication Đã Khởi Tạo Với Backup:

Trong kịch bản của chúng ta, transactional replication đã được cấu hình dùng backup file như sau:

-Publisher + Distributor: Node1 -Subscriber: Node2 -Publisher Database: ABC_Pub -Subscriber Database: ABC_Sub -Publication: ABC_Pub_Bkp -Subscription: ABC_Sub_Bkp -Articles: Cars, bikes

Thêm articles mới vào publication hiện có có thể làm bằng cách đồng bộ dữ liệu thủ công (chúng ta sẽ thảo luận bước chi tiết) giữa publisher và subscriber.

Tổng Quan Các Bước Quy Trình:

  1. Đồng bộ dữ liệu cho articles mới từ publisher sang subscriber dùng phương pháp import/export phổ biến.
  • Thêm bảng mới vào publisher database và chèn vài hàng.
  • Script định nghĩa tạo cho bảng mới và thực thi trên subscriber database.
  • Dùng phương pháp export/import để sync dữ liệu giữa publisher và subscriber.
  1. Dừng Log reader và Distributor agent jobs.
  2. Thêm articles mới vào publication dùng GUI để hoàn tất cấu hình.
  3. Bật và bắt đầu Log reader và distributor agent jobs.
  4. Chèn dữ liệu mới trên publisher.
  5. Validate dữ liệu trên subscriber.

Bước 1: Đồng bộ dữ liệu cho articles mới từ publisher sang subscriber dùng import/export.

Trong replication hiện có, có hai articles, và tôi sẽ tạo hai bảng thêm cho publisher database và sau thêm vào replication.

Articles trên replication hiện có:

Tôi đã tạo hai bảng mới trong publisher database và thêm vài hàng. Bây giờ script định nghĩa tạo cho cả hai bảng và thực thi trên subscriber database.

Hai bảng mới được tạo trên publisher database:

Tạo bảng trên subscriber dùng định nghĩa từ publisher:

Bây giờ hãy sync dữ liệu giữa publisher và subscriber dùng phương pháp import/export:

Right click publisher database -> Select Export data -> Follow wizard để truyền thông tin cần thiết.

Chọn source server (Publisher) và Database Name:

Bước tiếp, chọn Destination server (Subscriber) và database name:

Chọn tên bảng để truyền dữ liệu và next:

Bước tiếp, Export thành công:

Validate dữ liệu: Như bạn thấy, dữ liệu đã sync giữa publisher và subscriber.

2. Dừng Log reader và distributor agent jobs–

Dừng replication agents là practice khuyến nghị tốt nhất trước khi làm operation với articles.

3. Thêm articles mới vào publication dùng GUI để hoàn tất cấu hình

Right click publication dưới thư mục replication chọn properties -> Navigate đến Articles page -> uncheck Show only checked articles in the list -> Select hai articles mới dưới objects to publish là Country và Customer trong trường hợp chúng ta và click OK để hoàn tất.

4. Bật và bắt đầu Log reader và distributor agent jobs –

Một khi agent được bật và bắt đầu, bản ghi mới thêm sẽ bị log reader bắt và replicate sang subscriber bởi distributor agent. Bước tiếp, dữ liệu sẽ được validate.

5. Chèn dữ liệu mới trên publisher.

Bây giờ tôi thêm dữ liệu trên cả hai bảng publisher để thêm 5 bản ghi nữa mỗi bảng.

6. Validate dữ liệu trên subscriber:

Sau validate, bạn sẽ thấy 5 bản ghi mới đã thêm (tổng 10 hàng) trên cả hai bảng. Cùng đã replicate sang subscriber.

Trạng thái sức khỏe replication:

Kịch Bản 2: Khởi Tạo Lại Subscriber Đã Khởi Tạo Với Backup.

Chuyển sang kịch bản thứ hai, đôi khi chúng ta chỉ còn tùy chọn cuối để fix vấn đề đồng bộ replication bằng cách Reinitialize subscriber.

Trong trường hợp chúng ta, replication đã khởi tạo qua backup và dưới đây là bước quy trình khởi tạo lại subscriber.

  1. Dừng Log reader, distributor agent và distributor cleanup jobs.
  2. Lấy full backup cho publisher database và tắt T-Log backup job.
  3. Restore database trên subscriber database với replace.
  4. Validate dữ liệu.
  5. Chạy sp_addsubscription
  6. Bật Log reader và distributor jobs, chèn bản ghi mới trên publisher database và validate dữ liệu trên subscriber.

1. Dừng Log reader và distributor agent jobs.

Dừng replication agents là practice khuyến nghị tốt nhất trước operation với articles.

2. Lấy full backup cho publisher database và tắt T-Log backup job.

Kích hoạt full backup cho database ABC_Pub trên publisher server và tắt T-Log backup job nếu có.

3. Restore database trên subscriber database với replace và norecovery

Restore subscriber database ABC_Sub với Replace:

4. Validate dữ liệu giữa publisher và subscriber database.

Dữ liệu đã validate và như snapshot sau, cả bảng Cars và Bikes có 5 bản ghi, Country và customer có 10 bản ghi.

5. Chạy sp_addsubscription :

Bây giờ chạy stored procedure sau với tham số cần thiết để khởi tạo lại subscriber.

6. Bật Log reader, distributor agent và cleanup jobs. Chèn bản ghi mới trên publisher database và validate dữ liệu trên subscriber.

Bật replication agent jobs và start:

Thêm 5 bản ghi vào hai bảng replicated:

Validate dữ liệu trên subscriber database:

Validation hoàn tất và 5 bản ghi mới đã replicate sang subscriber và tất cả bảng giờ có 10 bản ghi.

Health check cho replication:

Kết Luận

Tôi hy vọng hai kịch bản thảo luận trên hữu ích cho việc thêm articles mới và khởi tạo lại subscriber đã khởi tạo qua backup.

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.