Cấu Hình SQL Always On Availability Groups | Rules Are Made For ...

SQL Always On Availability Groups được Microsoft giới thiệu lần đầu tiên trong bản SQL Server 2012 Enterprise như một chức năng nâng cao nhằm tăng độ sẳn sàng cho hệ thống Database mà không cần sử dụng các Shared Storage từ SAN hay NAS như mô hình SQL Cluster truyền thống (Failover Clustering). Dù vẫn còn một số vấn đề ở phiên bản đầu tiên nhưng theo đánh giá cá nhân thì SQL Always On Availability Groups thật sự hiệu quả trong việc tăng độ sẳn sàng, đơn giản trong vận hành và quản trị Database nên hoàn toàn có thể thay thế SQL Cluster truyền thống. 

Trong bài viết [MS] Cấu hình SQL Always On Availability Groups, tôi sẽ giới thiệu cách cấu hình SQL Always On Availability Groups trên SQL 2016 với 3 Server sau:

NO NAME ROLES NIC 1 NIC 2 *
1 UAT-ADSRV Domain Controller 172.30.81.222
2 UAT-SRV01 SQL Cluster Node 1 172.30.81.223 10.30.0.10
3 UAT-SRV02 SQL Cluster Node 2 172.30.81.223 10.30.0.11

Lưu ý:

○ NIC 2 * – Không bắt buộc nhưng trong thực tế, giữa các SQL Cluster Node nên trao đổi thông tin bằng một card mạng riêng và bài hướng dẫn này sẽ sử dụng card NIC 2 để các SQL Cluster Nodes thực hiện việc trao đổi thông tin.

○ Sau đây, SQL Always On Availability Groups sẽ được gọi tắt là SQL AOAG

THỰC HIỆN

I. Chuẩn bị

Cài đặt SQL Server 2016 phiên bản Enterprise hoặc Evaluation trên các SQL Cluster Nodes: UAT-SRV01 và UAT-SRV02. Có thể tham khảo hướng dẫn cài đặt SQL Server 2016 tại đây

Tạo một Database tên UATDB (thay đổi tên theo nhu cầu) để đưa vào AOAG trên UAT-SRV01 (có thể tạo trên bất kỳ SQL Node nào sẽ thuộc SQL AOAG mà UATDB sẽ được đưa vào)

Tạo 02 Share Folder trên UAT-ADSRV với tên SQLCluster01 để làm witness cho Windows Clustering và AG-UATDB trên UAT-ADSRV để chứa các bản full backup, log phục vụ cho việc đồng bộ database, log giữa các SQL Node trong AOAG với Share Permissions giống nhau như sau:

○ Sharing Permissions cho Everyone – Full Controll

○ Security Permissions cho các SQL Cluster Node – Write

II. Cài đặt Windows Clustering trên các Cluster Nodes

Trong cửa sổ Server Manager, nhấn Add roles and features

 photo 1_zpskgt2lrin.jpg

Trong mục Before you begin của cửa sổ Add Roles and Features Wizard, nhấn Next để lướt qua giới thiệu. Giữ nguyên mặc định Role-based or feature-based installation của mục Select Installation Type rồi nhấn Next để cài đặt Role hoặc Feature mới

 photo 3_zpshy4bg0tu.jpg

Trong mục Select destination server, chọn Server cần cài đặt Role hoặc Feature rồi nhấn Next

 photo 4_zpsrzx1s6ib.jpg

Trong mục Select server roles, nhấn Next để bỏ qua vì không cần cài đặt Roles.

 photo 5_zps8zq1p4az.jpg

Trong mục Select features, chọn Failover Clustering để cài đặt Windows Failover Clustering

 photo 6_zpsseobpoll.jpg

Khi chọn Failover Clustering, hệ thống thông báo các feature khác cần được cài đặt để đảm bảo hoạt động cho Failover Cluster, nhấn Add Features để xác nhận

 photo 7_zpsqkdqsw6s.jpg

Sau khi xác nhận cài đặt các Feature liên quan, Failover Clustering đã được chọn, nhấn Next để tiếp tục

 photo 9_zpsowydbxrm.jpg

Trong mục Confirm installation selections, nhấn Install để bắt đầu cài đặt và khi quá trình cài đặt hoàn tất, nhấn Close để kết thúc

 photo 10_zpsjvrgvhiy.jpg

Lưu ý: Thực hiện cài đặt tương tự trên tất cả SQL Cluster Nodes. Trong bài viết này sẽ cài đặt trên UAT-SRV01 và UAT-SRV02

III. Tạo Windows Failover Cluster

Sau khi cài đặt Failover Clustering hoàn tất, mở Failover Cluster Manager từ một Cluster Node và trỏ phải lên Failover Cluster Manager rồi chọn Create Cluster để một Failover Cluster mới.

 photo 1_zpsuaptcsjq.jpg

Trong mục Before You Begin của cửa sổ Create Cluster Wizard, nhấn Next để lướt qua phần giới thiệu. Trong mục Select Servers, thêm tên các Server cần đưa vào Cluster vào mục Selected Servers rồi nhấn Next

 photo 3_zpstxp1uu28.jpg

Trong mục Validation Warning, giữ mặt định “Yes. When I click Next,…” rồi nhấn Next để yêu cầu thực hiện việc kiểm tra điều kiện của các Node trước khi đưa vào Cluster

 photo 4_zpsohdkhjq8.jpg

Trong mục Before You Begin của cửa sổ Validate a Configuration Wizard, nhấn Next để lướt qua phần giới thiệu. Trong mục Testing Options, chọn Run all test (recommended) rồi nhấn Next để yêu cầu kiểm tra toàn bộ điều kiện

 photo 6_zpslaxzlaf6.jpg

Trong mục Confirmation, nhấn Next để xác nhận và bắt đầu quá trình kiểm tra

 photo 7_zpseorwnqml.jpg

Nếu sau khi thực hiện việc kiểm tra điều kiện mà kết quả trả về là “…The configuration appears to be suitable for clustering…” là các Cluster Node đã đảm bảo điều kiện để đưa vào Cluster, chọn Create the cluster now using the validated nodes rồi nhấn Finish để hệ thống tạo một Cluster với các Cluster Node đã kiểm tra.

 photo 8_zpsejgtz5c5.jpg

Trong mục Access Point for Administering the Cluster, đặt tên cho Cluster trong phần Cluster Name và gán 01 địa chỉ IP cho Cluster rồi nhấn Next

 photo 9_zpszunvp56r.jpg

Trong mục Confirmation, kiểm tra lại các thông tin cấu hình cho Cluster và nhấn Next để xác nhận các thông tin đã chính xác

 photo 10_zpsfi6poo6g.jpg

Khi Cluster khởi tạo hoàn tất, nhấn Finish để kết thúc

 photo 11_zpsnwt5flu5.jpg

Lưu ý:

○ Việc kiểm tra điều kiện các Cluster Node sẽ hoàn tất với một số cảnh báo về Storage (Disk) do mô hình Cluster đang thực hiện không bắt buộc sử dụng các đĩa từ SAN hay NAS nên có thể bỏ qua các cảnh báo về Storage.

○ Việc tạo Windows Cluster chỉ cần thực hiện 1 lần trên bất kỳ Node nào sẽ thuộc Cluster.

IV. Cấu hình Witness cho Failover Cluster

Trỏ phải lên SQL Cluster vừa tạo (SQLCluster01), nhấn More Actions rồi chọn Configure Cluster Quorum Settings…

 photo 1_zps9ybodbvv.jpg

Trong mục Before You Begin của cửa sổ Configure Cluster Quorum Wizard, nhấn Next để lướt qua phần giới thiệu. Trong mục Select Quorum Configuration Option, chọn Select the quorum witness rồi nhấn Next để tự chỉ định Witness cho Failover Cluster SQLCluster01

 photo 3_zpsefcwggid.jpg

Trong mục Selct Quorum Witness, chọn Configure a file share witness rồi nhấn Next để chọn Witness là một Share Folder

 photo 4_zpsjkcb4iwg.jpg

Trong mục Configure File Share Witness, nhập đường dẫn của Share folder được chọn làm Witness vào mục File Share Path rồi nhấn Next. Trong bài hướng dẫn này sẽ sử dụng Share Folder SQLCluster01 đã tạo ở bước chuẩn bị

 photo 5_zpsfvjst8mp.jpg

Trong mục Confirmation, kiểm tra các thông tin của Witness và nhấn Next để xác nhận thông tin

 photo 6_zpsrvxeh0gk.jpg

Khi Witness được thêm thành công, nhấn Finish để kết thúc.

 photo 7_zpsp8xiuuk6.jpg

V. Bặt chức năng Always On Availability Groups trên các SQL Cluster Nodes

Trong SQL Server Configuration Manager, trỏ phải lên SQL Server (MSSQLSERVER) rồi chọn Properties

 photo 1_zpslrggemne.jpg

Trong thẻ AlwaysOn High Availability, đánh dấu check vào ô Enable AlwaysOn Availability Groups rồi nhấn OK

 photo 2_zpsmmlx9qvw.jpg

Cửa sổ Warning thông báo các thay đổi chỉ có hiệu lực sau khi Services được khởi động lại, nhấn OK để đóng thông báo

 photo 3_zps0veery5g.jpg

Trong SQL Server Configuration Manager, trỏ phải lên SQL Server (MSSQLSERVER) rồi chọn Restart để khởi động lại dịch vụ của SQL

 photo 4_zps5xtdozkc.jpg

Lưu ý:

○ Enable chức năng AlwaysOn Availability Groups trên tất cả SQL Nodes.

○ Phải restart lại service SQL Server trước khi thưc hiện bước tiếp theo.

VI. Chuẩn bị đưa Database vào Availability Group

Điều kiện để đưa một Database vào SQL AOAG là Database đã được thực hiện Full Backup trước đó. Để thực hiện Full Backup cho database UATDB trong SQL Management Studio, trỏ phải lên Database UATDB chọn Back Up… trong mục Tasks

 photo 3_zps6rpimhql.jpg

Trong cửa sổ Backup Up Database, chọn Full tại trường Backup type rồi nhấn OK

 photo 4_zpsdsibin8i.jpg

Khi backup hoàn tất, nhấn OK

 photo 5_zpsbneomwsi.jpg

VI. Tạo SQL Always On Availability Group

Trong SQL Management Studio, trỏ phải lên AlwaysOn High Availability rồi chọn New Availability Group Wizard để tạo SQL AOAG mới

 photo 1_zpsrm82ok36.jpg

Trong mục Introduction của cửa sổ New Availability Group, nhấn Next để lướt qua các thông tin giới thiệu. Đặt tên cho Availability Group trong trường Availability group name, đánh dấu check vào Database Level Heath Detection của mục Sepcify Options rồi nhấn Next để tiếp tục

 photo 3_zpsifurmkjh.jpg

Trong mục Select Databases, chọn Database đáp ứng yêu cầu và cần đưa vào Availability Group (UATDB) rồi nhấn Next

 photo 4_zpsi44bi6me.jpg

Trong thẻ Replicas của mục Specify Replicas, nhấn Add Replica… để thêm các SQL Node cần đưa vào SQL AOAG đang tạo.

 photo 5_zps9pqsypkt.jpg

Trong cửa sổ Connect to Server, nhận tên SQL Node và các thông tin đăng nhập rồi nhấn Connect để kết nối. Trong bài hướng dẫn [MSSQL] Configure SQL Always On Availability Groups, user UAT\Administrator được chỉ định là SQL Administrator trên các SQL Nodes của AOAG và đang login vào UAT-SRV01 nên không cần nhập lại username và password.

 photo 6_zpsf4ftb9gb.jpg

Đánh chọn Automatic FailoverSynchronous Commit trong mục (1)(2) cho tất cả các SQL Nodes để cho phép các SQL Nodes trong AOAG đồng bộ database theo cơ chế Synchronous và chuyển trạng thái Readable Secondary sang Yes để cho phép các các truy vấn đọc dữ liệu trên Database có thể kết nối đến các Secondary Nodes.

 photo 7_zpsqlc4th0v.jpg

Trong thẻ Listener của mục Specify Replicas, đặt tên cho Listener của AOAG đang tạo trong trường Listener DNS Name, chỉ định port để kết nối trong trường Port, chọn Static IP trong trường Network Mode rồi nhấn Add để gán IP cố định cho Listener.

 photo 8_zpst67gozvl.jpg

Chọn Subnet cần gán Static IP trong trường Subnet và nhập IP cần gán vào trường IPv4 Address rồi nhấn OK để tiếp tục

 photo 9_zpsuc8qmycu.jpg

Khi gán các thông tin cho Listener hoàn tất, nhấn Next để tiếp tục

 photo 10_zpsqzgp8vtg.jpg

Trong mục Select Data Synchronization, chọn Full database and log backup rồi nhập địa chỉ Share Folder AG-UATDB đã tạo ở bước chuẩn bị để chứa các bản Backup và Log file phục vụ cho việc đồng bộ giữa các SQL Node. Nhấn Next để tiếp tục

 photo 13_zps9nmmze8a.jpg

Trong mục Validation, khi Result của các bước đều hiển thị Success thì nhấn Next để tiếp tục

 photo 14_zpsoa9qqcg0.jpg

Trong  mục Summary, kiểm tra lại các thông số đã gán và nhấn Finish để bắt đầu quá trình tạo AOAG

 photo 15_zpsoyqu5zz8.jpg

Khi Availability Group tạo thành công, nhấn Close để kết thúc

 photo 16_zps31b4jpka.jpg

Lưu ý:

○ Một Availability Group có thể sử dụng cho nhiều Databases

○ Mặc định các SQL Nodes trong AOAG sẽ đồng bộ theo cơ chế Asynchronous và việc đồng bộ database giữ các SQL Nodes trong AOAG theo cơ chế Synchronous sẽ tăng thời gian xử lý các Transaction nên trường hợp có nhiều hơn 2 SQL Nodes, cần cân nhắc cơ chế đồng bộ cho từng SQL Node. Tham khảo thêm cơ chế Synchronous và Asynchronous tại đây

Từ khóa » Cài đặt Và Cấu Hình Failover Cluster Sql Server 2016