Cách cấu hình tính năng sao chép dữ liệu trong Microsoft SQL Server

Microsoft SQL Server là phần mềm quản lý cơ sở dữ liệu có thể được cài đặt trên các hệ điều hành Windows Server. Cơ sở dữ liệu được các doanh nghiệp trong mọi ngành nghề sử dụng, và nhiều giải pháp phần mềm đều dựa vào cơ sở dữ liệu – bao gồm cả cơ sở dữ liệu tập trung và phân tán. Tính sẵn sàng của cơ sở dữ liệu và tính nhất quán của dữ liệu là yếu tố then chốt đối với các doanh nghiệp, do đó việc sao lưu và nhân bản cơ sở dữ liệu trở thành một yêu cầu thiết yếu.

Tìm hiểu về các loại nhân bản trong SQL Server, cách thức hoạt động của nhân bản trong SQL Server, và cách thực hiện nhân bản SQL Server.

NAKIVO cho sao lưu Windows

NAKIVO cho sao lưu Windows

Sao lưu nhanh các máy chủ và máy trạm Windows vào các vị trí tại chỗ, ngoài văn phòng và trên đám mây. Phục hồi toàn bộ hệ thống và các đối tượng chỉ trong vài phút, giúp giảm thiểu thời gian ngừng hoạt động (RTO) và tối đa hóa thời gian hoạt động.

Sao chép dữ liệu trong SQL Server là gì?

Sao chép dữ liệu trong MS SQL Server là quá trình sao chép dữ liệu từ một cơ sở dữ liệu sang cơ sở dữ liệu khác, bao gồm các đối tượng cơ sở dữ liệu cụ thể, đồng thời duy trì bản sao đồng bộ của dữ liệu này giữa cơ sở dữ liệu nguồn và cơ sở dữ liệu đích. Với tính năng sao chép trong SQL Server, bạn có thể tạo ra một bản sao giống hệt cơ sở dữ liệu chính và đồng bộ hóa các thay đổi giữa hai cơ sở dữ liệu trong khi vẫn duy trì tính nhất quán và tính toàn vẹn của dữ liệu.

Các thuật ngữ được sử dụng cho sao chép MS SQL Server

Trước khi đi sâu vào cách cấu hình và thiết lập sao chép MS SQL Server, trước tiên hãy điểm qua các thuật ngữ chính và các mô hình sao chép.

Articles là các đơn vị cơ bản cần được sao chép, chẳng hạn như bảng, thủ tục, hàm và chế độ xem. Các bài viết (articles) có thể được mở rộng theo chiều dọc hoặc chiều ngang bằng cách sử dụng bộ lọc. Có thể tạo nhiều bài viết cho cùng một đối tượng. Bộ sưu tập bài viết (

A publication ) là tập hợp logic của các bài viết. Đây là tập hợp cuối cùng các thực thể từ cơ sở dữ liệu được chỉ định để sao chép. Điều kiện sao chép (

A filter ) là tập hợp các điều kiện cho một bài viết. Sao chép MS SQL Server cho phép bạn sử dụng bộ lọc và chọn các thực thể tùy chỉnh để sao chép, từ đó giảm lưu lượng, sự trùng lặp và lượng dữ liệu được lưu trữ trong bản sao cơ sở dữ liệu. Ví dụ, bạn có thể chọn chỉ các bảng và trường quan trọng nhất bằng cách sử dụng bộ lọc và sau đó chỉ sao chép dữ liệu này.

Agents là các thành phần của MS SQL Server có thể hoạt động như các dịch vụ nền cho hệ thống quản lý cơ sở dữ liệu quan hệ và được sử dụng để lên lịch thực thi tự động các tác vụ, chẳng hạn như sao lưu và sao chép cơ sở dữ liệu MS SQL. Có năm loại đại lý: Snapshot Agent, Log Reader Agent, Distribution Agent, Merge Agent và Queue Reader Agent.

Metadata là dữ liệu được sử dụng để mô tả các thực thể của cơ sở dữ liệu. Có một loạt các hàm metadata tích hợp sẵn cho phép bạn trả về thông tin về phiên bản MS SQL Server, các phiên bản cơ sở dữ liệu và các thực thể cơ sở dữ liệu.

Các vai trò trong sao chép cơ sở dữ liệu SQL

Có ba vai trò chính trong sao chép cơ sở dữ liệu MS SQL: Distributor, Publisher và Subscriber.

  • A Distributor là một phiên bản cơ sở dữ liệu MS SQL được cấu hình để thu thập các giao dịch từ các bản phát hành và phân phối chúng cho các người đăng ký. Một Distributor đóng vai trò là cơ sở dữ liệu để lưu trữ các giao dịch được sao chép.

    Một cơ sở dữ liệu Distributor có thể được coi là cả Publisher và Distributor cùng một lúc. Trong mô hình Distributor cục bộ, một phiên bản MS SQL Server duy nhất chạy cả Publisher và Distributor.

    Mô hình nhà phân phối từ xa có thể được sử dụng khi bạn muốn người đăng ký được cấu hình để sử dụng một phiên bản MS SQL Server duy nhất nhằm truy cập các bản phát hành khác nhau (phân phối tập trung). Trong mô hình này, Nhà xuất bản (Publisher) và Nhà phân phối (Distributor) chạy trên các máy chủ khác nhau.

  • A Publisher
  • là bản sao cơ sở dữ liệu chính nơi bản phát hành được cấu hình, cung cấp dữ liệu cho các máy chủ MS SQL khác được cấu hình để sử dụng trong quá trình sao chép. Nhà xuất bản có thể có nhiều hơn một bản phát hành.

  • A Subscriber

    là cơ sở dữ liệu nhận dữ liệu được nhân bản từ một bản phát hành. Một người đăng ký có thể nhận dữ liệu từ nhiều Nhà xuất bản và bản phát hành. Mô hình người đăng ký đơn được sử dụng khi chỉ có một người đăng ký. Mô hình người đăng ký đa được sử dụng khi nhiều người đăng ký được kết nối với một bản phát hành duy nhất.
    Subscription

    là yêu cầu về một bản sao của bản phát hành phải được gửi đến người đăng ký. Đăng ký được sử dụng để xác định dữ liệu xuất bản cần nhận cũng như vị trí và thời điểm nhận dữ liệu này. Có hai loại đăng ký:

    • Push subscription
    • : Dữ liệu đã thay đổi được truyền bắt buộc từ Nhà phân phối đến cơ sở dữ liệu Người đăng ký. Không cần yêu cầu từ Người đăng ký.

    • Pull subscription
    • : Dữ liệu đã thay đổi trên Nhà xuất bản được Người đăng ký yêu cầu. Trình đại lý chạy trên phía Người đăng ký.

    Cơ sở dữ liệu đăng ký là cơ sở dữ liệu đích trong mô hình sao chép MS SQL.

    MS SQL Server replication scheme


Trong mô hình nhiều nhà xuất bản – nhiều người đăng ký (
), nhà xuất bản có thể đóng vai trò là người đăng ký trên một trong các máy chủ MS SQL. Hãy đảm bảo tránh mọi xung đột cập nhật tiềm ẩn khi sử dụng mô hình nhân rộng MS SQL Server này.

Các loại nhân rộng MS SQL Server

Nhân rộng MS SQL Server là công nghệ sao chép và đồng bộ hóa dữ liệu giữa các cơ sở dữ liệu liên tục hoặc định kỳ theo các khoảng thời gian đã lên lịch. Về hướng nhân bản, nhân bản MS SQL Server có thể là một chiều, một-nhiều, hai chiều và nhiều-một. Có bốn loại nhân bản MS SQL Server: nhân bản ảnh chụp nhanh, nhân bản giao dịch, nhân bản ngang hàng và nhân bản hợp nhất.

Nhân bản ảnh chụp nhanh

Snapshot replication được sử dụng để nhân bản dữ liệu chính xác như khi ảnh chụp nhanh cơ sở dữ liệu được tạo. Loại sao chép này phù hợp với dữ liệu không thay đổi thường xuyên, khi việc bản sao cơ sở dữ liệu cũ hơn cơ sở dữ liệu chính không phải là vấn đề nghiêm trọng, hoặc khi có một lượng lớn thay đổi được thực hiện trong một khoảng thời gian ngắn. Tính năng theo dõi thay đổi không được sử dụng với sao chép bản chụp nhanh.

Ví dụ, sao chép bản chụp nhanh có thể được sử dụng khi tỷ giá hối đoái hoặc bảng giá được cập nhật một lần mỗi ngày và phải được phân phối từ máy chủ chính đến các máy chủ tại các văn phòng chi nhánh.

How snapshot replication works

Sao chép giao dịch (Transactional replication)

Transactional replication là quá trình sao chép tự động định kỳ, trong đó dữ liệu được phân phối từ cơ sở dữ liệu chính sang bản sao cơ sở dữ liệu theo thời gian thực (hoặc gần thời gian thực). Sao chép giao dịch phức tạp hơn sao chép bản sao. Tất cả các giao dịch được thực hiện cùng với trạng thái cuối cùng của cơ sở dữ liệu đều được sao chép, cho phép theo dõi toàn bộ lịch sử giao dịch trên bản sao.

Tại đầu quá trình sao chép giao dịch, một bản sao chụp được áp dụng cho người nhận, sau đó dữ liệu được chuyển liên tục từ cơ sở dữ liệu chính sang bản sao cơ sở dữ liệu khi có thay đổi đối với dữ liệu này. Sao chép giao dịch được sử dụng rộng rãi như một hình thức sao chép một chiều.

How transactional replication works

Các trường hợp sử dụng cho sao chép giao dịch:

  • Tạo máy chủ cơ sở dữ liệu với bản sao cơ sở dữ liệu để sử dụng cho việc chuyển đổi dự phòng nếu máy chủ cơ sở dữ liệu chính gặp sự cố.
  • Nhận báo cáo về các hoạt động được thực hiện tại các chi nhánh bằng cách sử dụng nhiều Nhà xuất bản (Publisher) tại các chi nhánh và một Người đăng ký (Subscriber) tại văn phòng chính.
  • Các thay đổi được sao chép ngay khi chúng xảy ra.
  • Dữ liệu trên cơ sở dữ liệu nguồn thay đổi thường xuyên.

Sao chép ngang hàng (Peer-to-peer replication)

Peer-to-peer replication được sử dụng để sao chép dữ liệu cơ sở dữ liệu đến nhiều Người đăng ký cùng một lúc. Loại sao chép này của Microsoft SQL Server có thể được sử dụng khi các máy chủ cơ sở dữ liệu của bạn được phân tán trên toàn cầu. Các thay đổi có thể được thực hiện trên bất kỳ máy chủ cơ sở dữ liệu nào. Các thay đổi sẽ được truyền đến tất cả các máy chủ cơ sở dữ liệu. Sao chép ngang hàng có thể giúp mở rộng quy mô ứng dụng sử dụng cơ sở dữ liệu. Nguyên tắc hoạt động chính dựa trên sao chép giao dịch.

Peer-to-peer replication

Dưới đây, bạn có thể xem cách sử dụng sao chép ngang hàng MS SQL Server giữa các máy chủ cơ sở dữ liệu được phân tán trên toàn cầu. Peer-to-peer replication in a distributed environment

Sao chép hợp nhất (Merge replication)

Merge replication là một loại sao chép hai chiều thường được sử dụng trong môi trường máy chủ-máy khách để đồng bộ hóa dữ liệu giữa các máy chủ cơ sở dữ liệu khi chúng không thể kết nối liên tục. Khi kết nối mạng được thiết lập giữa hai máy chủ cơ sở dữ liệu, các tác nhân sao chép hợp nhất sẽ phát hiện các thay đổi được thực hiện trên cả hai cơ sở dữ liệu và điều chỉnh cơ sở dữ liệu để đồng bộ hóa và cập nhật trạng thái của chúng. Sao chép hợp nhất tương tự như sao chép giao dịch, nhưng dữ liệu được sao chép từ Nhà xuất bản sang Người đăng ký và ngược lại.

Merge replication

Loại sao chép cơ sở dữ liệu này là phức tạp nhất trong tất cả các loại sao chép của MS SQL Server và hiếm khi được sử dụng. Ví dụ, sao chép hợp nhất có thể được sử dụng bởi nhiều cửa hàng ngang hàng làm việc với một kho chung. Mỗi cửa hàng được phép thay đổi thông tin trong cơ sở dữ liệu kho và đồng thời, tất cả các cửa hàng phải có trạng thái cập nhật của cơ sở dữ liệu của họ sau khi hàng hóa được vận chuyển hoặc vật tư được giao đến kho. Sao chép hợp nhất có thể được sử dụng trong các trường hợp mà thông tin cập nhật phải có sẵn cho cơ sở dữ liệu chính (hoặc trung tâm) và các cơ sở dữ liệu chi nhánh cùng lúc.

Yêu cầu cho sao chép MS SQL Server

Các cổng sau phải được mở cho lưu lượng truy cập vào:

  • TCP 1433, 1434, 2383, 2382, 135, 80, 443
  • UDP 1434

Đảm bảo cấu hình Tường lửa Windows và kích hoạt các cổng phù hợp cho lưu lượng truy cập vào trên mỗi máy chủ trước khi cài đặt MS SQL Server. Các máy chủ tham gia vào quá trình sao chép (replication) của MS SQL phải giải quyết tên máy chủ của nhau bằng tên máy chủ.

Trước khi cấu hình sao chép (replication) của MS SQL Server, các phần mềm sau phải được cài đặt cho MS SQL Server:

  • .NET Framework – bộ thư viện
  • MS SQL Server – phần mềm máy chủ cơ sở dữ liệu
  • MS SQL Server Management Studio (SSMS) – phần mềm quản lý cơ sở dữ liệu MS SQL thông qua giao diện người dùng đồ họa (GUI).

LƯU Ý: MS SQL Server 2016 được sử dụng để cấu hình trong bài viết này. Bạn có thể áp dụng nguyên tắc tương tự để cấu hình Replication trong các phiên bản SQL Server mới hơn.

Hãy lưu ý rằng nếu bạn cài đặt MS SQL Server 2016 trên máy đầu tiên nơi chứa cơ sở dữ liệu nguồn, bạn nên cài đặt MS SQL Server 2016 trên máy thứ hai để cơ sở dữ liệu hoạt động bình thường. Ví dụ: nếu bạn muốn cấu hình sao chép giao dịch MS SQL, bạn có thể sử dụng máy chủ cơ sở dữ liệu thứ hai (nơi đã cấu hình Subscriber) có phiên bản nằm trong khoảng hai phiên bản so với máy chủ cơ sở dữ liệu nguồn nơi đã cấu hình Publisher. Nếu phiên bản Publisher trên MS SQL Server là 2016, Distributor có thể được cấu hình trên các phiên bản 2016, 2017, 2019 và 2022, còn Subscriber có thể được cấu hình trên MS SQL Server 2012, 2014, 2016, 2017 và 2019. Phiên bản của Distributor không được thấp hơn phiên bản của Publisher. Việc sao chép dữ liệu sẽ không hoạt động nếu bạn cài đặt MS SQL Server 2008 trên máy thứ hai, ví dụ.

Các khuyến nghị cơ bản về sao chép cơ sở dữ liệu MS SQL

Trước khi cấu hình môi trường cho MS SQL Server, đây là một số yếu tố cần xem xét:

  • Có các giới hạn đối với các trường danh tính và trình kích hoạt.
  • Các bản phát hành chỉ có thể chứa các bảng có khóa chính.
  • Không nên sử dụng lịch trình tạo bản sao cho các cơ sở dữ liệu lớn để tránh tiêu tốn quá nhiều tài nguyên tính toán.
  • Hãy cẩn thận khi thay đổi dữ liệu trong bản sao cơ sở dữ liệu nằm trên máy đăng ký. Khi một giao dịch sửa đổi dữ liệu đang diễn ra và dữ liệu đó đã bị chỉnh sửa hoặc xóa, quá trình sao chép có thể bị dừng cho đến khi vấn đề này được giải quyết.

Cấu hình môi trường

Khi cấu hình sao chép MS SQL lần đầu tiên, khuyến nghị bạn nên thực hiện trong môi trường thử nghiệm trước. Ví dụ, chúng ta cấu hình sao chép trên các máy chủ SQL chạy trên máy ảo. Trong hướng dẫn này, hai máy chủ chạy Windows Server 2016 và MS SQL Server 2016 được sử dụng để giải thích về sao chép MS SQL Server.

Hãy cùng xem qua cấu hình của môi trường thử nghiệm được sử dụng để viết bài blog này nhằm hiểu rõ hơn về cấu hình sao chép MS SQL Server.

Host 1

  • Địa chỉ IP: 192.168.101.101
  • Tên máy chủ: MSSQL01
  • ID phiên bản MS SQL Server: MSSQLSERVER1

Host 2

  • Địa chỉ IP: 192.168.101.102
  • Tên máy chủ: MSSQL02
  • ID phiên bản MS SQL Server: MSSQLSERVER2

Cả hai máy đều có ổ đĩa C: và ổ đĩa D: trong cấu hình ổ đĩa của chúng.

Bạn có thể tạm thời tắt tường lửa Windows khi cài đặt MS SQL Server để thực hành cấu hình sao chép MS SQL Server. Bài viết này không đề cập đến cách cài đặt MS SQL Server vì hướng dẫn này tập trung vào việc cấu hình tính năng sao chép (replication) của MS SQL Server. Trong ví dụ này, cả hai máy chủ MS SQL Server đều được cài đặt mà không có PolyBase.

Sau khi hoàn tất cài đặt MS SQL Server, hãy kiểm tra xem bạn đã cài đặt các tính năng cần thiết cho tính năng sao chép của MS SQL Server hay chưa. Lưu ý rằng các dịch vụ của cơ sở dữ liệu, chẳng hạn như SQL Server Replication và R-Services, phải được chọn trong quá trình cài đặt MS SQL Server. Đường dẫn cài đặt mặc định được sử dụng trong ví dụ này (C:Program FilesMicrosoft SQL Server).

The components that must be installed with SQL Server

Các thiết lập khác:

  • Chế độ xác thực hỗn hợp (xác thực Windows và xác thực MS SQL Server)
  • Thư mục gốc dữ liệu: D:MSSQL_Server
  • Thư mục cơ sở dữ liệu hệ thống: D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLData
  • Thư mục cơ sở dữ liệu người dùng: D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLData
  • Thư mục nhật ký cơ sở dữ liệu người dùng: D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLData
  • Thư mục sao lưu: D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLBackup

Sau khi cài đặt MS SQL Server 2016 và SQL Server Management Studio trên các máy, bạn có thể chuẩn bị các máy chủ MS SQL để sao chép cơ sở dữ liệu.

Chuẩn bị cho sao chép MS SQL Server

Bạn phải cấu hình các máy chủ trước khi có thể bắt đầu sao chép cơ sở dữ liệu. Trong ví dụ của chúng tôi, một tài khoản Windows sẽ được sử dụng cho các tác nhân sao chép MS SQL Server.

  1. Tạo tài khoản mssql trên cả hai máy chủ và đặt mật khẩu giống nhau.
  2. Tài khoản mssql trong ví dụ này là thành viên của các nhóm sau:
    • Administrators (quản trị viên cục bộ trên các máy cục bộ, không phải quản trị viên miền)
    • SQLRUserGroupMSSQLSERVER1
    • SQLServer2005SQLBrowserUser$MSSQL01
  3. Bạn có thể chỉnh sửa người dùng và nhóm bằng cách nhấn Win+R, mở CMD, và chạy lệnh lusrmgr.msc .

Hai máy chủ Windows Server được sử dụng trong ví dụ này không nằm trong Active Directory. Nếu bạn sử dụng Active Directory, bạn có thể tạo người dùng mssql trên máy chủ miền.

Kết nối với MS SQL Server

  1. Chạy SQL Server Management Studio.
  2. Đăng nhập (xem ảnh chụp màn hình) với tư cách sa bằng cách sử dụng xác thực SQL Server.
    • MSSQL01MSSQLSERVER1 là tên máy chủ và tên phiên bản MS SQL trên máy chủ đầu tiên.
    • MSSQL02MSSQLSERVER2 là tên máy chủ và tên phiên bản MS SQL trên máy chủ thứ hai.

    Log into MS SQL Server instance by using SQL Server authentication

Tương tự, bạn có thể kết nối từ máy chủ thứ hai (MSSQL02) đến phiên bản máy chủ MS SQL thứ hai (MSSQLSERVER2). Bạn cũng có thể kết nối với phiên bản máy chủ MS SQL thứ hai (MSSQLSERVER2) từ máy chủ MS SQL đầu tiên (MSSQL01) bằng cách nhập thông tin đăng nhập trong SQL Server Management Studio. Bạn có thể kết nối với cả hai phiên bản máy chủ MS SQL (MSSQL01 và MSSQL02) trong một phiên bản duy nhất của SQL Server Management Studio.

Để thực hiện điều này, trong Object Explorer, nhấp vào ” Connect > Database engine“. Trong hướng dẫn này, chúng ta sẽ kết nối với MSSQLSERVER1 từ MSSQL01 và với MSSQLSERVER2 từ MSSQL02 bằng cách sử dụng SQL Server Management Studio để cấu hình các máy chủ MS SQL.

Khởi động Agent

Sau khi đăng nhập vào phiên bản máy chủ MS SQL, bạn sẽ thấy rằng Agent không đang chạy. Theo mặc định, SQL Server Agent không tự động khởi động. Bạn có thể khởi động dịch vụ này thủ công, nhưng tốt hơn là cấu hình dịch vụ này để khởi động tự động sau khi Windows khởi động.

Starting SQL Server agent

Để cấu hình dịch vụ Agent khởi động tự động:

  1. Nhấn Win+R, chạy cmd, và chạy lệnh services.msc .
  2. Mở thuộc tính dịch vụ SQL Server Agent và đặt loại khởi động (Startup Type) của S thành Automatic.

    SQL Server Agent is running and starts automatically after Windows boot

Cấu hình người dùng cho MS SQL Server

Sau khi kết nối với phiên bản MSSQLSERVER1 trong SQL Server Management Studio, chúng ta cần cấu hình người dùng:

  1. Truy cập Object Explorer và mở Security > Logins.
  2. Nhấp chuột phải vào Logins và chọn New Login. Chọn Windows authentication.
  3. Nhập tên đăng nhập mssql vào phần General .
  4. Nhấp vào Search, sau đó nhấn Check names để xác nhận, và nhấp vào OK hai lần để lưu cài đặt.

    Configuring users and permissions

  5. Bây giờ người dùng Windows MSSQL01mssql đã được thêm vào danh sách người dùng có thể đăng nhập vào cơ sở dữ liệu (tương tự, thêm người dùng mssql vào logins trên máy chủ thứ hai MSSQL02 trong SQL Server Management Studio).
  6. Thêm người dùng mssql vào các vai trò máy chủ sysadmins trong phần cấu hình bảo mật của cơ sở dữ liệu trong SQL Server Management Studio.
  7. Truy cập MSSQL01MSSQLSERVER1 > Server roles, nhấp chuột phải vào sysadmin, và mở Properties.
  8. Trên trang Members , nhấp vào Add, nhập tên người dùng của bạn mssql, và nhấp vào Check names.
  9. Chọn hộp kiểm của tên người dùng MSSQL01mssql và nhấp vào OK.

    Adding a user to server roles on MS SQL Server

  10. Thực hiện cấu hình tương tự trên máy thứ hai của bạn (trong trường hợp này là MSSQL02).
  11. Khởi động lại cả hai máy.

    Bây giờ bạn có thể đăng nhập bằng cách sử dụng xác thực Windows trên cả hai máy chủ.

    Log in to MS SQL Server instance by using Windows authentication

Nhập cơ sở dữ liệu từ bản sao lưu

Hãy nhập một cơ sở dữ liệu mẫu từ bản sao lưu và sau đó sao chép cơ sở dữ liệu từ máy thứ nhất sang máy thứ hai. Cơ sở dữ liệu AdventureWorks2016 được sử dụng làm cơ sở dữ liệu mẫu trong ví dụ này.

  1. Sao chép tệp sao lưu cơ sở dữ liệu AdventureWorks2016.bak vào thư mục sao lưu MSSQL của bạn. Trong trường hợp của chúng tôi, thư mục này trên máy chủ đầu tiên là D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLBackup
  2. Nhập cơ sở dữ liệu mẫu. Trên máy chủ đầu tiên trong SQL Server Management Studio, truy cập MSSQL01MSSQLSERVER1 , nhấp chuột phải vào Databases, và chọn Restore Database trong menu ngữ cảnh.

    Restoring a sample database to reveal MS SQL Server replication configuration

  3. Trong cửa sổ Restore Database , chọn các thông số cần thiết:
    • Nguồn: Device.
    • Nhấp vào three dots để duyệt tệp sao lưu cơ sở dữ liệu.
      • Trong cửa sổ Select Backup Devices , chọn loại phương tiện sao lưu: file.
      • Nhấp vào Add.
    • Chọn tệp .bak cần thiết – D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLBackupAdventureWorks2016.bak
    • Nhấp vào OK, sau đó nhấp vào OK một lần nữa.
  4. Cơ sở dữ liệu AdventureWorks2016 đã được khôi phục thành công.

    Restoring a sample database in MS SQL Server

Bạn có thể nhập cơ sở dữ liệu từ bản sao lưu trên máy thứ hai, nơi bản sao cơ sở dữ liệu sẽ được chạy. Cách tiếp cận này cho phép bạn giảm lưu lượng mạng vì quá trình sao chép sẽ bắt đầu bằng việc sao chép các thay đổi kể từ khi bản sao lưu được tạo mà không cần sao chép toàn bộ dữ liệu cơ sở dữ liệu vào một cơ sở dữ liệu trống.

Khôi phục cơ sở dữ liệu từ bản sao lưu trên máy chủ thứ hai và đổi tên cơ sở dữ liệu thành AdventureWorks2016r , trong đó “r” có nghĩa là “bản sao”.

Cuối cùng, chúng ta có:

Tên máy chủ Tên phiên bản MSSQL Tên cơ sở dữ liệu
MSSQL01MSSQLSERVER1 AdventureWorks2016
MSSQL02MSSQLSERVER2 AdventureWorks2016r

Sau khi nhập cơ sở dữ liệu, bạn cần thực hiện một số điều chỉnh để chuẩn bị cho các máy chủ MS SQL của mình

  1. Trên máy MSSQL01 , truy cập MSSQL01MSSQLSERVER1 > Security > Logins, chọn MSSQL01mssql. Nhấp chuột phải (hoặc nhấp đúp) vào người dùng mssql và chọn Properties.
  2. Trong phần Server Roles , chọn hộp kiểm bên cạnh vai trò dbcreator .

    Enabling the dbcreator role for mssql user

  3. Trên trang User Mapping , chọn các người dùng được ánh xạ đến tài khoản đăng nhập này và đánh dấu vào hộp kiểm cơ sở dữ liệu AdventureWorks2016 (chọn AdventureWorks2016r trên máy chủ thứ hai tương ứng).
  4. Trong phần thành viên vai trò cơ sở dữ liệu , đánh dấu vào ô db_owner .

    Configuring user mapping on MS SQL Server

  5. Nhấp vào OK để lưu cài đặt.

Thực hiện cấu hình tương tự trên máy MSSQL02. Sau đó, bạn có thể cấu hình các thành phần MS SQL Server cần thiết cho sao chép cơ sở dữ liệu.

Cấu hình sao chép cơ sở dữ liệu

Cấu hình sao chép trong chế độ đồ họa là phương pháp thuận tiện nhất. Cấu hình tiếp theo được thực hiện trong SQL Server Management Studio. Sao chép cơ sở dữ liệu giao dịch được giải thích trong ví dụ này vì đây là một trong những loại sao chép MS SQL Server được sử dụng phổ biến nhất.

Giao diện trên máy chủ cơ sở dữ liệu chính (MSSQL01MSSQLSERVER1) và giao diện trên máy chủ thứ hai (MSSQL02MSSQLSERVER2) trong SQL Server Management Studio được hiển thị trong ảnh chụp màn hình bên dưới.

The view of two MS SQL Server instances in MS SQL Server Management Studio

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

Phân phối có thể được sử dụng cho nhiều Nhà xuất bản và Người đăng ký. Trong ví dụ này, Phân phối được cấu hình trên máy chủ chính nơi lưu trữ cơ sở dữ liệu nguồn. Trên máy chủ chính (MSSQL01MSSQLSERVER1), nhấp chuột phải vào Replication và trong menu ngữ cảnh, chọn Configure Distribution.

Configuring Distribution

Trình hướng dẫn Configure Distribution Wizard sẽ mở ra.

  1. Distributor. Chọn phiên bản cơ sở dữ liệu hiện tại đang chạy trên máy chủ chính (MSSQL01MSSQLSERVER1) để đóng vai trò là Nhà phân phối trong ví dụ này. Nhấp vào Next mỗi lần để chuyển sang bước tiếp theo trong trình hướng dẫn.
  2. SQL Server Agent Start. Nếu bạn chưa định cấu hình MS SQL Server Agent để khởi động tự động, như đã giải thích ở trên, thông báo sau sẽ được hiển thị. Chọn Yes, configure the SQL Server Agent service to start automatically.

    Configuring the Distributor and MS SQL Server Agent service startup options

  3. Snapshot Folder. Bạn có thể giữ nguyên đường dẫn mặc định tại đây. Cần có một bản sao lưu (snapshot) để khởi tạo quá trình sao chép. Hãy đảm bảo có đủ dung lượng trống trên đĩa nơi chứa thư mục chứa bản sao lưu. Dung lượng trống phải tương ứng ít nhất với kích thước của cơ sở dữ liệu được sao chép.
  4. Distribution Database. Nhập tên cơ sở dữ liệu phân phối. Bạn có thể giữ nguyên tên mặc định ( distribution ) và thư mục cho tệp cơ sở dữ liệu phân phối và tệp nhật ký.

    Configuring snapshot folder and distribution database folders

  5. Publishers. Xác định các Nhà xuất bản sao chép MS SQL Server có thể truy cập Nhà phân phối. Chọn hộp kiểm bên cạnh tên cơ sở dữ liệu phân phối trên phiên bản MS SQL Server chính (nơi lưu trữ cơ sở dữ liệu nguồn sẽ được sao chép). Trong ví dụ này, đây là phiên bản MSSQL01MSSQLSERVER1, và tên cơ sở dữ liệu phân phối là distribution .
  6. Wizard Actions. Chọn Configure distribution để cấu hình phân phối trong bước cuối cùng của trình hướng dẫn. Trong ví dụ này, chúng ta sẽ không tạo tệp kịch bản để thực thi sau này.

    Selecting the Publisher and the distribution database

  7. Complete the Wizard. Kiểm tra tóm tắt cấu hình phân phối và nhấp vào Finish để tạo Distributor.

    Finishing configuring distribution

  8. Trạng thái Success sẽ xuất hiện nếu Distributor đã được tạo và cấu hình thành công.

    Configuring the Distributor

Nếu bạn thấy có lỗi xảy ra khi cấu hình SQL Server Agent để khởi động tự động, hãy chuyển đến cấu hình dịch vụ và kiểm tra chế độ khởi động của SQL Server Agent (xem cách cấu hình Khởi động Agent ở trên trong bài đăng blog này).

Bạn cũng có thể mở thuộc tính của SQL Server Agent trong SQL Server Management Studio và kiểm tra trạng thái dịch vụ cũng như các tùy chọn khởi động lại. Nhấp chuột phải vào ” SQL Server Agent ” ở cuối danh sách trong ” ” trong Object Explorer, chọn ” ” và nhấp vào ” Properties ” để xem hoặc chỉnh sửa thuộc tính của Agent.

Checking MS SQL Server Agent startup options

Cấu hình Publisher

Sau khi đã cấu hình Distribution, bạn có thể cấu hình Publisher. Publisher nên được cấu hình trên máy chủ chính (MSSQL01MSSQLSERVER1) nơi cơ sở dữ liệu master cần được sao chép được lưu trữ. Chọn Replication, nhấp chuột phải vào Local Publications và trong menu ngữ cảnh, chọn New Publication.

Creating a new publication

Trình hướng dẫn tạo bản phát hành mới sẽ mở ra.

  1. Publication Database. Chọn cơ sở dữ liệu bạn muốn sao chép ( AdventureWorks2016 trong trường hợp này). Nhấp vào Next tại mỗi bước trong trình hướng dẫn để tiếp tục.

    Selecting a publication database

  2. Publication Type. Ở bước này, bạn có thể chọn các loại sao chép của MS SQL Server cho cơ sở dữ liệu. Hãy chọn một bản phát hành giao dịch (transactional publication), đây là một loại sao chép được sử dụng rộng rãi.
  3. Articles. Chọn các đối tượng cần thiết, chẳng hạn như bảng, thủ tục, view, view có chỉ mục và hàm do người dùng định nghĩa để phát hành dưới dạng các bài viết (articles). Bạn có thể chọn sao chép các trường tùy chỉnh trong các bảng và thiết lập thuộc tính bài viết nếu cần. Trong ví dụ này, một số bảng đã được chọn.

    Selecting the transactional publication type and articles

  4. Filter Table Rows. Không có bộ lọc nào được thêm vào trong ví dụ này (đây là cấu hình mặc định của bộ lọc). Bạn có thể thêm bộ lọc nếu cần.
  5. Snapshot Agent. Chỉ định thời điểm chạy Trình tạo bản sao (Snapshot Agent). Hãy cấu hình Trình tạo bản sao để chạy ngay lập tức. Chọn Create a snapshot immediately and keep the snapshot available to initialize subscriptions.

    Filter options and Snapshot Agent options

  6. Agent Security. Chọn Use the security settings from the Snapshot Agent. Nhấp vào nút Security Settings để chọn tài khoản mà Trình tạo bản sao sẽ chạy.

    Trong cửa sổ Snapshot Agent Security mở ra, nhập thông tin đăng nhập của người dùng Windows mssql mà bạn đã tạo trước đó. Chọn kết nối với Nhà xuất bản By impersonating the process account. Nhấp vào OK để lưu cài đặt và quay lại trình hướng dẫn.

    Configuring agent security options

    Sau khi xác định người dùng cần thiết, bạn có thể thấy người dùng này trong các phần Snapshot Agent Log Reader Agent .

    Agent security options are configured

  7. Wizard Actions. Chọn hộp kiểm phía trên để tạo bản xuất bản trong bước cuối cùng của trình hướng dẫn.
  8. Complete the Wizard. Kiểm tra cấu hình bản xuất bản của bạn và nhấp vào Finish để tạo bản xuất bản mới.

    Selecting wizard actions and completing the wizard

Trong cửa sổ Creating Publication , bạn có thể theo dõi tiến trình tạo bản xuất bản mới. Chờ một lát và bạn sẽ thấy trạng thái thành công nếu mọi thứ đã được thực hiện chính xác.

Creating the publication

Bản phát hành hiện đã được tạo và bạn có thể xem bản phát hành trong Object Explorer bằng cách truy cập Replication > Local Publications.

The publication is created

Cấu hình người đăng ký

Như bạn đã biết, sao chép MS SQL Server có thể là sao chép kéo hoặc đẩy. Nếu bạn cấu hình sao chép đẩy, bạn nên cấu hình người đăng ký để chạy các tác nhân trên máy chủ cơ sở dữ liệu chính (trong trường hợp này là MSSQL01). Nếu bạn cấu hình sao chép kiểu pull, máy nhận (Subscriber) phải được cấu hình để chạy các tác vụ (agents) trên máy thứ hai (MSSQL02), tức là máy mà bản sao cơ sở dữ liệu sẽ được tạo ra.

Hãy cấu hình sao chép kiểu push và tạo một đăng ký mới trên máy chủ MS SQL Server đầu tiên (MSSQL01MSSQLSERVER1) nơi cơ sở dữ liệu master được lưu trữ.

Trong Object Explorer, truy cập Replication, nhấp chuột phải vào Local Subscriptions và trong menu ngữ cảnh, chọn New Subscriptions. Creating a new subscription

Trình hướng dẫn đăng ký mới của sẽ mở ra.

  1. Publication. Chọn bản phát hành mà bạn muốn tạo đăng ký mới. Trong ví dụ của chúng ta, tên của Nhà xuất bản là MSSQL01MSSQLSERVER1 và tên bản phát hành (đã được tạo trước đó) là AdvWorks_Pub . Nhấp vào Tiếp theo tại mỗi bước trong trình hướng dẫn để tiếp tục.
  2. Distribution Agent Location. Chọn loại sao chép bằng cách chọn đăng ký đẩy (push subscription) hoặc đăng ký kéo (pull subscription). Trong ví dụ của chúng ta, chúng ta muốn tất cả các tác nhân chạy trên phía máy chủ nguồn, do đó, tùy chọn đầu tiên được chọn để tạo đăng ký đẩy. Điều này cho phép bạn quản lý sao chép MS SQL Server một cách tập trung.

    Selecting the publisher and distribution agent location

  3. Subscribers. Theo mặc định, máy chủ mà bạn chạy trình hướng dẫn (MSSQL01MSSQLSERVER1 trong trường hợp này) được hiển thị là Người đăng ký, và cơ sở dữ liệu đăng ký chưa được định nghĩa. Hãy thêm một người đăng ký mới và chọn cơ sở dữ liệu đăng ký nằm trên máy chủ cơ sở dữ liệu thứ hai (MSSQL01MSSQLSERVER2). Nhấp vào Add Subscriber và, trong menu ngữ cảnh, chọn Add SQL Server Subscriber.
    • Trong cửa sổ bật lên, nhập thông tin đăng nhập cho phiên bản MSSQL Server thứ hai (MSSQL01MSSQLSERVER2 trong trường hợp này) và nhấp vào Connect.

      Adding MS SQL Server subscriber

    • Chọn hộp kiểm của máy chủ thứ hai nơi bản sao cơ sở dữ liệu của bạn sẽ được lưu trữ (MSSQL02MSSQLSERVER2) và trong menu thả xuống Subscription Database , chọn một cơ sở dữ liệu mới hoặc một cơ sở dữ liệu hiện có được khôi phục từ bản sao lưu để sử dụng làm bản sao cơ sở dữ liệu.

      Trong ví dụ này, cơ sở dữ liệu AdventureWorks2016r đã được tạo trên máy chủ thứ hai bằng cách khôi phục cơ sở dữ liệu chính (nguồn) AdventureWorks2016 từ bản sao lưu để bắt đầu quá trình sao chép. Quá trình sao chép được khởi động bằng cách chỉ sao chép dữ liệu mới chứ không sao chép toàn bộ cơ sở dữ liệu sau khi bắt đầu quá trình sao chép. Do đó, AdventureWorks2016r được chọn làm cơ sở dữ liệu đăng ký trong ví dụ hiện tại.

      Selecting a subscriber and a subscription database

  4. Distribution Agent Security. Nhấp vào nút có ba chấm (), và chọn người dùng cùng các tùy chọn bảo mật khác cho Distribution Agent.

    Trong cửa sổ Distribution Agent Security mở ra, thiết lập Distribution Agent chạy trên máy chủ MSSQL01 dưới tài khoản người dùng mssql . Nhập mật khẩu cho người dùng Windows mssql . Chọn Connect to the Distributor by impersonating the process account và chọn Connect to the Subscriber by impersonating the process account. Nhấp vào OK để lưu cài đặt.

    Distribution Agent security settings

    Bây giờ các thuộc tính đăng ký của bạn đã được thiết lập.

    Distribution Agent security settings are configured

  5. Synchronization Schedule. Chọn Agent nằm trên Distributor để Chạy liên tục cho Subscriber hiện tại.
  6. Initialize Subscriptions. Chọn hộp kiểm Initialize và trong menu thả xuống, chọn Immediately để thiết lập thời điểm khởi tạo đăng ký. Bạn cũng có thể chọn tùy chọn Tối ưu hóa bộ nhớ nếu cần.

    Synchronization schedule options and initialize subscription options

  7. Wizard Actions. Chọn hộp kiểm phía trên để tạo (các) đăng ký ở cuối trình hướng dẫn.
  8. Complete the Wizard. Bạn có thể kiểm tra cài đặt đăng ký và nhấp vào Finish để tạo đăng ký.

    Selecting subscription wizard actions and completing the wizard

  9. Chờ cho đến khi đăng ký được tạo. Nếu bạn thấy trạng thái Success , điều đó có nghĩa là đăng ký đã được tạo thành công.

    The progress of creating subscriptions and the action status

  10. Sau khi cấu hình sao chép trong SQL Server, ba tác vụ sẽ được hiển thị trong Object Explorer, và bạn có thể xem chúng bằng cách truy cập SQL Server Agent > Jobs.

    MS SQL Server Agent jobs are created for MS SQL Server replication

Hoàn tất cấu hình sao chép

Sau khi đã cấu hình Distributor, Publisher và Subscriber, bạn có thể kiểm tra trạng thái sao chép của MS SQL Server.

  1. Trên máy chủ đầu tiên (MSSQL01MSSQLSERVER1), khởi chạy trình giám sát sao chép để xem trạng thái sao chép của MS SQL Server. Trong SQL Server Management Studio, chọn phiên bản MS SQL Server của bạn (MSSQLSERVER1), truy cập Replication, nhấp chuột phải vào Local Publications và trong menu ngữ cảnh, chọn Launch Replication Monitor.

    Launching the Replication Monitor to check MS SQL Server replication status

  2. Trong trường hợp của chúng ta, có lỗi Log Reader Agent . Để xem chi tiết lỗi, hãy chọn cơ sở dữ liệu nguồn (Publisher) trong khung bên trái, chọn tab Agents trong khung bên phải và nhấp đúp vào tên lỗi.

    The error status of the Log Reader Agent

  3. Trong cửa sổ mở ra, bạn có thể xem lịch sử tác nhân và thông báo lỗi. Các thông báo lỗi là:
    • Quá trình không thể thực thi sp_replcmds trên MSSQL01MSSQLSERVER1. Nguồn: MSSQl_REPL. Số lỗi: MSSQL_REPL20011).
    • Không thể thực thi với tư cách chủ thể cơ sở dữ liệu vì chủ thể “dbo” không tồn tại, loại chủ thể này không thể được giả mạo, hoặc bạn không có quyền. (Nguồn: MSSQLServer, Số lỗi: 15517).

    Viewing the Log Reader Agent history to fix errors

    Thông báo lỗi thứ hai cho thấy thiếu một số loại quyền nào đó. Hãy khắc phục lỗi này.

  4. Tạo một truy vấn mới trong MS SQL Management Studio và thực thi truy vấn này. Trong cửa sổ chính, nhấp vào nút New Query .
  5. Trong phần truy vấn SQL của cửa sổ chính, nhập truy vấn sau:

    USE AdventureWorks2016

    GO

    EXEC sp_changedbowner 'sa'

    GO

    Nhấp vào nút Execute .

    Viewing Snapshot Agent Status to run database replication in SQL Server

    Lệnh đã được thực thi thành công.

  6. Tiếp theo, truy cập MSSQL01MSSQLSERVER1 > Replication > Local Publications > [AdventureWorks2016]: AdvWorks_Pub. Nhấp chuột phải vào tên bản phát hành và trong menu ngữ cảnh, chọn Xem trạng thái Trình quản lý ảnh chụp nhanh . Bạn có thể nhấp vào Action > Refresh để làm mới trạng thái và Reinitialize All Subscriptions để áp dụng bản sao cho từng người đăng ký.

    Bây giờ mọi thứ đã được giải quyết, không có lỗi nào được hiển thị và sao chép MS SQL Server sẽ hoạt động.

    The running status of the subscription

Kiểm tra cách thức hoạt động của sao chép

Hãy xem sao chép MS SQL Server hoạt động như thế nào. Xem nội dung của một bảng trong cơ sở dữ liệu AdventureWorks2016 được lưu trữ trên máy chủ MS SQL đầu tiên ( MSSQL01MSQLSERVER1 ). Trong ví dụ này, chúng ta sẽ chọn tất cả dữ liệu từ bảng Person.AddressType . Để thực hiện điều này, hãy thực thi truy vấn:

USE AdventureWorks2016;

GO

SELECT *

FROM Person.AddressType

;

Kết quả của việc thực thi truy vấn được hiển thị trong ảnh chụp màn hình bên dưới:

Viewing the content of the table of the master database

Thực thi một truy vấn tương tự trên máy chủ thứ hai để hiển thị tất cả dữ liệu của bảng Person.AddressType thuộc cơ sở dữ liệu AdventureWorks2016r được lưu trữ trên MSSQL02MSSQLSERVER2.

USE AdventureWorks2016r;

GO

SELECT *

FROM Person.AddressType

;

Nếu so sánh các ảnh chụp màn hình ở trên và dưới, nội dung của bảng Person.AddressType là giống hệt nhau trên cả hai cơ sở dữ liệu (cơ sở dữ liệu nguồn trên máy chủ đầu tiên và cơ sở dữ liệu đích là bản sao cơ sở dữ liệu trên máy chủ thứ hai).

Viewing the content of the table of the second database that will be used as a database replica

Hãy xóa một hàng trong bảng PersonAddressType từ cơ sở dữ liệu AdventureWorks2016 (nguồn) trên máy chủ đầu tiên (MSSQL01MSSQLSERVER1). Chạy truy vấn để xóa một hàng chứa ‘Billing’ trong tên và hiển thị nội dung của bảng sau đó:

DELETE FROM Person.AddressType WHERE Name='Billing';

SELECT * FROM Person.AddressType;

Deleting the line in the table of the master database

Như bạn có thể thấy, hàng đầu tiên có AddressTypeID 1 và tên ‘Billing’ đã bị xóa khỏi bảng Person.AddressType trong cơ sở dữ liệu AdventureWorks2016 trên máy MSSQL01 .

Sao chép giao dịch đang chạy. Hãy kiểm tra nội dung của bảng `Person.AddressType` ( ) trong cơ sở dữ liệu `AdventureWorks2016r` ( ) trên máy `MSSQL02` ( ). Thực thi lại một truy vấn tương tự như trên để xem nội dung của bảng:

USE AdventureWorks2016r;

GO

SELECT *

FROM Person.AddressType

;

Do quá trình sao chép, dòng đầu tiên cũng đã bị xóa khỏi bảng `Person.AddressType` ( ) trong cơ sở dữ liệu phụ đóng vai trò là bản sao cơ sở dữ liệu ( AdventureWorks2016r ). Bạn có thể xem kết quả trong ảnh chụp màn hình bên dưới.

The first line is deleted from the table in the database replica

Sao chép cơ sở dữ liệu trong SQL Server đang hoạt động bình thường.

Kết luận

Có bốn loại sao chép MS SQL Server — sao chép bản chụp nhanh, sao chép giao dịch, sao chép ngang hàng và sao chép hợp nhất. Vì sao chép giao dịch được sử dụng rộng rãi, chúng tôi đã cấu hình loại sao chép MS SQL Server này trong bài viết blog này. Distributor, Publisher và Subscriber phải được cấu hình để sao chép cơ sở dữ liệu hoạt động. Subscriber có thể được cấu hình trên máy chủ nguồn (sao chép đẩy) và máy chủ đích (sao chép kéo).

Tuy nhiên, bạn nên xem xét sử dụng cả sao chép và sao lưu cơ sở dữ liệu MS SQL để tăng cơ hội thành công phục hồi dữ liệu cơ sở dữ liệu.

Hãy thử NAKIVO Backup & Replication

Hãy thử NAKIVO Backup & Replication

Đăng ký dùng thử miễn phí để khám phá toàn bộ các tính năng bảo vệ dữ liệu của giải pháp. Dùng thử miễn phí trong 15 ngày. Không có bất kỳ giới hạn nào về tính năng hay dung lượng. Không cần thẻ tín dụng.

People also read