Здесь моя проблема. Я пытаюсь переместить базу данных на новый сервер с помощью полного восстановления, а затем перенести с помощью быстрого разностного резервного копирования / восстановления. Я могу сделать полное восстановление без проблем, но при восстановлении разностной резервной копии я получаю следующее предупреждение:
Сообщение 3127, уровень 16, состояние 1, строка 1 Файл «Database_Log2» восстановленной базы данных «DatabaseName» остается в несуществующем состоянии, поскольку база данных использует простую модель восстановления и файл помечен для доступа на чтение и запись. Таким образом, только частичные файлы могут быть восстановлены путем частичного восстановления.
База данных восстанавливается и считается подключенной, но любая операция резервного копирования не выполняется из-за этого файла DEFUNCT со следующей ошибкой:
Сообщение 3636, уровень 16, состояние 2, строка 1 Произошла ошибка при обработке метаданных BackupMetadata для идентификатора файла базы данных с идентификатором 10. Сообщение 3046, уровень 16, состояние 2, строка 1 Обнаружены несогласованные метаданные. Единственная возможная операция резервного копирования - это резервное копирование с использованием опции WITH CONTINUE_AFTER_ERROR или NO_TRUNCATE. Сообщение 3013, Уровень 16, Состояние 1, Строка 1 РЕЗЕРВНАЯ БАЗА ДАННЫХ завершается ненормально.
Если я выполню команду RESTORE FILELISTONLY для полной и дифференциальной систем, то получу одинаковый вывод, который совпадает с тем, что я вижу из sys.database_files в исходной базе данных. Сервер SQL2012 SP1, для разработчиков.
Я могу сделать полное резервное копирование и сразу после этого сделать дифференциал, и восстановить эти файлы в другой базе данных на том же сервере и увидеть точно такую же проблему, так что есть что-то с тем, как создается дифференциал, который вызывает это. Если я восстановлю полную резервную копию с помощью RECOVERY, проблем не возникнет. Я не знаю, существовал ли этот файл в этой базе данных, но вполне возможно, что этот файл существовал и был удален очень давно. Если я запрашиваю sys.database_files в восстановленной базе данных, в файле DEFUNCT есть значение drop_lsn, которое, кажется, подтверждает это. В настоящее время в исходной базе данных есть только одна файловая группа (PRIMARY), 4 файла данных и один файл журнала.
Есть идеи?