Многим администраторам базы данных SQL Server приходится иметь дело со средой SQL Server Management Studio (SSMS) чаще, чем с собственной средой. Удивительно, как много специалистов, с которыми мне приходилось общаться, не задействуют компоненты SSMS, которые я широко применяю в повседневной практике, или используют не весь их потенциал. Я уже рассматривал этот вопрос в своих публикациях об обозревателе шаблонов (в частности, в статье «Открытие обозревателя шаблонов в среде SSMS», опубликованной в этом же номере журнала). А теперь пришло время уделить внимание другому компоненту — зарегистрированным серверам.
Окно зарегистрированных серверов
Окно Registered Servers («Зарегистрированные серверы») открывается из меню SSMS в разделе View («Вид») или с помощью комбинации клавиш Cntl + Alt + G (см. экран 1). Оно имеет такой вид до того, как в него вносятся какие-либо изменения, рассматриваемые в данной статье.
Экран 1. Окно Registered Servers |
Давайте посмотрим, как изначально выглядит окно. Наверху находятся четыре значка, под которыми расположены три узла. Значок развертывания «+» отсутствует, если ранее данный компонент не использовался. Поэтому на него можно не обращать внимания. Узел Local Server Groups («Группы локальных серверов») и узлы Central Management Servers («Центральные серверы управления») становятся расширяемыми по мере добавления элементов, как будет показано ниже.
Это окно, как все остальные в SSMS, может быть зафиксировано в постоянно открытом состоянии или автоматически скрываться, в зависимости от значка булавки в правом верхнем углу. Окно можно закрыть в любое время, щелкнув значок X. Важно помнить, что в результате вам не грозит потеря зарегистрированных серверов. Добавленные элементы сохраняются и в случае закрытия приложения. Эти настройки будут потеряны только в том случае, если будет удалена среда SSMS или произойдут иные катастрофические события (форматирование диска, переустановка операционной системы и т. д.).
Четыре значка в верхней части окна зарегистрированных серверов обозначают различные типы зарегистрированных серверов, которые можно хранить и использовать в среде Management Studio.
1. Database Engine («Ядро базы данных»)
Это зарегистрированные серверы, которые используются в повседневной работе администраторами баз данных и в некоторой степени инженерами и разработчиками баз данных. Часто это наиболее посещаемый из четырех видов серверов, которые могут быть зарегистрированы. Именно здесь выполняется основная работа внутри SSMS.
2. Analysis Services
Это зарегистрированные серверы Analysis Services, к которым часто обращаются разработчики средств бизнес-аналитики SQL Server. Обратите внимание, что эти зарегистрированные серверы полностью независимы от серверов в категории Database Engine. То же самое относится к остальным категориям, которые будут рассмотрены в следующих статьях серии.
3. Reporting Services
Как следует из названия, это зарегистрированные экземпляры службы отчетов SQL Server Reporting Services (SSRS). Можно предположить, что они будут перечислены как в разделе Database Engine, так и здесь. Элементы в Database Services обеспечат администрирование базового экземпляра Microsoft SQL Server, на котором размещается SSRS, а при размещении в этой категории вам предоставляются варианты для работы напрямую с компонентами SSRS.
4. Integration Services
Последняя категория — серверы SQL Server Integration Services (SSIS). По примеру предыдущих категорий, эти элементы относятся к аспектам серверов SQL Server в вашей среде, связанным со службами Integration Services. Возможности элементов категории ориентированы на бизнес-аналитику этих экземпляров, а не основные административные функции SQL Server для узлов, на которых они размещены.
Внимание на Database Engine
В этой статье мы остановимся на самой популярной из четырех категорий — Database Engine.
Зарегистрированные серверы не представляют ценности без добавления серверов, поэтому сначала нужно пройти этот процесс. Заполнение данного окна — именно то, чего можно ожидать от графического интерфейса пользователя, спроектированного Microsoft. Добавление экземпляров, перемещение экземпляров, удаление экземпляров и категоризация — основные операции заполнения и поддержания целостности зарегистрированных серверов в среде SSMS. Ниже каждая из них рассматривается в подробностях.
Добавление экземпляра
Подключаясь к экземпляру SQL Server в обозревателе объектов или через создание нового запроса в SSMS, вы проходите тот же процесс регистрации экземпляра в окне зарегистрированных серверов. Единственное различие состоит в том, что информация о регистрации сохраняется для повторного использования. Важно отметить следующее: одно лишь то, что вы создали элемент Registered Server, не означает, что открывается подключение к этому экземпляру. Вы просто сохраняете критерии, благодаря которым процесс подключения к экземпляру в обозревателе объектов или новый запрос значительно ускоряются.
Сначала щелкните Local Server Group («Локальная группа серверов») и выберите New Server Registration («Регистрация нового сервера») из всплывающего меню. Откроется окно приветствия, похоже на то, которое используется при подключении к экземпляру SQL Server в обозревателе объектов или в окне запроса (см. экран 2).
Экран 2. Окно регистрации нового сервера |
В первую очередь нужно выбрать экземпляр SQL Server, который предстоит зарегистрировать. Если вы намерены использовать функции раскрывающегося меню в графическом интерфейсе, то придется ждать, пока рабочая станция запрашивает сеть обо всех узлах, объявивших себя экземплярами SQL Server. Здесь я вручную ввожу имя сервера.
Обратите внимание: если вы намерены подключиться к определенному порту на экземпляре SQL, но не к порту по умолчанию 1433, то применяйте следующий синтаксис (не используйте символы < и >):
<имя sql server>, <номер порта>
Вы также можете зарегистрировать сервер с его IP-адресом, а не записью DNS или CNAME.
Кроме того, не забывайте имя экземпляра при подключении к именованному экземпляру:
<имя sql server>\< имя экземпляра>
Выбор метода проверки подлинности достаточно прост, у вас есть только два варианта:
- проверка подлинности Windows;
- проверка подлинности SQL Server.
Если выбрать SQL Server Authentication, то диалоговое окно слегка изменится и будет содержать текстовые поля для имени пользователя и пароля. Заметьте, что, когда сделан соответствующий выбор, устанавливается флажок Remember password («Запомнить пароль»). Как правило, я использую проверку подлинности Windows при любой возможности. Однако в ходе тестирования задействованы зарегистрированные серверы, подключаемые с другими правами, нежели у моего сетевого имени пользователя, и его широчайшие привилегии sysadmin. Это удобно, если нужно увидеть, каким образом конечный пользователь сможет взаимодействовать с базой данных и в каких случаях его права ограничивают возможности работы в среде. Также имейте в виду, что один сервер можно зарегистрировать много раз в окне Registered Servers. Обратите внимание, что при использовании проверки подлинности SQL Server в режиме с запоминанием пароля появляется уязвимое место, так как комбинация имени пользователя и пароля сохраняется в файле на вашей рабочей системе, путь к которому — общий для всех установок SQL Server Management Studio. По этой причине я почти никогда не устанавливаю флажок Remember password.
У вас может возникнуть вопрос, в чем же различие между значениями Server name («Имя сервера») и Registered server name («Имя зарегистрированного сервера») в этом диалоговом окне.
Эта функция позволяет различать способ подключения к экземпляру SQL Server и обычный метод обращения к SQL Server. Вспомните свою повседневную работу с SQL Server. Возможно, у вас есть сервер с труднозапоминаемым именем экземпляра, таким как DSC8675309 a\jennyjenny, который ведет широковещательную передачу через порт 5543. Однако вы и все сотрудники компании называют его просто «компьютер бухгалтерии», Accounting Box. Если вы введете данные в диалоговом окне, как показано на экране 3, после сохранения вы увидите соответствующую запись в окне Registered Servers в среде SSMS (см. экран 4).
Экран 3. Указание конкретного сервера |
Экран 4. Соответствующая запись в окне Registered Servers |
Трудное для запоминания длинное имя экземпляра, которое даже нельзя полностью показать в диалоговом окне New Server Registration («Регистрация нового сервера»), теперь представлено в гораздо более понятном и узнаваемом формате в окне Registered Servers.
Возможно, вы заметили, что здесь уже присутствует элемент Local Instance («Локальный экземпляр»). Я заранее заполнил окно, чтобы вы могли увидеть разницу между сервером, ведущим широковещательную передачу, и сервером, который этого не делает. Это не означает, что вы установили подключение; это означает только то, что сервер работает и ведет широковещательную передачу.
Что можно сказать о другой вкладке в диалоговом окне New Server Registration — Connection Properties («Свойства подключения»)? Подробности можно узнать, щелкнув правой кнопкой элемент Account Box и выбрав Properties («Свойства») из доступных вариантов (см. экран 5).
Экран 5. Вкладка свойств соединения сервера |
Эта вкладка позволяет подключаться к определенной базе данных после использования окна зарегистрированных серверов, чтобы открыть экземпляр в обозревателе объектов или в новом окне запроса. Кроме того, можно назначить сетевой протокол, размер пакета, тайм-аут как для подключений, так и для выполнения запросов, а также параметры зашифрованного сеанса для многократного использования. Обычно я не использую эти настройки, однако применяю один пока не упомянутый параметр, Use custom color («Использовать особый цвет»).
Этот параметр полезен как дополнительная предосторожность против ошибки, которой всегда боятся специалисты по обработке данных, — подключения к производственной системе вместо тестовой и запуска вредного запроса (например, TRUNCATE TABLE). Если назначить серверу особый цвет, то при каждом подключении к этому экземпляру в среде SSMS в окне запроса будет отображаться наглядное указание, что вы подключаетесь к производственному (я выбрал красный цвет), промежуточному, или учебному (особый цвет — синий), или тестовому (особый цвет — зеленый) экземпляру. Меняется цвет полоски в нижней части окна запроса, а также вкладки для нового запроса. Конечно, вы можете выбрать наиболее удобный для себя вариант, а в качестве примера я привожу свой локальный экземпляр, окрашенный желтым (см. экран 6).
Экран 6. Цветовое оформление для каждого экземпляра базы данных |
Прежде чем мы перейдем к категоризации, перемещению и удалению зарегистрированных серверов, рассмотрим основную причину, по которой я всегда использую эту функцию в среде SSMS. Если щелкнуть на записи правой кнопкой мыши, то на экране появится всплывающее окно, как на экране 7.
Экран 7. Контекстное меню записи о сервере |
Наиболее широко распространенные функции из применяемых мною (скорее всего, вы также ими воспользуетесь) — первые две: New Query («Создать запрос») и Object Explorer («Обозреватель объектов»). С помощью первой из них открывается окно создания запроса с двумя параметрами сеанса (если сервер доступен и имеется соответствующее имя пользователя и учетные данные на экземпляре SQL Server). С помощью второй функции в обозревателе объектов открывается экземпляр SQL Server с этими учетными данными (с теми же оговорками).
Параметр View SQL Server Log («Просмотр журнала SQL Server») позволяет запустить журнал SQL Server для указанного экземпляра, не открывая экземпляр в обозревателе объектов, а затем перейти по развернутому древовидному представлению к Management («Управление») и далее, чтобы запустить его. Обычно вы обращаетесь к журналу SQL Server по важным поводам, и таким образом это удается сделать быстрее.
Кроме того, имеются параметры управления на основе политик Policy Based Management (PBM) для оценки и импорта политик PBM и — если имеются соответствующие права — можно управлять службами SQL Server и открыть диспетчер настройки на локальном экземпляре.
Мы уже рассматривали, что происходит при выборе пункта Properties, поэтому на секунду обратимся к роковой функции Delete («Удалить»). Не бойтесь: выбор этой функции не приведет к удалению SQL Server или какого-либо из компонентов. Удаляется только запись о Registered Servers из среды SSMS. Ее можно вернуть в любой момент, и никаких мер не предпринимается против экземпляра SQL Server, представленного в этой записи.
Категоризация экземпляров
На мой взгляд, эта функция не менее ценна, чем возможность быстро подключиться к экземпляру в обозревателе объектов или окне создания запроса, не запоминая неудобные имена серверов и пароли. Представьте себе среду с несколькими экземплярами SQL Server, разнесенными по пространствам TEST и PROD. В качестве примеров используются Accounting («Бухгалтерия») и Manufacturing («Производство»). Начните, щелкнув правой кнопкой мыши Local Server Group («Локальная группа серверов»), как делали ранее, когда выбирали New Server Registration («Регистрация нового сервера») из доступных вариантов во всплывающем меню. В отличие от New Server Registration, на этот раз мы выберем из доступных вариантов New Server Group («Создание группы серверов»). В результате появляется диалоговое окно, показанное на экране 8.
Экран 8. Создание группы серверов |
Используя заявленный выше сценарий, предположим, что в наших средах имеются следующие серверы и нужно разделить их между группами PROD и TEST:
PROD
- Accounting Department (Бухгалтерия)
— Accounting01
— Accounting02
- Manufacturing Department (Производственные подразделения)
— Manufacturing01
— Manufacturing02
TEST
- TestSQL01
- DevSQL02
Я могу пройти процесс создания четырех групп серверов. Каждая создаваемая группа помещается в узел, на котором вы щелкнули правой кнопкой мыши, выбирая New Server Group.
- Щелкните правой кнопкой мыши Local Server Groups — Имя группы: PROD.
- Щелкните правой кнопкой мыши Local Server Groups — Имя группы: TEST.
- Щелкните правой кнопкой мыши PROD — Имя группы: Accounting Department.
- Щелкните правой кнопкой мыши PROD — Имя группы: Manufacturing Department.
Теперь можно щелкнуть правой кнопкой мыши на имени группы в Registered Servers и выбрать New Server Registration, а затем пройти по этапам процесса, описанного ранее, чтобы добавить к группам экземпляр SQL. После того как я выполню процедуру для шести описанных выше экземпляров SQL, вид окна Registered Servers будет примерно таким, как показано на экране 9.
Экран 9. Группирование серверов |
В первую очередь это удобный и понятный для меня визуальный метод классификации экземпляров SQL Server в моей среде, содержащей сотни экземпляров. Кроме того, один сервер можно отнести к разным категориям. Например, я могу добавить другую группу в Local Server Groups, именуемую Accounting, а затем зарегистрировать в ней все серверы бухгалтерии: производственные, тестовые, промежуточные и т. д. Допускается многоуровневое вложение экземпляров; их можно регистрировать несколько раз в различных структурах безопасности.
Теперь несколько слов о том, почему мне так нравятся параметры группирования. Можно применить один запрос ко всем экземплярам, зарегистрированным в одной группе!
Например, я применяю изменение ко всем серверам SQL группы Accounting (см. пример выше). Можно щелкнуть правой кнопкой мыши на имени группы (Accounting) и выбрать New query («Создать запрос») из доступных функций. Открывается одно окно запроса, связанное со всеми серверами в этой группе. Затем можно применить запрос ко всем серверам одновременно. Команда выдается одновременно, а не последовательно, поэтому ее выполнение не подвержено сбоям для всех или последующих экземпляров в случае отказа первого из них (например, из-за несоответствия схем).
Для иллюстрации я выполнил следующую команду на всех экземплярах, находящихся в группе серверов TEST:
SELECT COUNT ([name]) AS database_ count FROM sys.databases;
По экрану 10 можно судить о соответствующих результатах:
- В строке состояния в нижней части экрана будет показано имя группы серверов.
- Также показано (в усеченном виде из-за размеров изображения) число активно подключенных экземпляров. Если сервер в группе недоступен, то он подключается к остальным серверам в группе и просто показывает X/# подключенных серверов.
- Результаты возвращаются без определенного порядка, но при этом указывается имя соответствующего зарегистрированного сервера. Помните, что это не обязательно Server Name. Если вы хотите получить имя сервера, то можно изменить запрос, введя в него @@SERVERNAME в инструкции SELECT.
Экран 10. Применение изменений к нескольким серверам |
Как я уже говорил, мне нравится эта функция. Я постоянно использую ее, особенно при передаче новых сценариев на многочисленные серверы или при одновременной установке нескольких новых серверов SQL Server. Это невероятно эффективное средство экономии времени.
Перемещение экземпляра
Предположим, что вы хотите разместить компьютер Manufacturing02 в категории TEST, потому что в действительности это не производственный сервер. Для этого достаточно щелкнуть мышью на записи о сервере и выбрать пункт Tasks («Задачи»), а затем Move («Переместить») из списка доступных функций. Затем можно выбрать узел, на который следует выполнить перемещение (в данном примере TEST), и нажать кнопку OK. Хотелось бы, чтобы в следующей версии SSMS это действие можно было выполнить просто перетаскиванием. Но пока процесс выглядит таким образом.
Итак, в этой статье я показал, как заполнить и использовать базовый набор функций окна зарегистрированных серверов в среде SQL Server Management Studio. В следующих статьях серии речь пойдет о том, как делиться своими записями с коллегами в группе, а также будут рассмотрены вопросы, относящиеся к центральным серверам управления и способам их заполнения, методы работы с иными типами зарегистрированных серверов и другие темы.