Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL Server

High Availability - Khả năng sẵn sàng của MS SQL Server

High Availability (HA) là giải pháp / quy trình / công nghệ để đảm bảo ứng dụng / cơ sở dữ liệu có thể truy cập 24/7 trong mọi điều kiện, dù dự định hay bất ngờ.

Về cơ bản, có 5 tùy chọn để thiết lập khả năng sẵn sàng cơ sở dữ liệu trong MS SQL Server.

  1. Replication (Sao chép)
  2. Log Shipping (Gửi nhật ký)
  3. Mirroring (Gương)
  4. Clustering (Cụm)
  5. AlwaysON Availability Groups (Nhóm sẵn sàng AlwaysON)

Replication (Sao chép)

Dữ liệu gốc sẽ được sao chép đến đích thông qua tác vụ sao chép (agent/job), sử dụng công nghệ cấp đối tượng. Một số thuật ngữ cần biết:

  • Publisher (Nhà phát hành) là máy chủ nguồn.
  • Distributor (Nhà phân phối) là tùy chọn, lưu trữ dữ liệu được sao chép đến Subscriber (Người đăng ký).
  • Subscriber là máy chủ đích.
  • Log Shipping (Gửi nhật ký)

    Dữ liệu nguồn được sao chép đến đích thông qua tác vụ sao lưu Transaction Log, sử dụng công nghệ cấp cơ sở dữ liệu. Một số thuật ngữ:

    1. Primary Server (Máy chủ chính) là máy chủ nguồn.
    2. Secondary Server (Máy chủ phụ) là máy chủ đích.
    3. Monitoring Server (Máy chủ giám sát) là tùy chọn, giám sát trạng thái Log Shipping.

    Mirroring (Gương)

    Dữ liệu chính được sao chép đến máy phụ qua các giao dịch mạng với sự giúp đỡ của endpoint và số cổng kết nối, sử dụng công nghệ cấp cơ sở dữ liệu. Một số thuật ngữ:

    1. Principal Server (Máy chủ chính) là máy chủ nguồn.
    2. Mirror Server (Máy chủ gương) là máy chủ đích.
    3. Witness Server (Máy chủ chứng nhân) là tùy chọn, dùng cho giải pháp chuyển đổi tự động.

    Clustering (Cụm)

    Dữ liệu được lưu trữ ở vị trí chung, được sử dụng bởi cả máy chủ chính và phụ, sử dụng công nghệ cấp instance. Bạn cần thiết lập Windows Clustering trên bộ nhớ chung này. Một số thuật ngữ:

    1. Active Node (Nút hoạt động) là nơi SQL Services chạy.
    2. Passive Node (Nút thụ động) là nơi SQL Services không chạy.

    AlwaysON Availability Groups

    Dữ liệu chính sẽ được chuyển đến máy phụ qua các giao dịch, sử dụng công nghệ cấp nhóm cơ sở dữ liệu. Cài đặt Windows Clustering không cần bộ nhớ chung. Một số thuật ngữ:

    1. Primary Replica (Replica chính) là máy chủ nguồn.
    2. Secondary Replica (Replica phụ) là máy chủ đích.

    Các bước cấu hình High Availability cho Mirroring và Log Shipping

    Dưới đây là các bước cấu hình HA (Mirroring và Log Shipping) trừ Clustering, AlwaysON Availability Groups và Replication.

    Bước 1 - Lấy bản sao lưu đầy đủ (Full backup) và bản sao lưu T-log của cơ sở dữ liệu gốc.

    Ví dụ:

    Để cấu hình Mirroring/Log Shipping cho cơ sở dữ liệu TestDB trên TESTINSTANCE làm máy chủ SQL Server chính và DEVINSTANCE làm máy chủ phụ, sử dụng truy vấn sau để lấy bản sao lưu đầy đủ và T-log trên máy chủ nguồn (TESTINSTANCE).

    Kết nối đến SQL Server TESTINSTANCE và mở truy vấn mới, viết mã dưới đây và thực thi như hình.

    BACKUP DATABASE TestDB TO DISK = 'D:\testdb_full.bak'
    GO
    BACKUP LOG TestDB TO DISK = 'D:\testdb_log.trn'

    High Availability - Khả năng sẵn sàng của MS SQL Server

    Truy vấn lấy bản sao lưu

    Bước 2 - Sao chép file sao lưu đến máy chủ đích.

    Trong trường hợp này chúng ta chỉ có một máy chủ vật lý và hai phiên bản SQL Server Instance, nên không cần sao chép. Nhưng nếu hai bản sao SQL Server Instance nằm trên hai máy chủ vật lý khác nhau, hãy sao chép hai file sau đến vị trí trên máy chủ phụ, nơi DEVINSTANCE được cài đặt.

    High Availability - Khả năng sẵn sàng của MS SQL Server

    Sao chép file backup đến máy chủ đích

    Bước 3 - Khôi phục cơ sở dữ liệu với file sao lưu trên máy chủ đích bằng cách chọn NORECOVERY.

    Ví dụ.

    Kết nối đến SQL Server DEVINSTANCE và mở New Query. Viết mã sau để khôi phục cơ sở dữ liệu với tên TestDB, giống với tên cơ sở dữ liệu gốc. Bạn có thể dùng tên khác cho cấu hình Log Shipping. Sử dụng tùy chọn NORECOVERY để khôi phục.

    RESTORE DATABASE TestDB FROM DISK = 'D:\TestDB_full.bak'
    WITH MOVE 'TestDB' TO 'D:\DATA\TestDB_DR.mdf',
    MOVE 'TestDB_log' TO 'D:\DATA\TestDB_log_DR.ldf',
    NORECOVERY
    GO
    RESTORE DATABASE TestDB FROM DISK = 'D:\TestDB_log.trn' WITH NORECOVERY

    High Availability - Khả năng sẵn sàng của MS SQL Server

    Khôi phục cơ sở dữ liệu với file sao lưu

    Làm mới thư mục cơ sở dữ liệu trên máy chủ DEVINSTANCE để thấy rằng cơ sở dữ liệu đã được khôi phục TestDB với trạng thái restoring như dưới đây.

    High Availability - Khả năng sẵn sàng của MS SQL Server

    Trạng thái khôi phục cơ sở dữ liệu

    Bước 4 - Cấu hình HA (Log Shipping / Mirroring) như dưới đây.

    Ví dụ:

    Chuột phải vào cơ sở dữ liệu SQL Server TestDB trên TESTINSTANCE (máy chủ gốc) và nhấn Properties. Màn hình bên dưới sẽ xuất hiện.

    High Availability - Khả năng sẵn sàng của MS SQL Server

    Cấu hình Log Shipping / Mirroring

    Bước 5 - Chọn Mirroring hoặc Transaction Log Shipping theo nhu cầu và làm theo các bước do hệ thống cung cấp để hoàn tất cấu hình.