Jak kontrolować kolejność serwerów wymienionych w oknie dialogowym połączenia SSMS?

11

Mój obecny projekt wymaga wielu przetasowań bazy danych, gdy aktualizujemy z SQL 2008 -> 2012, zmieniamy zadania sprzętowe, powtarzamy.

Niewielką irytacją jest okno dialogowe połączenia w SSMS, które przetasowuje kolejność serwerów, aby umieścić najnowsze na wierzchu. Biorąc pod uwagę, że każdego konkretnego dnia łączę się z 6-10 serwerami DB i chcę szybko znaleźć konkretny na liście, takie zachowanie jest znacznie bardziej przeszkodą niż pomocą.

Czy istnieje sposób, aby wyłączyć to zachowanie, umieszczając serwery na liście alfabetycznie lub w kolejności, w jakiej zostały dodane ... lub cokolwiek , co nie zmienia się za każdym razem, gdy łączę się z serwerem?

Pomijając to, czy istnieje zupełnie inny sposób lepszego zarządzania połączeniem z określonym serwerem z ich listy / farmy?

Używam SSMS dla SQL 2012 (choć jestem również ciekawy rozwiązań 2008).

Nick Craver
źródło

Odpowiedzi:

6

Użyj zarejestrowanych serwerów lub skonfiguruj Central Management Server (CMS). Polecam to drugie, jeśli możesz poświęcić (mały) czas na skonfigurowanie infrastruktury, ponieważ pozwoli wszystkim zobaczyć tę samą listę serwerów, a nie tylko ciebie (zarejestrowane serwery są przechowywane w rejestrze). Jedyną wadą systemu CMS jest to, że musisz korzystać z uwierzytelniania systemu Windows, ponieważ hasła nie są utrwalane na dysku.

Obie te funkcje umożliwiają utrzymanie uporządkowanej / pogrupowanej listy serwerów oraz zarządzanie serwerami jako grupami. Jest to bardzo wydajne, ponieważ zarządzanie oparte na zasadach jest ściśle zintegrowane z GUI.

Działa to ze wszystkimi wersjami serwerów - uruchamiam SSMS 2012 i zarządzam serwerami 2005-2012. Serwer CMS można skonfigurować w wersji Express, więc licencjonowanie nie stanowi problemu; jednak zalecam wykonywanie kopii zapasowych bazy danych systemu, aby listę serwerów można było odzyskać.

Jon Seigel
źródło
Wadą wpadliśmy tylko na z tym wcześniej było (poprawcie mnie jeśli się mylę) CMS nie może być członkiem własnej grupy ... więc trzeba dodatkowej instancji tylko być CMS, prawda? Jak sobie z tym poradzić / czy jest to przydatne? ... czy po prostu jesz gdzieś dodatkową instancję? Jeszcze jedna rzecz: większość z nas pracuje zdalnie, nie zawsze podłączona do domeny, jak to by się zachowało podczas uruchamiania SSMS dla rozwoju lokalnego, opóźnienie, brak wpływu?
Nick Craver
@Nick: Tak, zalecam utworzenie nowej instancji tylko dla CMS. W ten sposób jest on oddzielony od faktycznej infrastruktury SQL. Właśnie dlatego w swojej odpowiedzi poruszyłem kwestię licencjonowania i zauważyłem, że skonfigurowanie zajmie trochę dodatkowego wysiłku.
Jon Seigel
@Nick: Chciałbym dowiedzieć się więcej o konfiguracji infrastruktury - coś nie ma sensu. Nie łączysz się bezpośrednio z komputera domowego z produkcyjnymi serwerami SQL, prawda (zakładam, że nie)? Jeśli potrzebujesz dołączyć serwery lokalne, użyj zarejestrowanych serwerów dla tej części, ponieważ lista jest przechowywana lokalnie.
Jon Seigel,
O tak, robimy :) To moja maszyna deweloperska, więc jestem podłączony do wszystkich serwerów SQL w infrastrukturze SE (ale czasami nie, robię lokalnego programisty, a nie VPN ... szczególnie na laptopie). Licencjonowanie nie jest poważnym problemem, ale zupełnie osobna instancja (i gdzie ją zachować) jest trochę nieznana ... nie jestem pewien, na którym serwerze to sami powinniśmy włączyć. Moje obawy dotyczą tego, kiedy SSMS nie może dotrzeć do CMS, czy jest jakiś czas oczekiwania po otwarciu SSMS?
Nick Craver
@Nick: Tak, jest znacznie łatwiej, gdy wszystko jest zwirtualizowane. :) Trzymamy naszą na maszynie wirtualnej zarządzania. Inną opcją jest użycie instancji Edycji programisty zamiast Express, co daje SQL Agentowi informację, czy coś się nie powiedzie. Nie, nie ma limitu czasu podczas otwierania SSMS. Czekanie pojawia się tylko przy próbie rozwinięcia węzła CMS na karcie Zarejestrowane serwery (należy się spodziewać).
Jon Seigel
4

Nie możesz kontrolować tej kolejności, chyba że włamiesz się do SqlStudio.bin lub usuniesz wpisy i ponownie dodasz je w żądanej kolejności. Obejścia obejmują:

Zauważ, że kolejność zostanie pomieszana, gdy tylko połączysz się z serwerem, który nie jest na pierwszej pozycji, ponieważ tak naprawdę jest to lista MRU (gdzie najnowsze połączenie jest wymienione jako pierwsze).

Możesz zobaczyć więcej szczegółów w tych SO pytania:

I możesz zobaczyć zgłoszony przeze mnie błąd, który zainicjował możliwość użycia klawisza usuwania:

I inne błędy, które pojawiły się w wyniku:

Aaron Bertrand
źródło
1
+1. Nie wiedziałem, że możesz uderzyć del za pomocą myszy w SSMS. To jest warte swojej wagi w złocie.
Thomas Stringer
1

Właściwie nie musisz nic hackować, o ile rozwiązałem ten problem w moim dodatku SSMS SSMSBoost (.com) - możesz go pobrać i używać za darmo. Po prostu definiujesz listę preferowanych połączeń w ustawieniach (patrz zdjęcie), a następnie będzie ona dostępna jako rozwijane na pasku narzędzi, więc nawet przełączanie między serwerami zajmuje tylko jedno kliknięcie, tak jak przełączasz się między bazami danych na natywnej liście baz danych upuścić.

Teraz kilka zdjęć:

Dialog ustawień: wprowadź opis zdjęcia tutaj

Jeśli spojrzysz na inne opcje, znajdziesz również „Ważny alert DB” - ten może być dla Ciebie przydatny, o ile przełączasz się między nowymi i starymi DB, testujesz i serwer rzeczywisty podczas pracy nad projektem. Możesz skonfigurować Alert, który będzie wyświetlany jako BIG Tooltip w określonej pozycji na ekranie, o ile tylko połączysz się z „ważną” bazą danych, dzięki czemu zauważysz, że pracujesz w środowisku REAL lub Test.

Następny obrazek pokazuje zawartość rozwijanego paska narzędzi, na którym widać preferowane połączenia wymienione powyżej, a poniżej wszystkie bazy danych z bieżącego serwera (ta sama lista, co w rozwijanej liście rodzimych baz danych)

wprowadź opis zdjęcia tutaj

W zakresie, w jakim stale pracuję nad ulepszeniami, możesz napisać mi swoje propozycje, aby ulepszyć dodatek.

Andrei Rantsevich
źródło
Dziękujemy za śledzenie mnie na Twitterze - zarejestrowałem to konto tylko, aby zablokować tę nazwę. To powiedziawszy, jestem w trakcie zakładania bloga, który będzie miał dedykowane konto na Twitterze, i możesz to śledzić, jeśli chcesz, kiedy zostanie wydany (wyślemy ci tutaj szczegółowe informacje). Dzięki.
Jon Seigel,
Zgodnie z obietnicą twitter.com/VoluntaryDBA
Jon Seigel