"Не выбран набор резервных копий для восстановления" SQL Server 2012

У меня есть база данных SQL Server 2012 с включенным filestream. Однако, когда я делаю резервную копию и пытаюсь восстановить ее на другом экземпляре SQL Server 2012 (на другой машине), я просто получаю это сообщение:

backupset не выбран для восстановления.

даже ни одной строки больше объяснения. Что здесь не так?

любая другая база данных без filestream в порядке и может быть успешно восстановлена. Это что-то связанное с файлового потока? Должен ли я установить исправление или что-то в этом роде.

21 ответов


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

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

Это должно дать вам сообщение об ошибке,которое вам нужно отладить.


моя проблема в конечном итоге разрешения. Я на машине dev и скопирован через домашнюю группу. Каким-то образом, вероятно, основываясь на том, куда я скопировал файл, разрешения перепутались, и Management Studio не смогла прочитать файл. Поскольку это Дев, я просто дал все разрешения в файл bak и затем может успешно восстановить через GUI.


при запуске:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

это дало мне следующую ошибку:

семейство носителей на устройстве 'C:\NorthwindDB - ... бак ' неправильно сформирован. SQL Server не может обработать это семейство носителей. Восстановление HEADERONLY завершается аномально. (Microsoft SQL Server, ошибка: 3241) Blockquote

оказывается, вы не можете взять БД из более высокой версии SQL в более низкую, даже если уровень совместимости одинаков как для источника, так и для назначения ДЕЦИБЕЛ. Чтобы проверить версию SQL, выполните:

Select @@Version

чтобы увидеть разницу, просто создайте DB на своем источник SQL server и попытаться сделать восстановление из файла резервной копии, когда вы делаете это whit SSMS, как только вы выбираете файл резервной копии он покажет некоторую информацию о нем, как opossed, когда вы открываете его с сервера более низкой версии, который просто скажет "нет backupset выбран для восстановления" enter image description here

так если вам все еще нужно, чтобы переместить данные в более низкую версию SQL, затем проверьте этой.


запустите SQL Server Management Studio администратор (щелкните правой кнопкой мыши > Запуск от имени администратора), затем попробуйте восстановить.


Я думал, что я не настолько глуп, чтобы перепутать версии-однако я не понимал, что на моем новом сервере экземпляр SQL Server 2005 уже установлен с рождения с именем SQLEXPRESS. При попытке восстановить резервную копию базы данных SQL Server 2008 R2 в SSMS 2012 в SQLEXPRESS экземпляр, список резервных наборов данных был пуст.

В конце концов я понял, что SQLEXPRESS экземпляр на сервере был не экземпляром 2012, а 2005. Я отключился и подключился к фактический 2012 экземпляр (в моем случае с именем SQLEXPRESS2012), и это (очевидно) сработало.


моя проблема заключалась в том, что мой пользователь был в группе встроенных администраторов и не имел пользователя с ролью Sysadmin на SQL Server. Я только что запустил Management Studio в качестве администратора. Таким образом удалось восстановить базу данных.


Извините, но я только что зарегистрировался и не могу добавить комментарий, поэтому просто скопируйте ответ Тайлера Форсайта здесь, что именно сработало для меня.

" моя проблема оказалась разрешениями. Я на машине dev и скопирован через домашнюю группу. Каким-то образом, вероятно, основываясь на том, куда я скопировал файл, разрешения перепутались, и Management Studio не смогла прочитать файл. Поскольку это dev, я просто дал всем разрешения на файл bak и затем мог успешно восстановить его через GUI." Тайлер Форсайт!--1-->

и чтобы уточнить, я восстанавливаю резервную копию с экземпляра 2008 до 2012, разных машин (prodution vs local dev). Резервная копия-это автоматическая резервная копия, мне не нужно было создавать ее вручную, чтобы этот процесс работал. Просто измените разрешения (все проще всего для локальной машины dev), и SSMS теперь может правильно прочитать файл резервной копии и восстановить его на моей локальной машине dev.


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

это имело значение.

enter image description here


для меня проблема была .Файл BAK находится в зашифрованной папке на сервере. Даже с полными правами администратора я никогда не мог заставить SSMS читать файл. Перемещение .Бак в незашифрованную папку решил мою проблему. Обратите внимание, что после перемещения файла вам также может потребоваться изменить свойства фактического файла, чтобы удалить шифрование (щелкните правой кнопкой мыши, свойства, дополнительно, снимите флажок "шифровать содержимое для защиты данных".


FYI: я обнаружил, что при восстановлении мне нужно использовать те же учетные данные (пользователь SQL) для входа в SSMS. Сначала я попытался восстановить с помощью учетной записи проверки подлинности Windows.


У меня была та же проблема с SQL Server 2014 (среда Management Studio не могла видеть папку, в которой находился файл резервной копии, при попытке найти его для операции восстановления). этой теме держал ответ, который решил мою проблему. Цитата:

учетную запись службы SQL Server можно найти с помощью Start - >Control Панель - >Администрирование - >Службы. Дважды щелкните по SQL Server сервис- > вкладка вход. Вы либо будете использовать " локальную системную учетную запись" или "эта учетная запись", чтобы определить конкретную учетную запись. Если вы используете Учетная запись локальной системы, вы не сможете ссылаться на резервные копии, которые не локально для сервера. Если вместо этого вы определили учетную запись для use, это учетная запись, которая должна иметь доступ к файлу резервной копии местоположение. Возможность доступа к резервным копиям с помощью личного входа не имеет значения; это учетная запись SQL Server, которая используется, хотя вы осуществляете резервное копирование. Ваши люди должны быть в состоянии определите, какие права предоставляются каждому аккаунту.

надеюсь, что это кому-то поможет.


в моем случае (новая установка sql server, вновь созданный пользователь) у моего пользователя просто не было необходимого разрешения. Я вошел в Management Studio как sa, затем пошел в Security / Logins, щелкните правой кнопкой мыши мое имя пользователя, Свойства, затем в разделе роли сервера я проверил sysadmin.


для меня, это было потому, что файл резервной копии был еще открыт другим процессом. Вот журнал событий:

BackupDiskFile:: OpenMedia: устройство резервного копирования X:\Backups\MyDatabase\MyDatabase_backup_2014_08_22_132234_8270986 - ... бак не смог открыться. Ошибка операционной системы 32(процесс не может получить доступ к файлу, так как он используется другим процессом.).

просто закрывать и открывать библиотеку решили (очевидно, среда SSMS.exe, который имел ручка..)


для меня это проблема привилегий пользователя. Я вошел в систему с пользователем sa и его работа в порядке.


другой потенциальной причиной этого сбоя, по-видимому, является Google Drive. Google Drive сжимает файлы bak или что-то еще, поэтому, если вы хотите передать резервную копию базы данных через Google Drive, похоже, вы должны сначала ее zip.


использование SQL Server 2012 Express.

моя ошибка (из диалогового окна SQL Manager - Restore Database):

No backupset selected to be restored

далее, не было backupsets отображается в списке для выбора.

проблема заключалась в том, что я переместил 1 из 5 файлов резервных копий в папку, где у пользователя входа в службу SQL Server не было разрешений - я попытался добавить этого пользователя, но не смог получить пользователя NT Service\MSSQL$SQLEXPRESS в список безопасности.

I переместил файл в папку " Документы "для пользователя службы, и это позволило ему прочитать все файлы, которые я выбрал - 4 в тот момент - и ошибка изменилась на" media set missing " - затем я огляделся в поисках другого файла резервной копии, и когда я добавил, что я смог восстановить.

ответы в этом вопросе помогли мне посмотреть в нужных местах и работать над решением.


для меня это был вопрос разрешения. Я установил SQL server с помощью локальной учетной записи пользователя и перед присоединением к домену моих компаний. Позже я попытался восстановить базу данных с помощью учетной записи домена, которая не имеет разрешений, необходимых для восстановления баз данных SQL server. Необходимо исправить разрешение для учетной записи домена и предоставить ей разрешение системного администратора на имеющемся экземпляре SQL server.


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

проблема была отсюда: при резервном копировании у меня было 2 элемента в поле назначения.

таким образом, исправление будет: убедитесь, что только 1 элемент в поле "Назначение". Уберите все остальные, если они есть.


Если вы хотите полностью заменить существующую базу данных, используйте С ЗАМЕНОЙ:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
WITH REPLACE

в моем случае это была проблема с разрешениями.

enter image description here

для пользователя Windows, который я использовал, не было dbcreator роль.

поэтому я последовал нижеприведенным шагам

  1. подключиться sa на SQL server
  2. расширения Security в Обозревателе объектов
  3. расширения Logins
  4. щелкните правой кнопкой мыши на соответствующем пользователе Windows
  5. нажмите на Свойства
  6. выберите Server Roles С Select a page опции
  7. Регистрация dbcreator роль
  8. нажмите OK

enter image description here


Я столкнулся с той же проблемой. Запустите SSMS от имени администратора, затем щелкните правой кнопкой мыши и выполните восстановление базы данных. Должен работать.