Простой способ перемещения баз данных между серверами?

Мне нужно переместить 100 баз данных из разных экземпляров SQL в другие идентичные экземпляры в другом окне.

Я знаю, что могу вручную отсоединить, скопировать файл, установить заново, но есть ли более простой / автоматизированный способ? Желательно инструмент пользовательского интерфейса, чтобы выбрать базы данных для копирования и позволить ему продолжать с этим?

Это похоже на предыдущий вопрос, но это было более 7 лет назад, возможно, все пошло дальше?

3 ответа

Решение

Я удивлен, что никто не упомянул встроенный мастер копирования баз данных. Кажется, именно то, что я хочу!

Используя библиотеку PowerShell DBA Tools, вы можете сделать что-то вроде этого:

Get-DbaBackupHistory -SqlInstance Server1 |
 Restore-DbaDatabase -SqlInstance Server2 -withreplace

Это позволит использовать ваши существующие резервные копии на сервере Server1 и восстановить их на сервере Server2. Я предполагаю, что если вы будете выполнять резервное копирование всех ваших баз данных на сервере Server1, то при восстановлении они будут использованы, и у вас будет эффективный способ копирования баз данных на сервер Server2, а также приличный запасной план, если вам нужно вернуться к серверу 1 (т.е. запустить restore [dbName] with recovery на все на сервере1)

Хранимые процедуры отсоединения / присоединения больше не рекомендуются, так как они могут вызвать проблемы с компонентом Service Broker и некоторые другие вещи. Лучше всего, если бы не было стороннего инструмента, который вам пришлось бы покупать, было бы выполнить сценарий, переводя все базы данных в автономный режим, затем вручную скопировать данные и файлы журналов в новое место назначения, а затем прикрепить их с помощью "Создать базу данных" для прикрепить код У меня есть код, которым я мог бы поделиться с вами, если вы заинтересованы, который автоматизирует эти утверждения.

Другие вопросы по тегам