При использовании сценариев для восстановления базы данных ошибка говорит о том, что набор резервных копий содержит резервную копию базы данных, отличную от существующей - PullRequest
0 голосов
/ 16 января 2019

Я пишу скрипт для автоматизации процесса восстановления одной базы данных с использованием файла .bak другой базы данных. Я получаю сообщение об ошибке:

Резервный набор содержит резервную копию базы данных, отличную от существующей База данных add_BackupDev.

Все ответы, которые я нахожу в Интернете, по-видимому, имеют решение, которое заключается в завершении восстановления вручную, а не с помощью сценария, что мне не подходит.

Это мой код. Переменная @LastDatabaseRestore передает соответствующий путь к файлу для моего .bak файла.

RESTORE DATABASE add_BackupDev
FILE = N'FILENAME'
FROM DISK = @LastDatabaseRestore
WITH FILE = 1,
MOVE 'add_backupDev' TO 'R:\DATA\add_BackupDev.mdf',
MOVE 'add_BackupDev_log' TO 'L:\LOG\add_BackupDev.ldf',
NOUNLOAD,
REPLACE;
GO

1 Ответ

0 голосов
/ 16 января 2019

слишком долго, чтобы комментировать

Использование опции WITH REPLACE (как вы перечислили) перезапишет базу данных тем, что содержится в резервной копии. Причина, по которой вы получаете эту ошибку в вашем скрипте, может заключаться в том, что вы используете опцию FILE.

Параметры FILE, предшествующие имени устройства резервного копирования, задают логический имена файлов файлов базы данных, которые должны быть восстановлены из резервный набор; например, FILE = 'FILENAME'

Причиной возникновения ошибки может быть то, что набор резервных копий не является первой резервной копией базы данных в наборе носителей. Вам необходимо добавить правильный номер к опции FILE в предложении WITH.

....
WITH FILE = 1,  --this may not need to be 1
....

Если вам не нужно явно указывать имя файла, пропустите оба параметра FILE.

RESTORE DATABASE add_BackupDev
FROM DISK = @LastDatabaseRestore
WITH
MOVE 'add_backupDev' TO 'R:\DATA\add_BackupDev.mdf',
MOVE 'add_BackupDev_log' TO 'L:\LOG\add_BackupDev.ldf',
NOUNLOAD,
REPLACE;
GO

Это должно восстановить вашу базу данных.

...