Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
Добрый день. Собственно пока сервер в дороге нужно переключить сервисы на работу с временным инстансом, а потом вернуть всё назад. В моём понимании это должно выглядеть так:
автор
1. На SMI-V-PLANT01 развертываю инстанс с полным переносом конфигурации с SMI-V-PLANT04 (конфиг, раздел Security, раздел Server Objects).
2. На SMI-V-PLANT01 переношу набор всех JOBов с SMI-V-PLANT04.
3. На SMI-V-PLANT01 из полного архива восстанавливаю весь набор рабочих БД с SMI-V-PLANT04.

4. На все БД SMI-V-PLANT01 накатываю DIFF бэкапы с параметром NORECOVERY.
5. Для всех БД SMI-V-PLANT01 настраиваю восстановление логов транзакций ежеминутно.
6. Настраиваю На сервере SMI-V-PLANT04 джоб для восстановления логов транзакций для все рабочих БД.

После вышеперечисленных действий SMI-V-PLANT01 будет содержать весь набор данных, учетных записей, линкованных серверов и джобов актуальных на сервере SMI-V-PLANT04. Это позволит перевести работу системы с SMI-V-PLANT04 на SMI-V-PLANT01 с минимальным ущербом для аптайма сервиса, выведя БД из режима restoring.

7. После того, как SMI-V-PLANT04 будет включен на новом месте, на весь набор рабочих БД будут накачены бэкапы изменений с параметром NORECOVERY, включаем джоб восстановления логов транзакций, для того, чтобы восстановить в БД разницу во времени переезда.
8. После того, как все данные актуализируются, можно провести переключение работы сервисов обратно на SMI-V-PLANT04.


Этот план не учитывает репликации:

Если мы примем решение о воссоздании настроек репликации на SMI-V-PLANT01, то это будет возможно сделать только создавая новые публикации и подписки, а это требует полного пересоздания реплицируемых таблиц на подписчике.


Всё ли я учел и всё ли так, как я считаю?
17 окт 19, 11:29    [21996289]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
Alexander Us
Member

Откуда:
Сообщений: 1128
teCa,

альтернативно:

настраиваете зеркалирование,
переключаете,
удаляете зеркалирование,
перевозите сервер,
делаете свежий дифф бэкап (может понадобиться и бэкап лога)
восстанавливаете его
настраиваете зеркалирование,
переключаете назад,
удаляете зеркалирование

Насчёт джобов:
будьте внимательны, не все джобы надо переносить.
Например джобы репликации и т.д.

Настроена ли на сервере репликация?
17 окт 19, 12:22    [21996387]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
Alexander Us
Member

Откуда:
Сообщений: 1128
PS: чтобы использовать зеркалироваие в строве соединения (connection string) должен быть указан параметр "Failover Partner"
17 окт 19, 12:25    [21996393]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
Alexander Us
Member

Откуда:
Сообщений: 1128
PPS:
после удаления зеркалирования придётся отредактировать строки сединения в приложениях.

Перенос логинов
17 окт 19, 12:43    [21996423]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
Alexander Us,

А настройки с сервера на другой сервер каким методом лучше перенести, с учетом, что пути и номер билда у меня совпадают?
17 окт 19, 12:56    [21996454]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5230
teCa
Alexander Us,

А настройки с сервера на другой сервер каким методом лучше перенести, с учетом, что пути и номер билда у меня совпадают?

это зависит от того, что Вы называете настройками

если sp_configure, то
https://docs.dbatools.io/#Copy-DbaSpConfigure

а вообще, вот эта штука автоматизирует копирование инстансов:
https://docs.dbatools.io/#Start-DbaMigration
17 окт 19, 13:10    [21996472]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
komrad,

судя по описанию, Start-DbaMigration то что нужно.
17 окт 19, 13:13    [21996477]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
Alexander Us
Member

Откуда:
Сообщений: 1128
teCa
А настройки с сервера на другой сервер каким методом лучше перенести, с учетом, что пути и номер билда у меня совпадают?


Я переносил вручную, сравнивая через
SELECT *
FROM sys.configurations;


Зеркало(ваш времменный сервер) можно сначала "залинковать" на основном.
Таким образом можно сравнивать конфигурации запросом, а не вручную.

Кроме того, с зеркалом Вы можете "потренироваться":
переключите на резервный, а если окажется, что вы что то упустили, переключите обратно.

Важно, чтобя на обоих машинах балв та же версия/билд sql сервера.
17 окт 19, 13:14    [21996478]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5230
teCa
komrad,

судя по описанию, Start-DbaMigration то что нужно.

да, этим пользовался не раз и, в основном, успешно
что особенно удобно, есть режим "-WhatIf", который симулирует перенос и выявляет потенциальные проблемы переноса
17 окт 19, 13:35    [21996502]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
komrad,

А подскажите по синтаксису.

автор
PS C:\> $PSDefaultParameters = @{
>> "dbatools:Source" = "sqlcluster"
>> "dbatools:Destination" = "sql2016"
>> }
>>
PS C:\> Start-DbaMigration -Verbose -Exclude Databases


Изначально, я хочу перенести все настройки (sp_config, логины, линкованые сервера, джобы) кроме самих баз данных и репликаций.
17 окт 19, 13:42    [21996508]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5230
между этим (1)
teCa
все настройки (sp_config, логины, линкованые сервера, джобы) кроме самих баз данных и репликаций.


и этим (2)
teCa
кроме самих баз данных и репликаций.

очень много всего

поэтому, если заходить со стороны первого (1), то лучше использовать более гранулярные команды типа Copy-DbaSpConfigure

если заходить со стороны второго (2), то команда выглядит примерно так:
Start-DbaMigration -Source server1\instance1 -Destination server2\instance1 -Exclude Databases -DisableJobsOnDestination -WhatIf

но точнее нужно выяснить самому, запустив с ключем -WhatIf и проверив вывод
17 окт 19, 14:02    [21996536]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
komrad,

Решил всё же вторым способом попробовать.

Такой синтаксис:
автор
Start-DbaMigration -Source SMI-PLANT04\MSSQLSERVER -Destination SMI-V-PLANT01\MSSQLSERVER -Exclude Databases -DisableJobsOnDestination -WhatIf


Получаю вот такие ошибки подключения к реестру на источнике. Хотя на обоих серверах добавился в группу локальных администраторов.

К сообщению приложен файл. Размер - 43Kb
17 окт 19, 14:47    [21996597]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5230
teCa,

ну, первое что приходит в голову - попробовать с IP адресами вместо имен хостов

и, с какого хоста запускается команда?
17 окт 19, 16:13    [21996712]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
komrad,

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

А что это за ошибка, оно присутствует на обеих учетках.

автор
WARNING: [16:26:34][Copy-Credential] Error creating credential | You cannot call a method on a null-valued expression.
What if: Performing the operation "Set variable" on target "Name: __dbatools_interrupt_function_78Q9VPrM6999g6zo24Qn83m09XF56InEn4hFrA8Fwhu5xJrs6r Value: True".
17 окт 19, 16:28    [21996730]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5230
teCa,

я попробовал сиквельные учетки с соответствующими правами и эти ключи:
-SourceSqlCredential и -DestinationSqlCredential

это позволит понять, проблема в сиквеле или на уровне ОС
17 окт 19, 16:51    [21996748]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7662
teCa,

судя по сообщению, недостаточно прав для доступа к удалённому реестру. Т.е. Вам надо настроить сеть и/или права Windows.
17 окт 19, 18:38    [21996862]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
Владислав Колосов
teCa,

судя по сообщению, недостаточно прав для доступа к удалённому реестру. Т.е. Вам надо настроить сеть и/или права Windows.


Меня вот эта что за ошибка интересует, нигде не могу найти её описания.
18 окт 19, 10:09    [21997133]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
teCa,

автор
WARNING: [16:26:34][Copy-Credential] Error creating credential | You cannot call a method on a null-valued expression.
What if: Performing the operation "Set variable" on target "Name: __dbatools_interrupt_function_78Q9VPrM6999g6zo24Qn83m09XF56InEn4hFrA8Fwhu5xJrs6r Value: True".


Как я понимаю, он в функцию параметр не передает. И связано это с пользовательскими учетками.
18 окт 19, 10:28    [21997155]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7662
teCa,

Вам надо искать не описание ошибки, а описание настроек для подключения к удалённому реестру Windows. Та ошибка, о который Вы пишете - это следствие проблемы. Не прочитал реестр - получил null.

Приложение, возможно, пытается прочитать имя и другие настройки удалённого SQL сервера из реестра сервера назначения.
18 окт 19, 11:50    [21997274]     Ответить | Цитировать Сообщить модератору
 Re: Сервер переезжает в другой ДЦ, нужно организовать временный сервис на время переезда.  [new]
teCa
Member

Откуда:
Сообщений: 614
Владислав Колосов,

Да, действительно ошибка была из-за прав.
18 окт 19, 13:04    [21997356]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить