Downgrade Microsoft Sql Server Enterprise to Standard — инструкция на русском

Всем привет, как и всегда, с вами на связи Александр Глебов. В этот раз я расскажу вам о том как сделать Downgrade Microsoft Sql Server Enterprise на версию Standard. Довольно муторная и сложная операция, да и редко кому нужна, но тем не менее, если интересно, читаем далее...


Небольшая предыстория

Работал я одно время в замечательной компании TOPS Consulting (уже говорил об этом на своей странице - "О блоге"). Была у меня тестовая установка CRM 2013 у одного заказчика, в том числе я устанавливал и Microsoft Sql Server. Весь софт я устанавливал который предоставляет заказчик, так вот, мне был предоставлен Microsoft Sql Server 2012 Enterprise. Я его установил на тестовую среду, установил CRM 2013 (как установить рассказывал тут).

Разработчики допилили CRM до нужной кондиции, тестировщики протестировали. В итоге заказчик принял тестовую среду, все рады, все довольны. Встал вопрос о переносе тестовой среды на пром. Вот тут и вскрылась одна особенность, а именно, заказчик предоставил Sql Server 2012 Enterprise который у него не куплен, а куплен у них был ql Server 2012 Standard.

Казалось бы, какие проблемы, установи стандарт и на него поставь CRM (так мне сказал начальник, Илья тебе привет :))) ). Но не тут то было. Дело в том, что CRM сильно завязан на системных базах данных. Там хранятся все системные настройки crm, и чтобы их сохранить мне пришлось ломать голову как сделать Downgrade. Переходим к сути.

Downgrade Microsoft Sql Server Enterprise to Standard

По сути не важно какая у вас причина для даунгрейда, инструкция подойдет всем. Я проводил Downgrade для версии 2012, но думаю, что подойдет и для 2008 и для 2014. Будем придерживаться следующего алгоритма действий:

  1. Делаем бекап всех баз данных
  2. Проверка всех баз на включение фич Enterprise редакции
  3. Проверка версии sql и build number
  4. Копирование системных баз данных
  5. Удаляем SQL Server
  6. Установка новой редакции SQL Server Standard
  7. Копирование системных баз данных

Делаем бекап всех баз данных

Необходимо сделать резервное копирование всех баз данных включая системные. Это можно сделать при помощи следующего скрипта:

Читайте также:
Как закрепить строку в excel при прокрутке

DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

-- specify database backup directory
SET @path = 'C:\Backup\'

-- specify filename format
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databases

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor

Проверка всех баз на включение фич Enterprise редакции

Очень важный пункт, если его не выполните, то база может на версии стандарт не запуститься. Бывает так, что какое-то приложение использовало фичи Enterprise редакции sql, и база данных в данном случае не подойдет к версии стандарт. Необходимо сделать проверку на эти фичи. Делается следующим скриптом:

SELECT * FROM sys.dm_db_persisted_sku_features

Скрипт надо запускать на каждой базе. Если база использует фичи Энтерпрайз редакции, то необходимо будет избавится от них. Как избавится зависит в каждом случае по-разному. В данной статье не описывается способ отключения.

Проверка версии sql и build number

ВАЖНЫЙ пункт, так как до такой же версии потом необходимо будет устанавливать sql. Выполните скрипт:

SELECT @@VERSION

Получите примерно такие результаты:sqlVersion

Копирование системных баз данных

Когда производится Downgrade Microsoft Sql Server Enterprise необходимо скопировать в другое место системные базы данных, а именно master, model, msdb (mdf и ldf). Для этого останавливаем sql сервер:sqlSystemBase

Переходим в расположение системных баз данных, по умолчанию это: C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA и копируем базы master, model, msdb (mdf и ldf) файлы. Вставляем их в другое безопасное место: sqlSystemBase1

Удаляем SQL Server

Запускаем деинсталлятор через панель управления – программы и компоненты.
Видим такую картинку:sqlDelete

Нажимаем Remove, удалить необходимо только следующие компоненты: инстанс sql и SSIS, SSAS, SSRS, SSDT. Обязательно запомните как назывался инстанс sql. Подчеркнул желтым.

Читайте также:
Несколько простых способов удалить пользователя в windows 10.

sqlDelete1sqlDelete2sqlDelete3

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

Установка новой редакции SQL Server

Запускаем установщик, и устанавливаем sql. Имя инстанса должно быть таким же как было до удаления, компоненты необходимо установить те же, что и удаляли. Системные пути и пути к базам данных должны так же остаться такими же как были до удаления.
После установки необходимо проверить версию, делается это скриптом:

SELECT @@VERSION

После выполнения команды необходимо сравнить версии билдов, если они разные то гуглим какой патч надо поставить, чтобы версии сравнялись. В моем примере у версии Энтерпрайз версия была такая:
Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
Dec 28 2012 20:23:12
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on
Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)

У версии стандарт стала такая:
Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
Dec 28 2012 20:23:12
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)

Если бы версии билдов отличались, мне бы пришлось искать патч, и уравнивать версии. В моем случае версии совпадают, поэтому перехожу к следующему этапу.

Копирование системных баз данных

Нам необходимо вернуть на место ранее скопированные системные базы. Для этого необходимо остановить sql сервер:systemBaseCopy

Далее произвести копирование с заменой системные базы:systemBaseCopy1

После копирования запускам sql сервер:sqlServerStart

Переходим в SQL Server Management Studio, подключаем к инстансу, и видим, что все настройки стали такими же как были до удаления:Downgrade Microsoft Sql Server Enterprise

Вот таким образом и происходи Downgrade Microsoft Sql Server Enterprise. У меня получилось только таким способом. Пробовал просто установить на другом компьютере версию стандарт и подсунуть туда системные базы. Ничего не получилось. Возможно где-то допустил ошибку. Тем не менее описанный способ рабочий, пользуйтесь кому надо. Все вопросы и замечания прошу задавать в комментариях.

С уважением, Александр Глебов.

С уважением,
Очень большая просьба пройти этот опрос!
Если вам помогла данная статья, вступите пожалуйста в мою группу в контакте.

Очень плохоПлохоСреднеХорошоОтлично (2 оценок, среднее: 4,50 из 5)
Загрузка...
Интересные статьи по теме:
Комментарии

There is a requirement in our project where they want to evaluate if it is possible to downgrade SQL Server from Enterprise to Standard edition and if a server can be decommissioned.

Ответить

Hello, ste-pashka. Sorry, but i don’t understand you. Can you rephrase your question?
I see your domain in RU zone, maybe we can speak in russian language?

Ответить

Я так понимаю была установлена версия Standard и были подсунуты системные бвзы из версии Enterprise аналогичной версии.
И какая в конечном итоге версия была установлена?
По базе master получается что Enterprise?

Ответить

Добрый день. давно это было. Я уже не очень помню.

Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *