Cho phép sao chép giao dịch đăng ký tái tạo trong SQL Server 2019

Ngày tạo trang :

Giới thiệu và phòng ngừa

Bài viết này được thiết kế để sao chép trong SQL Server 2019. Một trong những chức năng trong đó là "đăng ký tái tạo" được kích hoạt.

Tính năng này đã được kích hoạt theo mặc định trong các phiên bản SQL Server trước đó, nhưng đã bị vô hiệu hóa kể từ (có lẽ) 2017.

Các phiên bản SQL Server trong tương lai có thể loại bỏ tính năng này. Ngoại trừ việc nâng cấp một môi trường hiện có, chúng tôi khuyên bạn nên thay thế nó cho việc xây dựng mới bằng cách sao chép hợp nhất, v.v.

tham khảo

môi trường

Sử dụng hai máy chủ, một máy chủ và hai SQL Server. Windows Server đang ở trạng thái không có thiết đặt bổ sung nào được thực hiện ngay sau khi cài đặt.

Đơn vị số 1 (phía xuất bản)
  • Windows Server 2019 Phiên bản Chuẩn
  • SQL Server 2019 Developer Edition (Yêu cầu phiên bản tiêu chuẩn trở lên)
  • SQL Server Management Studio 18.9.1
Đơn vị thứ hai (phía thuê bao)
  • Windows Server 2019 Phiên bản Chuẩn
  • SQL Server 2019 Express Edition
  • SQL Server Management Studio 18.9.1

mục đích

Ngay cả khi bản ghi bảng trong cơ sở dữ liệu máy chủ đầu tiên hoặc thứ hai được cập nhật Đảm bảo rằng các bản ghi bảng trên máy chủ của nhau được đồng bộ hóa.

Nhân tiện, một ở phía xuất bản là tốt, nhưng phía người đăng ký có thể có bất kỳ số lượng đơn vị nào. Nó cũng hoạt động với nhiều phiên bản SQL Server trên một máy chủ duy nhất.

Cài đặt SQL Server

Cài đặt SQL Server không phải là phần chính của các Mẹo này, vì vậy tôi sẽ không đi vào chi tiết. Chỉ những người liên quan đến việc sao chép mới được liệt kê.

Cài đặt phía xuất bản yêu cầu Phiên bản tiêu chuẩn hoặc cao hơn. Mẹo này cài đặt Developer Edition làm môi trường thử nghiệm.

Người đăng ký là tốt với Express Edition. Tất nhiên, các phiên bản khác là tốt, tùy thuộc vào cấu hình DB.

Để chọn Tùy chọn Tính năng, hãy chọn Dịch vụ Công cụ Cơ sở dữ liệu và Sao chép SQL Server. Điều này là như nhau cho cả phía xuất bản và phía người đăng ký.

Cấu hình Phiên bản mặc định cho cả phía xuất bản và phía người đăng ký. Ngay cả khi bạn thay đổi tên phiên bản, sự khác biệt là liệu bạn có chỉ định tên phiên bản trong đặc điểm kỹ thuật máy chủ sau này hay không.

Về phía xuất bản, cấu hình SQL Server Agent để bắt đầu tự động. Bạn có thể thay đổi cài đặt này sau.

Mẹo này xác thực sao chép với tài khoản SQL Server sa. Do đó, hãy bật xác thực SQL Server. Nếu bạn không muốn sử dụng tài khoản sa vì lý do bảo mật, hãy thay thế phần xác thực SQL Server của lời giải thích sau bằng xác thực Windows hoặc tài khoản khác.

Làm cho cài đặt này giống nhau trên cả hai máy chủ.

Cài đặt SQL Server Management Studio

Cài đặt SQL Server Management Studio mà bạn đã tải xuống. Vì màn hình cài đặt chỉ để cài đặt, lời giải thích bị bỏ qua.

Khởi động lại Windows nếu bạn được nhắc khởi động lại sau khi cài đặt. Ngoài ra, cài đặt bất kỳ bản vá nào trong Windows Update.

Tạo cơ sở dữ liệu và bảng bên phát hành

Nếu bạn tạo bảng ở phía xuất bản, phía người đăng ký sẽ tự động sao chép bảng hoặc bản ghi.

Phương pháp sáng tạo giống như quy trình thông thường, vì vậy tôi sẽ bỏ qua các chi tiết.

Bạn đang tạo một cơ sở dữ liệu có tên Publication DB trong SQL Server Management Studio.

Tạo bảng có tên "Người dùng" và đăng ký các cột như sau: Tất cả những gì bạn cần làm là kiểm tra đồng bộ hóa các bản ghi, vì vậy tên, số và nội dung cột của bảng có thể là bất cứ điều gì. Tuy nhiên, chỉ cần chìa khóa chính.

Thêm một vài bản ghi để đảm bảo rằng các bản ghi được đồng bộ hóa sau khi sao chép được tạo.

Cấu hình Kết nối Từ xa

Cấu hình chúng để cho phép truy cập từ xa vào cơ sở dữ liệu máy chủ của nhau. Chi tiết được tóm tắt trong các mẹo sau đây.

Thiết đặt quyền cặp

Ở hệ phục vụ ở phía xuất bản, hãy mở thuộc tính của cặp sau: Đường dẫn thư mục phụ thuộc vào phiên bản SQL Server và tên phiên bản.

  • C:\Program Files\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\ReplData

Từ tab Bảo mật, hãy thêm tài khoản "DỊCH VỤ" và đặt nó thành toàn quyền kiểm soát.

Cấu hình Phân phối

Lần này, phân phối được tạo trên cùng một máy chủ với ấn phẩm.

Khởi động SQL Server Management Studio, bấm chuột phải vào Sao chép và chọn Cấu hình Phân phối.

Bấm Tiếp.

Kiểm tra "Làm máy chủ của riêng bạn > nhà phân phối của riêng bạn" <.

Sau đó, nhấp vào "Tiếp theo" vì nó là để hoàn thành nó.

Tạo ấn phẩm

Ban đầu, nó được tạo từ thuật sĩ như được hiển thị trong hình sau, Trong SQL Server 2019, việc tạo từ trình hướng dẫn không cho phép "đăng ký tái tạo" và không cho phép đồng bộ hóa các bản ghi giữa các bảng.

Do đó, chúng tôi sử dụng T-SQL để tạo ấn phẩm ở đây.

Sau đây là SQL để tạo ấn phẩm có xác thực SQL Server: Vui lòng thay đổi mật khẩu theo cài đặt của bạn.

-- トランザクションパブリケーションを追加するための宣言
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'パブリケーションDB'; 
SET @publication = N'パブリケーション'; 
SET @login = 'sa'; 
SET @password = 'saパスワード'; 

USE [パブリケーションDB]

-- パブリケーションデータベースでトランザクションレプリケーションを有効にする。
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- sp_addlogreader_agent を実行して、エージェントジョブを作成します。
EXEC sp_addlogreader_agent 
    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;

-- 即時更新、キュー更新、およびプルサブスクリプションをサポートするトランザクションパブリケーションを作成します。
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_sync_tran = N'true', 
    @allow_queued_tran = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true',
    -- 関連するデフォルトのプロパティを明示的に宣言する
    @conflict_policy = N'pub wins';

-- デフォルトのスケジュールを使用して、パブリケーションの新しいスナップショットジョブを作成します。
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;
GO

Khi sử dụng xác thực Windows, hãy thay đổi các phần "sp_addlogreader_agent" và "sp_addpublication_snapshot" như sau.

Xác thực SQL Server

    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;

Xác thực Windows

    @job_login = @login, 
    @job_password = @password,
    @publisher_security_mode = 1;

Nếu nó được tạo thành công, bạn sẽ thấy những điều sau đây:

Ngoài ra, mở các thuộc tính của ấn phẩm được tạo và đảm bảo rằng "Đăng ký tái tạo" được kích hoạt.

Chỉ định Bài viết

Ban đầu, nếu bạn tạo nó bằng trình hướng dẫn, bạn sẽ chỉ định bài viết cùng một lúc, Vì kịch bản trên không bao gồm xử lý bài viết, nó được chỉ định từ thuộc tính.

Chọn "Bài viết" từ menu bên trái, kiểm tra bảng bạn muốn đồng bộ hóa và nhấp vào nút OK.

Một msrepl_tran_version được thêm vào các cột của bảng được đồng bộ hóa và một kích hoạt bảng được thêm vào cùng một lúc.

Tạo đăng ký

Bấm chuột phải vào ấn phẩm bạn vừa tạo và chọn Đăng ký Mới.

Bấm Tiếp.

Chọn ấn phẩm bạn đã tạo.

Kiểm tra Chạy tất cả các đại lý trên Nhà phân phối <tựa >.

Bấm nút Thêm Thuê bao SQL Server.

Chỉ định máy chủ (+ tên phiên bản) để đăng ký làm người đăng ký.

Nếu bạn không có cơ sở dữ liệu người đăng ký, hãy tạo cơ sở dữ liệu mới. Nếu nó đã tồn tại, hãy chọn nó vì mục chọn được hiển thị.

Sau khi bạn chỉ định cơ sở dữ liệu, hãy bấm Tiếp.

Nếu bạn có nhiều hơn một người đăng ký, bạn có thể đăng ký bao nhiêu tùy thích tại đây.

Nhấp vào nút "..."

Ở đây, đại lý chạy dưới tài khoản sa, nhưng vui lòng đặt nó theo môi trường của bạn.

Chọn Chạy liên tục.

Cài đặt "Đăng ký tái tạo" sẽ hoạt động.

Trong trường hợp "cam kết thay đổi cùng một lúc", nó được đồng bộ hóa ngay lập tức, nhưng tất cả các máy chủ phải chạy.

"Hàng đợi thay đổi và cam kết nếu có thể" tích lũy các thay đổi trong hàng đợi, vì vậy chúng được cam kết khi máy chủ đang chạy, ngay cả khi máy chủ không chạy. Tuy nhiên, thời gian đồng bộ hóa chậm.

Kiểm tra Sử dụng máy chủ được liên kết hoặc từ xa được xác định trước.

Chọn Ngay.

Bấm Tiếp.

Bấm nút Kết thúc.

Đóng cửa nếu không có lỗi.

Sau một vài phút, bạn có thể thấy rằng cơ sở dữ liệu đã được tạo ở phía người đăng ký và các bảng cũng đã được tạo.

Bạn có thể xác minh rằng các bản ghi cũng được đồng bộ hóa.

Nếu nó không đồng bộ sau một thời gian, vui lòng làm như sau.

Bấm chuột phải vào thuê bao đã tạo và chọn Tái hợp pháp hóa.

Kiểm tra "Sử dụng ảnh chụp nhanh mới" và nhấp vào nút "Đặt để hợp pháp hóa lại".

Nếu có lỗi xảy ra, hãy thử lại.

Kiểm tra hoạt động

Cố gắng thêm hoặc sửa đổi bảng ở phía xuất bản.

Đợi vài giây hoặc lâu hơn để đảm bảo nó được đồng bộ hóa với người đăng ký.

Bây giờ chúng ta hãy sửa đổi bản ghi ở phía người đăng ký.

Bạn có thể xác minh rằng nó được đồng bộ hóa với phía xuất bản.

Nếu bạn có nhiều người đăng ký đã đăng ký, hãy đảm bảo rằng chúng được đồng bộ hóa giữa các người đăng ký.