четверг, 17 марта 2016 г.

Обновление MS SQL Server в режиме AlwaysOn до новой версии MSSQL.


   Пришлось обновлять MS SQL Server 2012 до версии 2014, при этом MS SQL Server работало в режиме AlwaysOn. Сложного ничего нет, но есть несколько моментов, которые нужно учитывать при работе и обновлении. Главное, это конечно предварительное тщательное тестирование.


Итак, имеем двух узловой кластер с установленным MS SQL Server 2012 Enterprise Edition Sp2, необходимо обновить до MS SQL Server 2014 Sp1 Cu1.

Подготовительные работы:
  1.        Тестирование
  2.        Еще раз тестирование
  3.        Создание резервных копий системных баз данных (master, msdb)
  4.        Еще раз проверяем наличие всех копий баз данных.

Далее на переводим AlwaysOn в режим асинхронный.

Обновляем вторичную реплику AlwaysOn до 2014 версии, ставим SP и последние CU.

После этого переводим AlwaysOn в синхронный режим, в этом момент синхронизация проходит, но вторичная реплика(так которую мы обновили не доступна для чтения),

Создаем копии бд и делаем Failover.

Активный узел AlwaysOn у нас стал на MS SQL Server 2014 и уже в этот момент синхронизация данных на вторичный узел не происходит (режим Suspend у баз данных), т.к там еще младшая версия ms sql server.

После этого проводим тестирование вашего приложения на узле MS SQL Server 2014, проверяем журналы SQL Server на отсутствие ошибок.
Надо понимать, что на этот момент мы можем либо откатиться на данные до начала работ(восстановление из копий), либо на момент Failover на SQL 2014. Необходимо будет просто перевести базы данных в режим доступный для изменения на сервере с 2012 версией командой
    Restore Database DB with recovery

После того как все ОК, мы можем обновлять второй узел до MS SQL Server 2014, ставить SP, CU.

Далее переводим базы данных группы доступности AlwaysOn из режима “Suspend” в режим “Resume”, т.е. возобновляем передачу данных. После некоторого времени произойдет синхронизация узлов MS SQL Server, затем восстанавливаем автоматический Failover.

Все, наш MS SQL Server в режиме AlwaysOn обновлен до нового выпуска.

С чем мы столкнулись:

1)  У одной базы данных слетело свойство «Trustworthy». Это свойство было включено на            нескольких базах данных, но у одной оно слетело. Узнали только по ошибке, когда       выполнялся код, которому необходимо было данной свойство.
2)      Слетела affinity для процессоров. На сервере было 80 ядер, ms sql server-у было выделено 75 ядер, в итоге после обновления, он был привязан к половине -40 ядер. Выяснили только тогда, когда появилась нагрузка на CPU к 90 %.
3)      Перестала работать почтовая рассылка с одним параметром (@query_no_truncate = 1). В MS SQL Server 2012 она работала, в MS SQL Server 2014 она перестала работать. Это уже огрехи тестирования, и насколько я понял, есть такой баг в sql 2014(Открыли кейс в Майкрософте, но решения пока нет)

Отсюда выводы, перед обновлением сохраните все свойства сервера и баз данных, после обновления их проверьте.

Вот вроде все, что делали и с чем встретились.
Хорошего обновления.



Комментариев нет :

Отправить комментарий