В этой статье я покажу процесс переноса базы данных сервера SCCM на другой SQL сервер.
Предварительные действия
Перед началом переноса БД рекомендую перезагрузить все задействованные серверы, чтобы на них не было никаких отложенных установок обновлений операционной системы и приложений.
Необходимо проверить, что на новом SQL сервере выданы права администратора для учетной записи сервера SCCM.
Также не лишним будет проверить текущие настройки на самой БД SCCM. Для этого выполните запрос, подставив вместо CM_PIT имя своей базы:
select name, collation_name, is_trustworthy_on, is_broker_enabled, is_honor_broker_priority_on from sys.databases where name = ‘CM_PIT'
Вывод показывает, что SQL Broker включен, значения trustworthy и honor_broker_priority включены.
Еще одним подготовительным шагом будет остановка службы SCCM. Для этого необходимо выполнить команду, и дождаться остановки всех служб сайта:
C:\Program Files\Microsoft Configuration Manager\bin\X64\00000409\preinst.exe /stopsite
Резервное копирование базы данных SCCM
Открываем Microsoft SQL Server Management Studio, находим в списке базу данных SCCM, и в разделе Tasks, выбираем создание резервной копии Back Up.
На следующем экране укажите путь, где будет сохранена база данных.
Восстановление базы данных SCCM на новом SQL сервере
Перед восстановлением БД нужно проверить, что на новом сервере SQL значение Server Collation соответствует SQL_Latin1_General_CP1_CI_AS. Для этого в консоли Microsoft SQL Server Management Studio откроем свойства сервера SQL:
Далее на SQL Server выбираем раздел Database и выбираем Restore Database.
На следующем шаге необходимо выбрать ваш файл с бэкапом БД.
На вкладке Files можно указать новое расположение файлов базы данных и лог-файлов.
Теперь можно запускать процесс восстановления базы данных.
Следующим шагом будет предоставление прав для учетной записи нового сервера на перенесенную базу данных. Слева у меня новый сервер, справа — старый. Нужно предоставить аналогичные права.
На вкладке User mapping для БД SCCM нужны следующие права: db_datareader, db_datawriter, db_owner, public.
Для БД master: db_datareader, db_datawriter, db_owner, public.
Далее опять проверяем настройки базы данных, и вывод SQL запроса будет отличаться — скорее всего у вас будут нули во всех значениях.
select name, collation_name, is_trustworthy_on, is_broker_enabled, is_honor_broker_priority_on from sys.databases where name = ‘CM_PIT'
Поправим это следующим запросом:
USE master ALTER DATABASE CM_PIT SET ENABLE_BROKER ALTER DATABASE CM_PIT SET TRUSTWORTHY ON ALTER DATABASE CM_PIT SET HONOR_BROKER_PRIORITY ON
После выполнения запроса можно еще раз убедится, что теперь во всех полях значения изменили на единички как нам и нужно.
Перенастройка SCCM на использование новой базы данных
После переноса БД настроим сам сервер SCCM. Для этого запустите C:\Program Files\Microsoft Configuration Manager\bin\X64\setup.exe и выберите Perform site maintenance or reset this site.
На следующем шаге выберите Modify SQL Server configuration.
На следующем экране указываем SQL Server name в формате FQDN и Instance name. Я использую Instance name, которое задавалось по умолчанию, поэтому поле оставляю пустым. Нажимаем Next и ждем завершения всех операций по смене сервера.
Нажимаем Next и ждем завершения всех операций по смене сервера.
Перезагрузите сервер SCCM, а затем в настройках Administration — Site Configuration — Servers and Site System Roles посмотрите, что появился ваш новый SQL сервер. На этом перенос базы данных SCCM/MECM закончен.