Vấn đề: Làm cách nào tôi có thể chạy Điều phối viên giao dịch phân tán (DTC) trên tất cả các máy chủ trong Nhóm Luôn sẵn sàng (AG)? Tôi KHÔNG cần duy trì giao dịch qua các sự kiện chuyển đổi / chuyển đổi.
Thiết lập: Tôi có Cụm chuyển đổi dự phòng Windows (WSFC) với ba máy chủ Windows 2008 R2, tất cả đều chạy SQL 2012. Hai máy chủ nằm trong một trung tâm dữ liệu và là một phần của Cụm chuyển đổi dự phòng luôn luôn (FCI), trong khi máy chủ thứ ba ở trong một trung tâm dữ liệu thứ hai. WSFC là một cụm đa mạng con. Đây là bản phác thảo của thiết lập:
Tôi đã có thể cài đặt và định cấu hình DTC để hoạt động giữa hai nút FCI vì chúng nằm trên cùng một mạng con và lưu trữ chia sẻ. Tôi đã cấu hình một vài AG và chúng đã hoạt động tốt. Ảnh chụp màn hình này cho thấy DTC được cài đặt trên FCI:
Ảnh chụp màn hình này cho thấy tôi có thể định cấu hình DTC trên một trong các nút FCI (tùy theo hoạt động nào):
Tôi muốn di chuyển một ứng dụng sử dụng DTC vào cụm này và sử dụng AG. Tôi đã đọc rằng DTC không được hỗ trợ với AGs ( Tham khảo ). Tôi chưa thể tìm cách định cấu hình DTC trên nút thứ ba trong trung tâm dữ liệu thứ hai. Khi tôi cố gắng định cấu hình DTC trên nút thứ ba, nó dường như không khả dụng, như thể hiện trong ảnh chụp màn hình này:
Trong Danh sách kiểm tra thiết lập miễn phí của Brent Ozar PDF cho các nhóm khả dụng, ông liệt kê:
Cài đặt cụm ...
29. Nếu có FCI, hãy định cấu hình DTC theo quyết định của phần Kế hoạch của bạn.
Trong các nhận xét về SQL Server 2012 Luôn sẵn sàng Nhóm sẵn sàng, Rock Brent nói rằng "... không có gì thay đổi khi AG đang hoạt động. Hãy nhớ rằng các cơ sở dữ liệu trong Nhóm sẵn có không hỗ trợ tính nhất quán giao dịch khi thất bại với bản sao khác. .. "
Điều này có vẻ như DTC có thể được sử dụng trong Nhóm sẵn có miễn là bạn hiểu rằng các giao dịch sẽ không được duy trì trong chuyển đổi AG. Tôi sẽ không cần nó để duy trì các giao dịch từ các nút FCI. Tôi sẽ chỉ cần DTC có sẵn cho ứng dụng để sử dụng trong trường hợp thảm họa thảm khốc (nơi tôi bị mất trung tâm dữ liệu chính của mình).
Làm cách nào để định cấu hình DTC trên nút thứ ba của tôi? Hoặc, đó có phải là trường hợp tôi gặp may khi sử dụng AG và một ứng dụng cần DTC không?
CẬP NHẬT: Giải pháp tôi đã giải quyết là sử dụng Log Shipping. Tuy nhiên, trong trường hợp thất bại, tôi vẫn cần DTC có sẵn trên Node3. Tôi đã phát hiện ra rằng nó trở nên khả dụng bằng cách gỡ cài đặt phiên bản DTC MSDTC-MSSQLSERVERCLU được chia sẻ giữa Node1 và Node2. Sau khi xóa, tôi có thể thiết lập và định cấu hình phiên bản LocalDTC trên Node3. Sau đó, tôi có thể cài đặt lại phiên bản MSDTC-MSSQLSERVERCLU được nhóm. Thực hiện trình tự cài đặt theo thứ tự đó dường như hoạt động. Tôi đã chạy như vậy được một lúc rồi và tôi không phát hiện ra bất kỳ ảnh hưởng xấu nào. Có vẻ như điều này cũng sẽ hoạt động để chạy Nhóm Luôn sẵn sàng. Tôi hiểu rằng các giao dịch phân tán sẽ không được bảo toàn trong chuyển đổi dự phòng AG, tôi chỉ cần các giao dịch mới hoạt động sau khi chuyển đổi dự phòng. Nhưng tôi không biết