Привет всем любителям системного администрирования. Появилась новая задача - создать новый SQL Server 2014 по аналогии с уже существующим таким же сервером на новой виртуальной машине. Виртуалка в домене.
Можно просто создать новый сервер Microsoft Windows Server 2012 R2, активировать, накатить на него обновления. Потом установить MSSQL 2014, пропатчить. Это займёт много времени, можно задержаться на работе и сидеть до ночи, но кто же тогда будет за нас вечером пить пиво? Ускорим процесс.
Будем решать задачу в несколько этапов.
- Склонируем виртуальную машину.
- Введём её в домен под другим именем.
- Переименуем SQL сервер.
- Почистим SQL сервер.
Клонирование VM
У нас есть образец виртуальной машины с Microsoft SQL Server 2014 на борту. Сервер в бою, на нём крутятся рабочие базы данных. Нам нужен второй такой же. Через оснастку vCenter клонируем образец, сохраняем клон под новым именем.
Указываем название новой виртуалки. Выбираем цель - кластер.
Выбираем хост, на котором будет жить новая виртуалка.
Выбираем storage.
Убеждаемся, что не стоит галка Power on virtual machine after creation. Если включить виртуалку после клонирования - возможен конфликт IP адресов с боевым сервером, который мы использовали в качестве образца.
Запускаем клонирование.
На новой виртуальной машине в настройках снимаем галку Connect At Power On.
Включаем новую виртуалку и входим на неё через Remote Console.
Новый сервер Microsoft Server 2012 R2
В свойствах сетевого адаптера меняем IP адрес сервера на новый. Если у ваших серверов адрес задаётся автоматически, то у клона уже новый MAC адрес, данная манипуляция не потребуется. Тогда привяжите к новому MAC новый IP адрес в вашем DHCP сервере.
Переименовываем сервер и выводим его из домена в рабочую группу. Имя группы не имеет значения, всё равно потом будем обратно в домен вводить.
Для вывода сервера из домена потребуется пароль локального администратора.
Перезагружаем сервер. После перезагрузки снова выполняем вход под локальным администратором.
В оснастке vCenter в свойствах виртуальной машины включаем сеть галкой Connected и не забываем вернуть обратно галку Connect At Power On.
В свойствах компьютера вводим сервер в домен. У сервера уже новое имя, новый IP адрес, есть сеть и доступ к контроллеру домена. Для ввода в домен понадобится учётная запись администратора домена.
Сервер попросит перезагрузку. После неё вы уже можете входить на сервер под своей доменной учётной записью. Внесите на сервере необходимые административные изменения, которые требуются для нового сервера. Новый сервер теперь можно увидеть в оснастке Active Directory. Переместите сервер в необходимый раздел, назначьте права, добавьте в нужные группы.
При необходимости применения групповых политик — перезагрузите сервер ещё раз. Кстати, можно заодно обновления накатить.
Теперь у нас есть новый Windows Server 2012 R2 в домене с новым IP и новым доменным именем. Честно говоря, я ожидал, что слетит активация. Однако, Windows is activated. В случае, если активация подвела - активация Windows Server 2012 R2 Standard по телефону.
Переименуем SQL сервер
Поскольку есть и другие причины для переименования SQL сервера кроме клонирования виртуальной машины, то этот раздел я оформлю как отдельную статью.
Читаем как переименовать Microsoft SQL Server 2014.
Почистим SQL сервер.
Причешем SQL сервер.
Убираем зеркалирование
Если ваш образец SQL сервера ранее был настроен в режиме зеркалирования, то это зеркалирование требуется "разобрать".
В статье Настройка зеркалирования в Microsoft SQL Server 2014 есть дополнительный раздел с описанием как разобрать зеркалирование.
Сначала отключаем mirroring для каждой базы данных, что переехала на новый SQL сервер при клонировании. Есть два способа. Через GUI правой кнопкой на базу - Tasks > Mirror...
Или запросом для каждой БД:
ALTER DATABASE [MIRROR_TEST] SET PARTNER OFF
В нашем случае образец был principal, если в качестве образца используется mirror, то потребуется дополнительно:
RESTORE DATABASE [MIRROR_TEST] WITH RECOVERY
Далее для всех баз делаем Detach. Через GUI правой кнопкой на базу - Tasks > Detach...
Разобрать всё если образцом был principal:
DROP CERTIFICATE MirrorDBCertPub
DROP USER MirrorServerUser
DROP LOGIN MirrorServerUser
-- Удалить руками сертификаты с C:\certs
DROP ENDPOINT DBMirrorEndPoint
DROP CERTIFICATE PrincipalServerCert
ALTER MASTER KEY DROP ENCRYPTION BY SERVICE MASTER KEY
DROP MASTER KEY
Разобрать всё если образцом был mirror:
DROP CERTIFICATE PrincipalDBCertPub
DROP USER PrincipalServerUser
DROP LOGIN PrincipalServerUser
-- Удалить руками сертификаты с C:\certs
DROP ENDPOINT DBMirrorEndPoint
DROP CERTIFICATE MirrorServerCert
ALTER MASTER KEY DROP ENCRYPTION BY SERVICE MASTER KEY
DROP MASTER KEY
Проверим, что ничего не зеркалируется:
SELECT DB_NAME (database_ID), mirroring_state_desc, mirroring_role_desc, mirroring_safety_level_desc, mirroring_partner_name, mirroring_witness_state_desc, mirroring_witness_name
FROM sys.database_mirroring
Удаляем руками все отцепленные ранее базы данных. По умолчанию лежат здесь:
C:\Program Files\Microsoft SQL Server\MSSQL12.DL1CSQL00\MSSQL\DATA
Должно остаться так:
Очистим Maintenance Plans
Удаляем все регламентные операции.
Настроим Database Mail
Если новый сервер должен использовать общие настройки почты, то ничего не меняем, Database Mail будет работать как на образце, с которого клонировали виртуальную машину. Если же требуется указать другие настройки - делаем.
Дополнительно
Если есть джобы — чистим их.
Линкованные сервера приводим в порядок.
Пользователи - удаляем лишних, добавляем новых. Также вносим настройки, если SQL должен запускаться под другим пользователем. Настраиваем права и группы пользователей ОС, если это требуется.