Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Định cấu hình kết nối Nhóm khả dụng

Bây giờ Nhóm khả dụng đang trở nên phổ biến hơn, tôi nghĩ rằng tôi sẽ đề cập đến một chủ đề có thể bị bỏ qua trong quá trình lập kế hoạch và cài đặt SQL Server ban đầu trong kiểu môi trường này. Để thực sự có một cấu hình chịu được lỗi, một số suy nghĩ và lập kế hoạch phải đi vào thiết lập kết nối cơ sở dữ liệu.

Tôi sẽ không đi vào chi tiết về cách thiết lập môi trường AlwaysOn của bạn trong bài đăng này, nhưng để có thêm một số trợ giúp, tôi khuyên bạn nên xem qua bài đăng của Aaron Bertrand, "Khắc phục sự cố AlwaysOn - Đôi khi cần rất nhiều mắt". Khi môi trường của bạn được định cấu hình, bước tiếp theo trong việc cung cấp kết nối cơ sở dữ liệu là tạo Trình xử lý nhóm khả dụng bằng cách sử dụng SQL Management Studio hoặc T-SQL:

ALTER AVAILABILITY GROUP [GroupName] 
  ADD LISTENER N'ListenerName' 
  (WITH IP ((N'10.x.x.x', N'255.255.255.0')), PORT=1433);
Chuỗi kết nối trình nghe AG

Tên Mạng Ảo (VNN) của bạn được đăng ký trong DNS và luôn thuộc quyền sở hữu của phiên bản SQL Server nơi bản sao chính cư trú. Tất cả các địa chỉ IP được cung cấp trong khi định cấu hình AG Listener đều được đăng ký trong DNS dưới cùng một tên mạng ảo.

Sau khi bạn đã tạo Trình nghe AG của mình, bạn phải đảm bảo rằng khách hàng của bạn có thể kết nối. Kết nối ứng dụng của bạn hoạt động theo cùng một cách mà nó luôn có, tuy nhiên, thay vì trỏ tới một máy chủ cụ thể trong chuỗi kết nối của bạn, bạn trỏ tới AG Listener.

Người nghe AG chỉ có thể được kết nối bằng TCP và được DNS cục bộ của bạn phân giải thành danh sách địa chỉ IP và cổng TCP được ánh xạ tới VNN. Máy khách của bạn sẽ cố gắng kết nối lần lượt với từng địa chỉ IP cho đến khi có kết nối hoặc cho đến khi hết thời gian chờ kết nối. Một tham số chuỗi kết nối quan trọng cần xem xét sử dụng là MultiSubnetFailover. Nếu tham số này được đặt thành true, ứng dụng khách sẽ thử kết nối song song cho phép kết nối nhanh hơn và nếu cần thiết, ứng dụng khách chuyển dự phòng nhanh hơn:

Server=tcp:MyAgListener,1433;Database=Db1;IntegratedSecurity=SSPI; MultiSubnetFailover=True

Khi chuyển đổi dự phòng xảy ra, các kết nối máy khách được đặt lại và quyền sở hữu AG Listener sẽ chuyển sang phiên bản SQL Server đảm nhiệm vai trò bản sao chính. Điểm cuối VNN sau đó được liên kết với các địa chỉ IP mới và các cổng TCP của bản sao chính mới. Tùy thuộc vào khách hàng, kết nối lại tự động với AG sẽ xảy ra hoặc người dùng có thể phải khởi động lại ứng dụng hoặc kết nối bị ảnh hưởng theo cách thủ công.

Mục đích ứng dụng

Một trong những lý do lớn nhất để triển khai Nhóm khả dụng là cung cấp khả năng tận dụng môi trường sao lưu hoặc khôi phục thảm họa để giảm tải công việc từ môi trường sản xuất của bạn. Giờ đây, các máy chủ này có thể được sử dụng để sao lưu, phân tích, truy vấn đặc biệt và báo cáo, hoặc bất kỳ hoạt động nào khác trong đó có bản sao chỉ đọc của cơ sở dữ liệu là đủ.

Để cung cấp quyền truy cập chỉ đọc vào các bản sao phụ của bạn, tham số chuỗi kết nối ApplicationIntent được sử dụng. Danh sách định tuyến chỉ đọc tùy chọn của các điểm cuối SQL Server có thể được định cấu hình trên mỗi bản sao. Danh sách này được sử dụng để chuyển hướng các yêu cầu kết nối máy khách sử dụng tham số ApplicationIntent =ReadOnly đến bản sao thứ cấp có sẵn đầu tiên đã được định cấu hình với bộ lọc ý định ứng dụng thích hợp.

Server=tcp:MyAgListener,1433;Database=Db1;IntegratedSecurity=SSPI; MultiSubnetFailover=True;ApplicationIntent=ReadOnly;
Lọc mục đích ứng dụng

Để tạo điều kiện cho Ý định ứng dụng từ các máy khách kết nối với Nhóm khả dụng của bạn, mỗi phiên bản Máy chủ SQL trong nhóm phải được định cấu hình bằng Bộ lọc Ý định ứng dụng thích hợp. Bộ lọc xác định loại kết nối mà mỗi bản sao sẽ chấp nhận.

Một bản sao chính được định cấu hình để có các Kết nối trong Vai trò chính là “Cho phép tất cả các kết nối” sẽ chấp nhận bất kỳ kết nối nào được thực hiện thông qua AG Listener. Bản sao chính được định cấu hình là “Cho phép kết nối đọc / ghi” sẽ từ chối bất kỳ kết nối nào chỉ định “ApplicationIntent =ReadOnly.”

Khi định cấu hình các bản sao, bạn cũng phải xác định xem mỗi bản có phải là Bản phụ có thể đọc được hay không. Bản sao được định cấu hình là “Không” sẽ từ chối tất cả các kết nối. Bản sao này chỉ được sử dụng để chuyển đổi dự phòng trong tình huống khôi phục sau thảm họa. Nếu bản sao thứ cấp được định cấu hình là “Có”, tất cả các kết nối sẽ được phép, nhưng chỉ dành cho quyền truy cập đọc, ngay cả khi “ApplicationIntent =ReadOnly” không được chỉ định. Cuối cùng, nếu thiết bị phụ được định cấu hình là “Mục đích chỉ đọc”, thì chỉ những ứng dụng khách chỉ định “ApplicationIntent =ReadOnly” mới được phép kết nối.

Định tuyến chỉ đọc

Bây giờ chúng ta đã biết cách định cấu hình Mục đích ứng dụng trên các phiên bản máy chủ và tạo các chuỗi kết nối cần thiết, chúng ta phải định cấu hình định tuyến chỉ đọc Nhóm khả dụng. Khi bạn kết nối với AG Listener bằng cách sử dụng chuỗi kết nối như được định nghĩa ở trên, trình lắng nghe sẽ truy vấn phiên bản sao chính và xác định xem kết nối nên được thực hiện với chính (đọc / ghi) hay với một phụ chỉ đọc. Để thực hiện điều này, một danh sách định tuyến phải được tạo cho MỖI bản sao tính khả dụng được sử dụng nếu và khi bản sao đảm nhận vai trò chính. Thông thường, phương pháp hay nhất là bao gồm mọi URL định tuyến chỉ đọc cho mỗi bản sao phụ chỉ đọc với URL bản sao cục bộ ở cuối danh sách. Các yêu cầu kết nối mục đích đọc được chuyển đến thứ cấp có thể đọc được đầu tiên trong danh sách định tuyến, không có cân bằng tải giữa các yêu cầu thứ hai.

Trước tiên, hãy sửa đổi từng bản sao để cung cấp URL định tuyến chỉ đọc:

ALTER AVAILABILITY GROUP [Group1] MODIFY REPLICA ON N'COMPUTER01' WITH 
  (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));
 
ALTER AVAILABILITY GROUP [Group1] MODIFY REPLICA ON N'COMPUTER01' WITH 
  (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER01.mydomain.com:1433'));
 
ALTER AVAILABILITY GROUP [Group1] MODIFY REPLICA ON N'COMPUTER02' WITH 
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));
 
ALTER AVAILABILITY GROUP [Group1] MODIFY REPLICA ON N'COMPUTER02' WITH 
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER02.mydomain.com:1433'));

Thứ hai, sửa đổi từng bản sao để cung cấp danh sách định tuyến chỉ đọc sẽ được sử dụng khi bản sao đã cho ở vai trò chính:

ALTER AVAILABILITY GROUP [Group1]  MODIFY REPLICA ON N'COMPUTER01' WITH 
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER02','COMPUTER01')));
 
ALTER AVAILABILITY GROUP [Group1] MODIFY REPLICA ON N'COMPUTER02' WITH 
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER01','COMPUTER02')));

URL định tuyến phải ở dạng “TCP://:”. Để được trợ giúp xác định URL của bạn, hãy xem blog này và tập lệnh được tạo bởi Matt Neerincx.

Kết luận

Với định tuyến chỉ đọc của bạn được định cấu hình, AG Listener được tạo và các ứng dụng khách của bạn sử dụng các chuỗi kết nối chính xác, bạn sẽ có một kết nối hoàn toàn chịu được lỗi cho Nhóm khả dụng của mình. Đảm bảo bạn dành chút thời gian để kiểm tra kết nối và khả năng các ứng dụng theo dõi máy chủ của bạn khi chúng gặp sự cố.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thực tế chuyện gì đang xảy ra với Seek đó?

  2. Cơ sở dữ liệu là gì?

  3. Truy xuất XMLA để phân tích cấu trúc khối lập phương

  4. Đại số quan hệ

  5. Tạo và triển khai nhiều phiên bản cơ sở dữ liệu thông qua ảnh chụp nhanh lược đồ