Luôn luôn sẵn sàng chuyển đổi dự phòng tự động của nhóm


10

Chơi với thiết lập AG Tôi có WSFC và được cấu hình với hai nút trong một nhóm khả dụng có tên là DevClusterOnline. Cả hai nút (chính DEV-AWEB5, DEV-AWEB6) đều đang chạy Windows Server 2008 R2.

Nếu tôi kiểm tra sức khỏe của AG tôi sẽ nhận được điều này:

Nhóm sẵn có Mô tả sức khỏe

Chạy truy vấn bên dưới sẽ trả về tập kết quả này: Cam kết đồng bộ và thiết lập chuyển đổi dự phòng tự động

select
    ar.replica_server_name,
    availability_group_name = ag.name,
    ar.availability_mode_desc,
    ar.failover_mode_desc
from sys.availability_replicas ar
inner join sys.availability_groups ag
on ar.group_id = ag.group_id
order by availability_group_name, replica_server_name;

Nếu tôi ngắt kết nối DEV-AWEB5, tôi không thể kết nối với Trình nghe nhóm (DevListener), nhưng tôi có thể ping nó và nó sẽ phản hồi lại ping của tôi. Bản sao - DEV-AWEB6 chuyển sang trạng thái GIẢI QUYẾT và DB của tôi không thể truy cập được. Tuy nhiên, tôi có thể vào thủ công Studio quản lý và đặt Failover thành DEV-AWEB6 và sau đó tôi gắn lại và chạy lại và DevListener sẽ một lần nữa chấp nhận kết nối.

Xem xét rằng những sự thật này xác nhận rằng chuyển đổi dự phòng thực sự hoạt động, rằng tôi đã đồng bộ hóa cam kết và chuyển đổi dự phòng tự động được cấu hình, tôi không biết điều gì xảy ra nếu trục trặc trong thiết lập của tôi.

Khi tôi ngắt kết nối DEV-AWEB5, tôi hy vọng rằng bản sao của mình sẽ giữ kết nối và do đó, DevListener cũng vậy. Tôi hy vọng rằng chuyển đổi dự phòng tự động sẽ cho phép tôi kết nối với AG Listener một cách trong suốt. Từ góc độ người dùng cuối, sử dụng một hệ thống Web, không có gì đáng chú ý là một trong các máy chủ DB bị hỏng.

Tôi bị mắc kẹt ở đây, bất cứ ai có thể xin vui lòng cho tôi biết những gì tôi đang làm sai?


1
Mô hình đại biểu của bạn trông như thế nào? Đây có phải là một đa số nút đơn giản? Nếu vậy, đó có thể là vấn đề của bạn. Từ technet.microsoft.com/en-us/l Library / cc731739.aspx , mô hình đại biểu đó chỉ có thể duy trì sự mất (một nửa số nút trong cụm) -1. Vì vậy, nếu bạn có một cụm hai nút với số đại biểu nút đa số, bạn có thể duy trì 0 lỗi nút.
Ben Thul

2
@BenThul Nếu cụm bị mất đại biểu thì OP sẽ không thể chuyển đổi thủ công.
Thomas Stringer

Câu trả lời:


6

Nếu tôi ngắt kết nối DEV-AWEB5

Xác định "ngắt kết nối", nếu bạn muốn. Tôi đoán là bạn đã giữ hộp lên nhưng đã gỡ SQL Server xuống.

Tôi không thể kết nối với Trình nghe nhóm (DevListener), nhưng tôi có thể ping nó và nó sẽ phản hồi lại ping của tôi

Đó là bởi vì người nghe chỉ là một tên mạng ảo (VNN) trong nhóm tài nguyên cụm WSFC cho nhóm khả dụng được đại diện. Nút DEV_AWEB5 của bạn vẫn sở hữu nhóm tài nguyên cụm, nhưng đó chỉ là tài nguyên cụm AG rất có thể đang ở trạng thái không thành công. VNN vẫn phải trực tuyến (hành vi dự kiến). Nó chỉ đơn giản là trỏ đến bất kỳ nút nào đang sở hữu nhóm tài nguyên đó (trong trường hợp này là DEV-AWEB5). Trên thực tế, nếu bạn đã bật tính năng từ xa PowerShell và bạn đã chạy như sau:

Invoke-Command -ComputerName "YourListenerName" -ScriptBlock { $env:computername }

Tương tự, nếu bạn có thể RDP thành DEV-AWEB5 (miễn là bạn có khả năng và khả năng truy cập, v.v.) thì bạn có thể RDP sử dụng tên người nghe ( mstsc /v:YourListenerName). Nó chỉ là một VNN.

Sự trở lại của đó sẽ là tên máy tính của nút sở hữu của bạn.

Theo tất cả các triệu chứng của bạn, tôi sẵn sàng đặt cược rằng bạn đã đạt đến ngưỡng chuyển đổi dự phòng của mình. Ngưỡng chuyển đổi xác định số lần cụm sẽ cố gắng chuyển đổi dự phòng nhóm tài nguyên của bạn trong một khoảng thời gian được chỉ định. Mặc định của các giá trị này dự phòng tối đa n - 1 (trong đó n là số lượng nút) trong khoảng thời gian 6 giờ . Bạn có thể thấy điều đó thông qua lệnh WSFC PowerShell sau đây:

Get-ClusterGroup -Name "YourAgName" |
    Select-Object Name, FailoverThreshold, FailoverPeriod

Điều đó chỉ cung cấp cho bạn các cài đặt (tất nhiên bạn có thể sửa đổi nếu bạn chọn).

Cách tốt nhất để chứng minh rằng đây là trường hợp của bạn, bạn sẽ cần tạo nhật ký cụm (nhật ký sự kiện hệ thống chỉ đi vào chi tiết cho đến khi "thất bại", hoặc đại loại như thế).

Get-ClusterLog -Node "YourClusterNode" -TimeSpan <amount_of_minutes_since_failure>

Theo mặc định, điều đó sẽ được đưa vào thư mục "C: \ Windows \ Cluster \ báo cáo" và tệp được gọi là "Cluster.log".

Nếu bạn đã mở nhật ký cụm đó, bạn sẽ có thể tìm thấy chuỗi sau trong đó, cho biết chính xác những gì đã xảy ra và tại sao nó xảy ra:

Không thất bại đối với nhóm [YourClustergroupName] , failoverCount [# of failovers] , failover ngưỡng [failover ngưỡng value] , nodeAvailCount [số lượng nút có sẵn ].

Thông báo trên chỉ đơn giản là WSFC nói với bạn rằng nó sẽ không chuyển nhóm của bạn vì nó đã xảy ra quá nhiều (bạn đã đạt đến ngưỡng).

Lý do tại sao điều này xảy ra? Đơn giản chỉ để ngăn chặn hiệu ứng Ping-Pong của tài nguyên cụm qua lại quá thường xuyên giữa các nút.

Trong khi điều này là phổ biến để đạt các ngưỡng này trong thử nghiệm chuyển đổi dự phòng, thì trong sản xuất, nó thường sẽ chỉ ra một vấn đề cần được điều tra.


2
Cảm ơn sự giúp đỡ của bạn, tôi đã làm theo chỉ dẫn của bạn nhưng cuối cùng tôi thấy rằng đây không phải là vấn đề. Lý do tôi không thể khiến AG tự động chuyển đổi dự phòng là vì tôi đã không cấu hình chính xác các phụ thuộc WSFC. Hóa ra tôi cần thêm MSSQL làm tài nguyên cụm (Dịch vụ chung) và thêm nó dưới dạng phụ thuộc trong Trình quản lý cụm chuyển đổi dự phòng cùng với trình nghe AG. Ngoài ra, cần đánh dấu vào hộp kiểm 'Nếu khởi động lại không thành công, thất bại đối với tất cả các tài nguyên trong dịch vụ hoặc ứng dụng này'. Tôi chắc chắn rằng bạn đã có ấn tượng rằng tôi đã làm điều này rồi.
Marcus

1

Thêm MSSQL làm Tài nguyên dịch vụ chung không phải là Câu trả lời.

Điều đó sẽ đặt Trình quản lý cụm phụ trách Dịch vụ máy chủ SQL, OK, vâng, nó sẽ tự động chuyển đổi, nhưng bạn sẽ nhận thấy trong Trình quản lý cấu hình SQL Server rằng các dịch vụ của bạn hiện được đặt thành "Thủ công" cho biết Trình quản lý cụm hiện đang kiểm soát Dịch vụ máy chủ SQL của bạn.

Bạn đang đặt Trình quản lý cụm phụ trách Ứng dụng cụm NON.

Nó sẽ kết thúc trong nước mắt.

Cách tiếp cận đúng để định cấu hình chính xác các nhóm sẵn có của SQL Server theo tài liệu MS.

Và cũng đảm bảo bạn không vượt quá các Thông số dự phòng như được xác định trong Trình quản lý cụm> Vai trò> Tab chuyển đổi dự phòng.

Nếu bạn vượt quá các giới hạn này, cụm sẽ không làm hỏng tài nguyên của bạn và một lỗi sẽ được đăng lên Nhật ký sự kiện ứng dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.