Перейти к основному содержанию
 

Клонирование Microsoft SQL Server 2014 на новую виртуальную машину

Microsoft SQL Server

Привет всем любителям системного администрирования. Появилась новая задача - создать новый SQL Server 2014 по аналогии с уже существующим таким же сервером на новой виртуальной машине. Виртуалка в домене.

Можно просто создать новый сервер Microsoft Windows Server 2012 R2, активировать, накатить на него обновления. Потом установить MSSQL 2014, пропатчить. Это займёт много времени, можно задержаться на работе и сидеть до ночи, но кто же тогда будет за нас вечером пить пиво? Ускорим процесс.

Будем решать задачу в несколько этапов.

  1. Склонируем виртуальную машину.
  2. Введём её в домен под другим именем.
  3. Переименуем SQL сервер.
  4. Почистим SQL сервер.

Клонирование VM

У нас есть образец виртуальной машины с Microsoft SQL Server 2014 на борту. Сервер в бою, на нём крутятся рабочие базы данных. Нам нужен второй такой же. Через оснастку vCenter клонируем образец, сохраняем клон под новым именем.

clone sql

Указываем название новой виртуалки. Выбираем цель - кластер.

clone sql

Выбираем хост, на котором будет жить новая виртуалка.

clone sql

Выбираем storage.

clone sql

Убеждаемся, что не стоит галка Power on virtual machine after creation. Если включить виртуалку после клонирования - возможен конфликт IP адресов с боевым сервером, который мы использовали в качестве образца.

clone sql

Запускаем клонирование.

clone sql

На новой виртуальной машине в настройках снимаем галку Connect At Power On.

clone sql

Включаем новую виртуалку и входим на неё через Remote Console.

Новый сервер Microsoft Server 2012 R2

В свойствах сетевого адаптера меняем IP адрес сервера на новый. Если у ваших серверов адрес задаётся автоматически, то у клона уже новый MAC адрес, данная манипуляция не потребуется. Тогда привяжите к новому MAC новый IP адрес в вашем DHCP сервере.

clone sql

Переименовываем сервер и выводим его из домена в рабочую группу. Имя группы не имеет значения, всё равно потом будем обратно в домен вводить.

clone sql

Для вывода сервера из домена потребуется пароль локального администратора.

clone sql

Перезагружаем сервер. После перезагрузки снова выполняем вход под локальным администратором.

В оснастке vCenter в свойствах виртуальной машины включаем сеть галкой Connected и не забываем вернуть обратно галку Connect At Power On.

clone sql

В свойствах компьютера вводим сервер в домен. У сервера уже новое имя, новый IP адрес, есть сеть и доступ к контроллеру домена. Для ввода в домен понадобится учётная запись администратора домена.

clone sql

Сервер попросит перезагрузку. После неё вы уже можете входить на сервер под своей доменной учётной записью. Внесите на сервере необходимые административные изменения, которые требуются для нового сервера. Новый сервер теперь можно увидеть в оснастке Active Directory. Переместите сервер в необходимый раздел, назначьте права, добавьте в нужные группы.

clone sql

При необходимости применения групповых политик — перезагрузите сервер ещё раз. Кстати, можно заодно обновления накатить.

Теперь у нас есть новый 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...

clone sql

Или запросом для каждой БД:

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

Должно остаться так:

clone sql

Очистим Maintenance Plans

Удаляем все регламентные операции.

Настроим Database Mail

Если новый сервер должен использовать общие настройки почты, то ничего не меняем, Database Mail будет работать как на образце, с которого клонировали виртуальную машину. Если же требуется указать другие настройки - делаем.

Дополнительно

Если есть джобы — чистим их.

Линкованные сервера приводим в порядок.

Пользователи - удаляем лишних, добавляем новых. Также вносим настройки, если SQL должен запускаться под другим пользователем. Настраиваем права и группы пользователей ОС, если это требуется.

Теги