Làm cách nào để kiểm soát thứ tự các máy chủ được liệt kê trong hộp thoại kết nối SSMS?


11

Dự án hiện tại của tôi liên quan đến rất nhiều xáo trộn cơ sở dữ liệu khi chúng tôi nâng cấp từ SQL 2008 -> 2012, lặp lại phần cứng, lặp lại.

Một phiền toái nhỏ là hộp thoại kết nối trong SSMS xáo trộn lại thứ tự máy chủ để đặt gần đây nhất lên hàng đầu. Cho rằng vào bất kỳ ngày cụ thể nào tôi đang kết nối với 6-10 máy chủ DB và muốn nhanh chóng tìm thấy một máy chủ cụ thể trong danh sách, hành vi này gây trở ngại nhiều hơn là giúp đỡ.

Có cách nào để vô hiệu hóa hành vi này, để các máy chủ được liệt kê theo thứ tự bảng chữ cái hoặc theo thứ tự chúng được thêm vào ... hoặc bất cứ điều gì không thay đổi mỗi khi tôi kết nối với máy chủ không?

Chặn rằng, có một cách hoàn toàn khác để quản lý tốt hơn việc kết nối với một máy chủ cụ thể từ danh sách / trang trại của họ không?

Tôi đang sử dụng SSMS cho SQL 2012 (mặc dù tôi cũng tò mò về các giải pháp năm 2008).

Câu trả lời:


6

Sử dụng Máy chủ đã đăng ký hoặc thiết lập Máy chủ quản lý trung tâm (CMS). Tôi khuyên bạn nên sau nếu bạn có thể dành thời gian (nhỏ) để thiết lập cơ sở hạ tầng vì nó sẽ cho phép mọi người xem cùng một danh sách máy chủ, thay vì chỉ bạn (Máy chủ đã đăng ký được lưu trữ trong sổ đăng ký). "Hạn chế" duy nhất với CMS là bạn phải sử dụng Xác thực Windows vì mật khẩu không được lưu vào đĩa.

Cả hai tính năng này cho phép bạn duy trì một danh sách các máy chủ được sắp xếp / nhóm và quản lý các máy chủ theo nhóm. Điều này rất mạnh mẽ vì Quản lý dựa trên chính sách được tích hợp chặt chẽ với GUI.

Điều này hoạt động với tất cả các phiên bản máy chủ - Tôi chạy SSMS 2012 và quản lý máy chủ 2005-2012. Một máy chủ CMS có thể được thiết lập trên phiên bản Express, vì vậy việc cấp phép không phải là vấn đề đáng lo ngại; tuy nhiên, tôi khuyên bạn nên sao lưu cơ sở dữ liệu hệ thống để danh sách máy chủ có thể phục hồi được.


Hạn chế duy nhất mà chúng tôi gặp phải trước đây là (sửa tôi nếu tôi sai) CMS không thể là thành viên của nhóm của chính nó ... vì vậy bạn cần một ví dụ bổ sung chỉ để trở thành một CMS, đúng không? Làm thế nào để bạn giải quyết vấn đề này / làm cho nó hữu ích? ... hoặc bạn chỉ ăn có một ví dụ bổ sung ở đâu đó? Thêm một mục nữa: hầu hết chúng ta làm việc từ xa, không phải lúc nào cũng kết nối với tên miền, điều này sẽ hoạt động như thế nào khi khởi chạy SSMS để phát triển cục bộ, độ trễ, không ảnh hưởng?
Nick Craver

@Nick: Có, tôi khuyên bạn nên thiết lập một phiên bản mới chỉ dành cho CMS. Bằng cách này, nó được tách ra khỏi cơ sở hạ tầng SQL thực tế. Đó là lý do tại sao tôi chạm vào việc cấp phép trong câu trả lời của mình và lưu ý rằng sẽ cần thêm một chút nỗ lực để thiết lập.
Jon Seigel

@Nick: Tôi cần biết thêm về cơ sở hạ tầng được thiết lập - một cái gì đó không có ý nghĩa. Bạn không kết nối trực tiếp từ máy gia đình của mình với các máy chủ SQL sản xuất, phải không (tôi cho là không)? Nếu bạn cần bao gồm các máy chủ cục bộ, hãy sử dụng Máy chủ đã đăng ký cho phần đó vì danh sách được lưu trữ cục bộ.
Jon Seigel

Ồ vâng, chúng tôi làm :) Đây là máy dev của tôi, vì vậy tôi đã kết nối với tất cả các máy chủ SQL trong cơ sở hạ tầng SE từ đây (nhưng đôi khi không, làm dev cục bộ chứ không phải trên VPN ... đặc biệt là trên máy tính xách tay). Cấp phép không phải là một vấn đề lớn, nhưng trường hợp hoàn toàn riêng biệt (và nơi giữ nó) là một chút không xác định ... không chắc chắn chúng ta sẽ đẩy máy chủ nào vào đó. Mối quan tâm của tôi là khi SSMS không thể truy cập CMS, có thời gian chờ nào khi bạn mở SSMS không?
Nick Craver

@Nick: Vâng, nó dễ dàng hơn nhiều khi mọi thứ được ảo hóa. :) Chúng tôi giữ cho chúng tôi trên một VM quản lý. Một tùy chọn khác là sử dụng phiên bản dành cho Nhà phát triển thay vì Express, cung cấp cho bạn Tác nhân SQL để cho bạn biết nếu có gì đó nổ tung. Không, không có thời gian chờ khi mở SSMS. Bạn chỉ phải chờ khi bạn cố gắng mở rộng nút CMS trong tab Máy chủ đã đăng ký (dự kiến).
Jon Seigel

4

Bạn không thể kiểm soát thứ tự này trừ khi bạn xâm nhập vào SqlStudio.bin hoặc xóa các mục nhập và thêm lại chúng theo thứ tự bạn muốn. Cách giải quyết bao gồm:

Lưu ý rằng thứ tự sẽ bị rối ngay khi bạn kết nối với máy chủ không ở vị trí đầu tiên, vì đây thực sự là danh sách MRU (nơi kết nối gần đây nhất được liệt kê đầu tiên).

Bạn có thể xem thêm chi tiết trong các câu hỏi SO này:

Và bạn có thể thấy lỗi mà tôi đã khởi tạo khả năng sử dụng phím xóa:

Và các lỗi khác đã xuất hiện như một kết quả:


1
+1. Tôi không biết bạn có thể đánh del bằng chuột trong SSMS. Đó là giá trị trọng lượng của nó bằng vàng.
Thomas Stringer

1

Bạn thực sự không cần phải hack bất cứ điều gì, theo như tôi đã giải quyết vấn đề này trong SSMSBoost bổ trợ SSMS của tôi - bạn có thể tải xuống và sử dụng miễn phí. Bạn chỉ cần xác định danh sách các kết nối ưa thích của mình trong cài đặt (xem hình) và sau đó điều này sẽ có sẵn dưới dạng thanh công cụ thả xuống, do đó, ngay cả việc chuyển đổi giữa các máy chủ chỉ mất một cú nhấp chuột, vì bạn sẽ chuyển đổi giữa các cơ sở dữ liệu trong danh sách cơ sở dữ liệu gốc thả xuống

Bây giờ một số hình ảnh:

Đối thoại cài đặt: nhập mô tả hình ảnh ở đây

Nếu bạn nhìn vào các tùy chọn khác, bạn cũng sẽ tìm thấy "Cảnh báo DB quan trọng" - tùy chọn này có thể hữu ích cho bạn, khi bạn chuyển đổi giữa DB mới và DB cũ, máy chủ thử nghiệm và máy chủ thực trong khi làm việc với dự án của bạn. Bạn có thể định cấu hình Thông báo, sẽ được hiển thị dưới dạng BIG Tooltip tại vị trí được chỉ định trên màn hình khi bạn kết nối với cơ sở dữ liệu "quan trọng", do đó bạn sẽ nhận thấy rằng bạn đang làm việc trên môi trường THỰC SỰ hoặc Kiểm tra.

Hình ảnh tiếp theo hiển thị nội dung thả xuống trên thanh công cụ, nơi bạn thấy các kết nối ưa thích của mình được liệt kê ở trên và bên dưới tất cả các cơ sở dữ liệu từ máy chủ hiện tại (cùng danh sách như trong danh sách cơ sở dữ liệu gốc thả xuống)

nhập mô tả hình ảnh ở đây

Theo như tôi làm việc vĩnh viễn về các cải tiến, bạn có thể viết cho tôi các đề xuất của bạn, để chúng tôi sẽ làm cho bổ trợ tốt hơn nữa.


Cảm ơn đã theo dõi tôi trên Twitter - Mặc dù vậy, tôi chỉ đăng ký tài khoản đó để khóa tên. Điều đó nói rằng, tôi đang trong quá trình thiết lập một blog sẽ có một tài khoản Twitter dành riêng và bạn có thể theo dõi nếu bạn muốn khi nó được phát hành (Tôi sẽ nhắn tin cho bạn ở đây với các chi tiết). Cảm ơn.
Jon Seigel

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.