Tôi có một tình huống thú vị ở đây. Về cơ bản, chúng tôi đang cố gắng di chuyển một số cơ sở hạ tầng Máy chủ SQL sang phần cứng mới và một trong các hộp (cụm đơn 2 nút đơn) đang chạy 2008R2. Những cái khác là 2012 & 2014, nhưng những cái đó không thể hiện vấn đề này.
Có một ứng dụng kết nối với một máy chủ có tên là "OLD-SQL"; và giả sử IP đó là 11,22.33.44. Đây là tên của hộp SQL kế thừa chạy phiên bản mặc định, SQL 2008R2 và Windows Server 2008R2. Cài đặt / config / chuỗi / kết nối của ứng dụng vào bất cứ lúc nào không thể thay đổi.
Hộp SQL mới được thiết lập để thay thế hộp đó, được đặt tên là "NEW-SQL"; và giả sử IP của nó là 11,22.33.55. Cũng đang chạy SQL 2008R2 (cùng bản dựng SQL). HĐH là Windows Server 2012 R2 (HĐH mới hơn). Cả hai hộp thực sự là Các trường hợp được phân cụm với 2 nút (mỗi cụm chuyển đổi dự phòng kiểu cũ, không có gì lạ mắt).
Vì vậy, để hỗ trợ cho việc di chuyển, hiện tại, để thử nghiệm / mục đích QA, chúng tôi đã thực hiện như sau: 1. Thiết lập tệp Máy chủ trên máy QA của máy khách để chuyển hướng tên "OLD-SQL" sang 11,22.33.55 (mới người phục vụ). 2. Tạo Bí danh Máy chủ SQL trên máy chủ NEW-SQL (sử dụng SQL Config Mgr.), Được đặt tên là "OLD-SQL", chỉ vào chính nó , cổng 1433, giao thức TCP / IP.
Để kiểm tra, tôi thử kết nối qua SSMS; Tôi nhập "OLD-SQL" làm tên máy chủ để kết nối. Nó không thành công với lỗi "bối cảnh SSPI" khét tiếng ( https://support.microsoft.com/en-us/kb/811889 ). Điều tương tự cũng xảy ra với ứng dụng đang được thử nghiệm. Ping từ cmd-line giải quyết tốt - nó biết "OLD-SQL" phân giải thành IP mới 11,22.33.55 dựa trên tệp Máy chủ.
Bây giờ , để thực sự ném cờ lê vào mọi thứ. Tôi quay trở lại máy chủ NEW-SQL và thêm một Bí danh khác , cùng tham số nhưng được đặt tên là "OLD-SQL2". Tên này là duy nhất trong mạng miền. Tôi quay trở lại hộp của mình, thay đổi tệp Máy chủ của mình để trỏ từ tên đó sang IP (11,22.33.55) và đi đến SSMS và thử kết nối lại. NHỮNG CÔNG VIỆC NÀY!
Tôi xác minh rằng tôi đang ở "đúng máy chủ" bằng cách thực hiện SELECT @@SERVERNAME
và lo lắng, nó nói "NEW-SQL". Nhưng tất nhiên đây không phải là bí danh tôi thực sự muốn; Tôi muốn có thể đặt cho nó bí danh "OLD-SQL" và ứng dụng của tôi được chuyển hướng đến "NEW-SQL" thông qua mục nhập Máy chủ và Bí danh SQL.
Vậy tôi đang làm gì sai với bí danh đầu tiên? Có phải là tôi không thể sử dụng cùng tên với một máy chủ hiện có trên mạng, với 2008R2?
Bài đăng tương tự trên SO: /programming/6406811/alias-not-usiness-on-sql-server-2008-r2 (Không giải quyết được vấn đề)
PS: Tôi nói "với 2008R2" một cách cụ thể, bởi vì khi tôi thử cài đặt tương tự (Máy chủ, Bí danh SQL) với các hộp 2012-2014 của chúng tôi, chúng hoạt động theo cách đầu tiên rất tốt! (Tức là Bí danh trên hộp "NEW-SQL2012" có thể là "OLD-SQL2012", giống như một máy chủ hiện có và không có vấn đề gì khi kết nối hoặc bất cứ điều gì.)
PPS: Tôi đã đọc về những bí danh này giống như một thứ thuộc về khách hàng, nhưng đó là lý do tại sao tôi sử dụng thủ thuật tệp Hosts. Khi chúng tôi sẵn sàng cho việc di chuyển "thực", chúng tôi sẽ sử dụng DNS và các thủ thuật khác ngoài sự hiểu biết của tôi (đó là miền của SysEng) để chuyển hướng máy khách (ứng dụng / máy tính) sang máy chủ mới, nhưng hiện tại họ đã nói , để thử nghiệm, điều tập tin Hosts là một sự thay thế tốt.
Cập nhật : Sự khác biệt chính giữa các thiết lập "làm việc" và thiết lập "không hoạt động", bên cạnh các phiên bản SQL Server, là thực tế là phiên bản 2008R2 cũ "SQL-OLD", khi tôi kết nối bằng cách sử dụng cài đặt "nguyên sơ" ( không có bí danh hoặc host-file-redir.), sử dụng xác thực Kerberos . Khi tôi kết nối thông qua một bí danh hoặc chuyển hướng duy nhất, chẳng hạn như "OLD-SQL2", nó sẽ đăng ký dưới dạng NTLM. Và trong TẤT CẢ các phương thức kết nối làm việc KHÁC , đó cũng là NTLM. Kerberos đang làm cái quái gì vậy ??