Chơi xung quanh hôm nay, tôi phát hiện ra rằng tôi không thể kết nối với phiên bản có tên cục bộ của mình bằng kết nối quản trị viên chuyên dụng (còn được gọi là DAC, nhưng không phải DAC đó):
Không thể kết nối với ADMIN:PLASKETT \ SQL2012.
Đã xảy ra lỗi liên quan đến mạng hoặc một trường hợp cụ thể khi thiết lập kết nối với SQL Server. Máy chủ này không tìm thấy hoặc không thể truy cập được. Xác minh rằng tên phiên bản là chính xác và SQL Server được cấu hình để cho phép các kết nối từ xa. (nhà cung cấp:Giao diện mạng SQL, lỗi:43 - Đã xảy ra lỗi khi lấy cổng kết nối quản trị viên chuyên dụng (DAC). Đảm bảo rằng Trình duyệt SQL đang chạy hoặc kiểm tra nhật ký lỗi cho số cổng) (Microsoft SQL Server, Lỗi:-1)
Đây là cục bộ, vì vậy tất nhiên cài đặt cấp máy chủ sau đây để cho phép kết nối quản trị từ xa không có hiệu lực trong trường hợp cụ thể này:
EXEC sp_configure 'remote admin connections', 1; GO RECONFIGURE; GO
Tôi thấy rằng tôi có thể kết nối nếu tôi bật cờ theo dõi 7806, mặc dù cờ theo dõi đó dành cho SQL Server Express (như được nêu ở đây). Nhưng tôi biết vấn đề còn phải sâu hơn thế này - Microsoft không thể phá vỡ hoàn toàn tính năng này, phải không?
Nó chỉ ra rằng triệu chứng này chỉ ảnh hưởng đến các trường hợp * được đặt tên *. Tôi đã nói về vấn đề này với Jonathan Kehayias, người có một phiên bản mặc định và có thể kết nối tốt. Tuy nhiên, anh ấy không thể kết nối nếu anh ấy chỉ định rõ ràng số cổng, điều này khiến anh ấy phát hiện ra rằng TCP / IP đã bị vô hiệu hóa.
Mặc dù điều này ảnh hưởng đến các phiên bản được đặt tên của Phiên bản dành cho nhà phát triển cụ thể vì giao thức TCP / IP bị tắt theo mặc định, có những trường hợp khác mà điều này có thể gây hại cho bạn nếu bạn đã đặt tên các phiên bản và…
- bạn đã [vô tình] triển khai Phiên bản dành cho nhà phát triển sang phiên bản sản xuất (nghịch ngợm);
- bạn đã tắt TCP / IP trên bất kỳ phiên bản nào; hoặc,
- dịch vụ Trình duyệt SQL Server không chạy.
Để giải quyết vấn đề này, hãy đảm bảo rằng TCP / IP được bật thông qua Trình quản lý cấu hình máy chủ SQL> Giao thức mạng cho
Bây giờ, khi bạn có thể kết nối qua DAC, nếu bạn cố gắng kết nối trong Management Studio, bạn sẽ nhận được thông báo lỗi sau:
Thông báo lỗi này là lành tính (và tôi tin rằng đến từ kết nối IntelliSense nền). Bạn có thể thấy từ thanh trạng thái của mình rằng bạn đã được kết nối và bạn có thể xác minh kết nối của mình là kết nối DAC bằng cách loại bỏ thông báo lỗi này và chạy một truy vấn.
Trong mọi trường hợp, xác nhận rằng bạn có thể kết nối qua DAC là một bước hoàn toàn cần thiết trong kế hoạch khắc phục thảm họa của bạn. Nếu bạn không thể kết nối với DAC, bạn nên lập kế hoạch cho một hoặc cả hai hành động sau trong thời gian bảo trì tiếp theo (hoặc sớm hơn, nếu bạn có đủ khả năng khởi động lại dịch vụ):
- bật TCP / IP
- bật cờ theo dõi 7806
Trong cả hai trường hợp, hãy đảm bảo Dịch vụ Trình duyệt Máy chủ SQL đang chạy. Ngoài ra, hãy chắc chắn rằng cài đặt máy chủ để bật kết nối từ xa được bật, vì bạn không bao giờ biết mình có thể ở đâu khi cần truy cập vào một máy chủ không phản hồi.
Kendra Little đã viết một bài blog tuyệt vời về DAC vào năm ngoái. Thật thú vị khi root xung quanh và xem bạn có thể làm gì với DAC và thực sự rất vui khi biết nó ở đó, nhưng điều quan trọng là phải biết nó có thể không giúp bạn như thế nào trong trường hợp máy chủ gặp khó khăn thực sự.