Динамическое восстановление нескольких баз данных из папки - PullRequest
0 голосов
/ 11 июля 2019

Мне поручено восстановить несколько баз данных SQL Server из файлов .bak, созданных на другом сервере в другой организации. Я должен быть в состоянии добавить автоматизацию к этому процессу, поскольку это должно будет происходить ежедневно.

Проблема, с которой я сталкиваюсь, заключается в том, что файлы .bak каждый день имеют разные имена, например: DatabaseName_Full_Backup_Date_Time_xxxxxx.bak. Кроме того, файлы данных и журналов необходимо переместить (MOVE) во время восстановления данных на моем сервере и расположений файлов журналов.

Я решил использовать T-SQL, надеясь найти надежное решение, которое можно было бы реализовать из запланированного задания агента SQL Server, которое восстанавливает базы данных, применяет исходные разрешения и перемещает \ удаляет старые файлы .bak в расположение архива.

Я пытался решить эту проблему с помощью PowerShell, но файл -relocate не работал. Также попробовал эту хранимую процедуру (dbo.spRestore_All_Backups_From_Folder), предложенную на этом сайте здесь , что очень близко к тому, что мне нужно, но на моем компьютере с SQL Server 2016 я получаю ошибку при восстановлении резервных копий, созданных с другого сервера.

Сценарий работает с .bak файлами из баз данных, для которых было выполнено резервное копирование на том же сервере, и MOVE файлов не требуется.

Ошибка при попытке восстановить файл .bak с другого сервера:

Сообщение 213, Уровень 16, Состояние 7, Строка 300
Имя столбца или количество предоставленных значений не соответствует определению таблицы.

Сообщение 3013, Уровень 16, Состояние 1, Строка 300
ВОССТАНОВЛЕНИЕ ФИЛИСТА завершается ненормально.

Спасибо за ваш вклад и советы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...