"Для восстановления не выбран резервный набор данных" SQL Server 2012
У меня есть база данных SQL Server 2012 с включенным filestream. Однако, когда я делаю резервную копию и пытаюсь восстановить его на другом экземпляре SQL Server 2012 (на другой машине), я просто получаю это сообщение:
Не выбрано резервное копирование для восстановления.
ни одной строчки больше объяснений. Что здесь не так?
все остальные базы данных без filestream в порядке и могут быть успешно восстановлены. Это что-то связанное с файлового потока? Должен ли я установить исправление или что-то в этом роде.
21 ответов:
У меня была эта проблема, и оказалось, что я пытался восстановить неправильную версию SQL. Если вы хотите получить дополнительную информацию о том, что происходит, попробуйте восстановить базу данных с помощью следующего SQL:
RESTORE DATABASE <YourDatabase> FROM DISK='<the path to your backup file>\<YourDatabase>.bak'Это должно дать вам сообщение об ошибке, что нужно отладить это.
моя проблема оказалась разрешения. Я нахожусь на машине dev и копирую через домашнюю группу. Каким-то образом, вероятно, основываясь на том, куда я скопировал файл, разрешения были перепутаны, и Management Studio не смогла прочитать файл. Так как это Дев я просто дал все разрешения в файл bak и затем может успешно восстановить через графический интерфейс.
при запуске:
RESTORE DATABASE <YourDatabase> FROM DISK='<the path to your backup file>\<YourDatabase>.bak'это дало мне следующую ошибку:
семейство носителей на устройстве 'C:\NorthwindDB.бак ' неправильно сформирован. SQL Server не может обработать это семейство носителей. Восстановление HEADERONLY завершается ненормально. (Microsoft SQL Server, ошибка: 3241) Цитата
оказывается, вы не можете взять БД из более высокой версии SQL в более низкую, даже если уровень совместимости одинаков как для источника, так и для назначения ДЕЦИБЕЛ. Чтобы проверить версию SQL выполните:
Select @@Versionчтобы увидеть разницу, просто создайте БД на вашем источник SQL server и попробуйте выполнить восстановление из файла резервной копии, когда вы сделаете это с помощью SSMS, как только вы выберете файл резервной копии, он покажет некоторую информацию об этом, как opossed, когда вы откроете его с сервера более низкой версии, который просто скажет " нет резервного набора данных, выбранного для восстановления"
так если вам все еще нужно, чтобы переместить данные для более низкой версии SQL затем проверьте этой.
запустите SQL Server Management Studio администратор (щелкните правой кнопкой мыши > Запуск от имени администратора), затем попробуйте восстановить.
Я думал, что не настолько глуп, чтобы перепутать версии-однако я не понимал, что на моем новом сервере экземпляр SQL Server 2005 уже был установлен с рождения с именем
SQLEXPRESS. При попытке восстановить мою резервную копию базы данных SQL Server 2008 R2 в SSMS 2012 вSQLEXPRESSэкземпляр, список резервных наборов данных был пуст.В конце концов я понял, что
SQLEXPRESSэкземпляр на сервере был не 2012 экземпляр, а 2005. Я отключился и подключился к фактический 2012 экземпляр (в моем случае с именемSQLEXPRESS2012), и это (очевидно) сработало.
моя проблема заключалась в том, что мой пользователь был в группе встроенных администраторов и не имел пользователя с ролью Sysadmin на SQL Server. Я только что начал студию управления в качестве администратора. Таким образом можно было восстановить базу данных.
Извините, но я только что зарегистрировался и не могу добавить комментарий, поэтому просто копирую ответ Тайлера Форсайта здесь, что именно сработало для меня.
"моя проблема в конечном итоге права. Я нахожусь на машине dev и копирую через домашнюю группу. Каким-то образом, вероятно, основываясь на том, куда я скопировал файл, разрешения были перепутаны, и Management Studio не смогла прочитать файл. Поскольку это dev, я просто дал всем разрешения на файл bak и затем мог успешно восстановить его через графический интерфейс." Тайлер Форсайт
и чтобы уточнить, я восстанавливаю резервную копию с экземпляра 2008 до 2012 года, разных машин (prodution vs local dev). Резервная копия-это автоматическая резервная копия, мне не нужно было создавать ее вручную, чтобы этот процесс работал. Просто измените разрешения (все проще всего для локальной машины dev), и SSMS теперь может правильно прочитать файл резервной копии и восстановить его на моей локальной машине dev.
для меня проблема была .Файл BAK находится в зашифрованной папке на сервере. Даже с полными правами администратора я никогда не мог заставить SSMS прочитать файл. Переезд .Бак в незашифрованную папку решил мою проблему. Обратите внимание, что после перемещения файла вам может потребоваться также изменить свойства фактического файла, чтобы удалить шифрование (щелкните правой кнопкой мыши, свойства, дополнительно, снимите флажок "шифровать содержимое для защиты данных".
FYI: я обнаружил, что при восстановлении мне нужно было использовать те же учетные данные (SQL User) для входа в SSMS. Сначала я попытался восстановить с помощью учетной записи проверки подлинности Windows.
У меня была такая же проблема с SQL Server 2014 (среда Management Studio не могла видеть папку, в которой находился файл резервной копии, при попытке найти его для операции восстановления). этой теме держал ответ, который решил мою проблему. Цитата:
учетная запись службы SQL Server можно найти с помощью Start - > Control Панель - > Администрирование - > Службы. Дважды щелкните на SQL Server сервис- > вкладка вход. Вы либо будете использовать " локальную системную учетную запись" или "эта учетная запись", чтобы определить конкретную учетную запись. Если вы используете Локальная системная учетная запись, вы не сможете ссылаться на копии не локально для сервера. Если вместо этого вы определили учетную запись используйте, это учетная запись, которая должна иметь доступ к файлу резервной копии местоположение. Возможность доступа к резервным копиям с помощью личного входа не имеет значения; это учетная запись SQL Server, которая используется, хотя вы осуществляете резервное копирование. Ваши ИТ-специалисты должны уметь определите, какие права предоставляются каждой учетной записи.
надеюсь, что это кому-то поможет.
в моем случае (новая установка sql server, вновь созданный пользователь) у моего пользователя просто не было необходимого разрешения. Я вошел в студию управления как sa, затем перейдите в раздел Безопасность / логины, щелкните правой кнопкой мыши мое имя пользователя, свойства, а затем в разделе роли сервера я проверил
sysadmin.
для меня, это было потому, что файл резервной копии был еще открыт другим процессом. Вот журнал событий:
BackupDiskFile:: OpenMedia: устройство резервного копирования 'X:\Backups\MyDatabase\MyDatabase_backup_2014_08_22_132234_8270986.бак' не удалось открыть. Ошибка операционной системы 32(процесс не может получить доступ к файлу, так как он используется другим процессом.).
просто закрытие и повторное открытие SQL Server Management Studio разрешило его (так что, очевидно, это была ssms.exe, который имел ручка..)
для меня это вопрос привилегий пользователей. Я вошел в систему с пользователем sa и его работа в порядке.
еще одной потенциальной причиной этого сбоя, по-видимому, является Google Диск. Google Диск сжимает файлы bak или что-то еще, поэтому, если вы хотите перенести резервную копию базы данных через Google Диск, похоже, вы должны сначала ее заархивировать.
С помощью SQL Server 2012 Express.
моя ошибка (из диалогового окна SQL Manager - Restore Database):
No backupset selected to be restoredкроме того, в списке не было показано никаких резервных наборов данных для выбора.
проблема заключалась в том, что я переместил 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
в моем случае это была проблема с разрешениями.
для пользователя Windows, я использовал не было
dbcreatorроль.так что я следовал ниже шаги
- подключиться
saк SQL server- расширения
Securityв Обозревателе объектов- расширения
Logins- щелкните правой кнопкой мыши на соответствующем пользователе Windows
- нажмите на Свойства
- выберите
Server RolesСSelect a pageопции- Регистрация
dbcreatorроль- Нажмите кнопку ОК
Я столкнулся с той же проблемой. Запустите SSMS от имени администратора, затем щелкните правой кнопкой мыши и выполните восстановление базы данных. Должен работать.




Comments