Источник: SQL Server Rolling Patch Upgrade using Standby VM


Неплохой мануал на тему обновления SQL сервера с помощью запасной ВМ. Алгоритм достаточно простой и, вполне себе, логичный. Итак, вышло новое обновление для SQL сервера, и вам нужно с минимальным простоем в работе его обновить.

Небольшое отступление. В этом примере в качестве SQL сервера выступает виртуальная машина с тремя (3) дисками: "System", "Data" и "Log". Наверное, вы уже догадались, что основные манипуляции будут именно с виртуальными дисками "Data" и "Log".

В статье, а точнее будет сказать, в руководстве, приведенном как источник, чтобы обновить SQL сервер с минимальным простоем в работе, нам предлагают поступить следующим образом (всего 5 шагов и будет счастье):

Шаг 1: Configure standby VM

  • Создаем путем клонирования основной или, с помощью шаблонов, вторую (standby или, проще говоря, запасную) виртуальную машину (точную копию основной) с SQL сервером на борту.
  • Убедитесь в том, что запасной SQL сервер настроен точно так же, как и первый (основной).
sql-1.png

Шаг 2: Patch standby VM

  • Обновляем запасной SQL сервер (применяем все необходимые патчи)
sql-2.png

Шаг 3: Hot remove SQL Server resources from primary

  • На основном SQL сервере отключаем все клиентские подключения к баз(е/ам) данных.

Сбросить все клиентские соединения можно путем отключения сетевого интерфейса.

  • Отсоединяем (detach) все базы данных от основного SQL сервера (sp_detach_db).
  • Переводим виртуальные диски "Data" и "Log" в автономный (offline) режим работы.
  • Используя vSphere Client, удаляем из основного SQL сервера диски "Data" и "Log".

sql-3.png

Шаг 4: Hot add resources to the SQL Server standby VM

  • Используя vSphere Client, добавляем на запасной SQL сервер "Data" и "Log" диски.
  • Используя "Disk Management", делаем диски "online" и монтируем их под нужными буквами.
  • Используя T-SQL команду sp_attach_db, присоединяем к запасному SQL серверу все БД.

sql-4.png

Шаг 5: Switch role

  • На запасном SQL сервере разрешаем сетевой трафик от приложений, путем включения vNIC.
  • Запасной SQL становится основным, и приложения начинают с ним взаимодействовать.
  • Теперь уже бывший основной SQL сервер можно обновить и "потушить" до следующего подобного обновления.

sql-5.png

Простой в работе SQL сервера у вас произойдет с 3-его по 5-ый шаг, но большинство приложений данный незначительный простой должны пережить, попросту переустановив соединение до SQL сервера и повторив ранее невыполненные запросы.