High Availability - Tính sẵn sàng của MS SQL Server
High Availability (HA) là một 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 được 24/7 trong bất kì điều kiện nào, dù là có dự định trước hay bất ngờ. Về cơ bản thì có 5 lựa chọn để thiết lập tính sẵn sàng cho cơ sở dữ liệu ...
High Availability (HA) là một 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 được 24/7 trong bất kì điều kiện nào, dù là có dự định trước hay bất ngờ.
Về cơ bản thì có 5 lựa chọn để thiết lập tính sẵn sàng cho cơ sở dữ liệu trong MS SQL Server.
- Replication
- Log Shipping
- Mirroring
- Clustering
- AlwaysON Availability Groups
Replication
Dữ liệu gốc sẽ được sao chép tới điểm đích qua tác vụ sao chép (agent/job), sử dụng công nghệ ở mức độ đối tượng. Một số thuật ngữ cần biết:
Bên phát hành (Publisher) là máy chủ nguồn.
- Bên phân phối (Distributor) là tùy chọn, lưu trữ dữ liệu đã được sao chép cho bên đăng ký (Subscriber).
- Bên đăng ký (Subscriber) là máy chủ đích.
Log Shipping
Dữ liệu nguồn được sao chép tới điểm đích thông qua tác vụ sao lưu Transaction Log, sử dụng công nghệ ở mức độ cơ sở dữ liệu. Một số thuật ngữ:
- Máy chủ sơ cấp (Primary Server) là máy chủ nguồn.
- Máy chủ thứ cấp (Secondary Server) là máy chủ đích.
- Máy chủ giám sát là tùy chọn, được giám sát bằng trạng thái Log Shipping.
Mirroring
Dữ liệu sơ cấp được sao chép sang thứ cấp qua các giao dịch mạng với sự trợ giúp của các điểm kết nối hình chiếu và số cổng, sử dụng công nghệ ở cấp độ cơ sở dữ liệu. Một số thuật ngữ:
- Máy chủ gốc (Principal Server) là máy chủ nguồn.
- Máy chủ hình chiếu (Mirror Server) là máy chủ đích.
- Máy chủ chứng kiến (Witness Server) là tùy chọn, được dùng cho giải pháp chịu lỗi tự động.
Clustering
Dữ liệu được lưu trữ tại địa điểm chung, được cả máy chủ sơ cấp và thứ cấp sử dụng, dùng công nghệ ở mức bản cài (instance). Cần phải thiết lập Windows Clustering trên nơi lưu trữ chung này. Một số thuật ngữ:
- Node chủ động (Active Node) là nơi SQL Services chạy.
- Node bị động (Passive Node) là nơi SQL Services không chạy.
AlwaysON Availability Groups
Dữ liệu sơ cấp sẽ được chuyển sang thứ cấp qua các giao dịch, sử dụng công nghệ ở mức độ nhóm cơ sở dữ liệu. Thiết lập Windows Clustering không cần nơi lưu trữ chung. Một số thuật ngữ:
- Primary Replica là máy chủ nguồn.
- Secondary Replica 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) ngoại trừ Clustering, AlwaysON Availability Groups và Replication.
Bước 1 - Lấy một bản đầy đủ và một bản sao T-log của cơ sở dữ liệu gốc.
Ví dụ:
Để cấu hình Mirroring/Log Shipping cho CSDL TestDB trên TESTINSTANCE làm máy chủ SQL Server sơ cấp và DEVINSTANCE làm máy chủ thứ cấp, dùng truy vấn dưới đây để lấy sao lưu đầy đủ và T-log trên máy chủ nguồn (TESTINTANCE).
Kết nối tới SQL Server TESTINSTANCE và mở truy vấn mới, viết đoạn mã dưới đây và thực thi như trong hình.
Backup database TestDB to disk = 'D: estdb_full.bak'
GO
Backup log TestDB to disk = 'D: estdb_log.trn'
Truy vấn lấy sao lưu
Bước 2 - Sao chép tập tin sao lưu tới 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à 2 bản SQL Server Instance nên không phải sao chép. Nhưng nếu 2 bản SQL Server Instance nằm ở 2 máy chủ vật lý khác nhau thì cần sao chép 2 tập tin dưới đây tới địa điểm trên máy chủ thứ cấp, nơi cài DEVINSTANCE.
Sao chép tập tin sao lưu tới máy chủ đích
Bước 3 - Khôi phục CSDL bằng tập tin sao lưu trên máy chủ đích bằng lựa chọn norecovery.
Ví dụ.
Kết nối tới SQL Server DEVINSTANCE và mở truy vấn mới New Query. Viết đoạn mã dưới đây để khôi phục CSDL với tên TestDB, trùng với tên của CSDL gốc. Có thể dùng tên khác cho cấu hình Log Shipping. Dùng lựa chọn norecovery để khôi phục.
Restore database TestDB from disk = 'D:TestDB_full.bak'
with move 'TestDB' to 'D:DATATestDB_DR.mdf',
move 'TestDB_log' to 'D:DATATestDB_log_DR.ldf',
norecovery
GO
Restore database TestDB from disk = 'D:TestDB_log.trn' with norecovery
Khôi phục CSDL bằng tập tín aao lưu
Refresh lại thư mục CSDL trên máy chủ DEVINSTANCE để thấy CSDL đã được khôi phục TestDB với trạng thái khôi phục như trong hình dưới đây.
Trạng thái khôi phục CSDL
Bước 4 - Cấu hình HA (Log Shipping/Mirroring) như trong hình dưới đây.
Ví dụ:
Click chuột phải vào CSDL TestDB của SQL Server TESTINTANCE (máy chủ gốc) và click Properties. Màn hình dưới đây sẽ hiện ra.
Cấu hình Log Shipping/Mirroring
Bước 5 - Chọn Mirroring hoặc Transaction Log Shipping theo yêu cầu của bạn và làm theo các bước Wizard được hệ thống đưa ra để hoàn tất việc cấu hình.
Bài trước: Cách khởi động và dừng các dịch vụ trong MS SQL Server
Bài tiếp: Dịch vụ tạo báo cáo trong MS SQL Server