“Nenhum conjunto de backup selecionado para restauração” SQL Server 2012

150

Eu tenho um banco de dados do SQL Server 2012 com o fluxo de arquivos ativado. No entanto, quando faço backup e tento restaurá-lo em outra instância do SQL Server 2012 (em outra máquina), simplesmente recebo a seguinte mensagem:

Nenhum conjunto de backup selecionado para ser restaurado.

Nem mesmo uma única linha de mais explicações. O que há de errado aqui?

Todos os outros bancos de dados sem fluxo de arquivos estão OK e podem ser restaurados com êxito. É algo relacionado ao filestream? Devo instalar um hotfix ou algo assim.

Saeed Neamati
fonte
1
Ainda não resolveu. Parece que a configuração do SQL Server está com problemas. Eu acho que as coisas devem ser mais fáceis do que isso.
Saeed Neamati
1
Você pode fornecer o T-SQL que você está usando para tentar a restauração?
Ben Thul
3
Bem, estou usando a GUI do SSMS.
Saeed Neamati
Mesmo fazendo dessa maneira, deve haver um botão "script" em algum lugar próximo ao topo da janela. Depois de configurar tudo da maneira que você acha que seria definido para a restauração, pressione-o em vez de "ok" e abrirá o T-SQL que seria executado no servidor para a restauração.
precisa saber é o seguinte
1
O problema das permissões para mim também foi feito com o SQL 2014 Standard (autônomo) no WS 2012 R2 (grupos de trabalho), mas foi necessário reiniciar duas vezes para que as permissões fossem executadas. Pelo que vale a pena .. Espero que todos sejam resolvidos também.
BaldEagle

Respostas:

177

Eu tive esse problema e acabei tentando restaurar a versão errada do SQL. Se você quiser obter mais informações sobre o que está acontecendo, tente restaurar o banco de dados usando o seguinte SQL:

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

Isso deve fornecer a mensagem de erro de que você precisa depurar isso.

user489998
fonte
Que mensagem de erro você recebe ao tentar a restauração usando o SQL acima?
User489998
Parece que a restauração do banco de dados usando o script T-SQL faria o trabalho. Acho que, como não fizemos backup dos dados do fluxo de arquivos, a interface do usuário não pode lidar com isso.
Saeed Neamati
1
Bom, eu gosto da abordagem SQL bruta. Recebo uma mensagem como `O conjunto de mídia possui 2 famílias de mídia, mas apenas 1 é fornecida. Todos os membros devem ser fornecidos.` - isso significa que a fonte de backup era versão do SQL Server diferente do destino de backup? Quando tento com a abordagem da interface do usuário ("Restaurar"), recebo a mensagem @ topNo backupset selected to be restored.
The Red Pea
Se você deseja substituir o banco de dados existente completamente usar o COM SUBSTITUIÇÃO opção RESTORE DATABASE <YourDatabase> FROM DISK='<the path to your backup file>\<YourDatabase>.bak' WITH REPLACE
Iasmini Gomes
63

Meu problema acabou sendo permissões . Estou em uma máquina de desenvolvimento e copiado via Homegroup. De alguma forma, provavelmente com base em onde eu copiei o arquivo, as permissões foram alteradas e o Management Studio não pôde ler o arquivo. Como este é o desenvolvedor, eu apenas dei permissões a Todos para o arquivo bak e, em seguida, pude restaurar com êxito através da GUI.

Tyler Forsythe
fonte
Isso acabou funcionando para mim também. É MUITO DUMB que meu nome de usuário possa ter permissões para essa pasta, mas a única maneira de fazer isso funcionar foi adicionar o grupo "Todos" às permissões da pasta. Tão frustrante, mas obrigado por me poupar tempo!
hurleystylee
5
Falta completa de mensagens de erro úteis neste caso. Meu problema também foi resolvido por isso.
Dodgy_coder 30/05
1
Booya! Preciso amar os erros genéricos que não dizem nada. Claro que eram permissões. Aconteceu comigo ao restaurar a partir de servidores sql em domínios diferentes. A permissão do arquivo .bak foi alterada para todos. Funcionou bem depois disso.
Prescient
Teve os mesmos problemas ao tentar restaurar o banco de dados do .bakarquivo, criado pelo serviço da Web de upload de arquivos, que está sendo executado no IISApplicationPoolIdentity
apdevelop
26

Ao executar:

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

Deu-me o seguinte erro:

A família de mídia no dispositivo 'C: \ NorthwindDB.bak' foi formada incorretamente. O SQL Server não pode processar esta família de mídia. RESTORE HEADERONLY está sendo finalizado de forma anormal. (Microsoft SQL Server, Erro: 3241)

Você não pode levar um banco de dados de uma versão SQL mais alta para uma versão mais baixa, mesmo se o nível de compatibilidade for o mesmo no banco de dados de origem e de destino. Para verificar a versão do SQL, execute:

Select @@Version

Para ver a diferença, basta criar um banco de dados no servidor SQL de origem e tentar fazer uma restauração a partir do seu arquivo de backup, quando você fizer isso com o SSMS, depois de escolher o arquivo de backup, ele mostrará algumas informações sobre ele, ao contrário de quando você abra-o em um servidor de versão inferior que dirá "nenhum conjunto de backup selecionado para restauração" insira a descrição da imagem aqui

Portanto, se você ainda precisar mover seus dados para uma versão inferior do SQL, marque Isto .

Alon Or
fonte
então, se eu fizer um backup de db da máquina com o sql server 2014 enterprise - ele pode ser restaurado no sql server 2014 express?
chester89
@ chester89 Acho que depende do tipo de funcionalidade que você tem no banco de dados. E o tipo de backup. A versão expressa não reconhece backups compactados. Além disso, se a versão corporativa estiver usando algo exclusivo da empresa, a versão gratuita (expressa) não o reconhecerá. Mas, se você tem algo padrão, teoricamente deve ser reconhecido.
Juan Acosta
@ JuanAcosta sim, eu coloquei isso junto. No meu caso, não há nenhuma funcionalidade específica da empresa em uso, então eu restaurado o backup sem problemas
chester89
@ JuanAcosta, você pode me indicar uma documentação que diz que o Express Edition não pode restaurar o backup compactado?
chester89
@Chester, verifique a página 234, ponto 3. A opção padrão é a única disponível na versão expressa. books.google.com.au/…
Juan Acosta
15

Execute o SQL Server Management Studio como administrador (clique com o botão direito do mouse no atalho / exe, selecione "Executar como Administrador") e tente restaurar.

Keith
fonte
10

Eu pensei que não era estúpido o suficiente para misturar as versões - no entanto, não percebi que no meu novo servidor, uma instância do SQL Server 2005 já estava instalada desde o nascimento, chamada SQLEXPRESS. Ao tentar restaurar meu banco de dados de backup do SQL Server 2008 R2 no SSMS 2012 para o diretórioSQLEXPRESS instância, a lista de conjuntos de backup estava vazia.

Eventualmente, percebi que a SQLEXPRESSinstância no servidor não era uma instância de 2012, mas uma de 2005. Desconectei e me conectei à instância real de 2012 (no meu caso, chamada SQLEXPRESS2012), e funcionou (obviamente).

Frederik Struck-Schøning
fonte
2
Isso me indicou a direção certa para o meu problema. Recebi o mesmo erro do pôster original, mas foi porque estava tentando restaurar um backup do SQL Express 2012 para uma instância do SQL Server 2008. Compreensivelmente, isso não é aconselhável, infelizmente o erro não foi descritivo o suficiente para chegar ao problema raiz.
LeastOne
1
Uau! Instalei muitas correções no site, mas esse erro não foi resolvido. Eu vi essa resposta e entrei na instância do Sql Server 2012 e tentei restaurar, FUNCIONOU! Huh obrigado :)
Ali Baig
1
Então você está dizendo que não pode restaurar da versão completa para a versão expressa?
Zapnologica
7

Meu problema era que meu usuário estava no grupo Administradores internos e nenhum usuário com função Sysadmin no SQL Server. Acabei de iniciar o Management Studio como administrador. Dessa forma, foi possível restaurar o banco de dados.

Liz
fonte
Usei o seguinte artigo para criar um novo usuário sysadmin (consulte a Seção 2 usando o modo de usuário único): wikihow.com/Reset-SA-Password-in-Sql-Server
Savage
6

FYI: Descobri que, ao restaurar, precisava usar as mesmas credenciais (Usuário do SQL) para fazer login no SSMS. Eu tentei a restauração usando uma conta de autenticação do Windows.

Ben Ripley
fonte
6

No meu caso, foram as permissões e o fato de eu ter usado "Restaurar arquivos e grupos de arquivos ..." em vez de simplesmente "Restaurar banco de dados ...".

Isso fez a diferença.

insira a descrição da imagem aqui

Brian
fonte
6

Para mim, é uma questão de privilégio do usuário. Entrei com um usuário e está funcionando bem.

Sharfi
fonte
5

Para mim, o problema era ter o arquivo .BAK localizado em uma pasta criptografada no servidor. Mesmo com todos os direitos de administrador, eu nunca consegui o SSMS para ler o arquivo. Mover o .BAK para uma pasta não criptografada resolveu meu problema. Observe que após mover o arquivo, você também pode alterar as propriedades do arquivo real para remover a criptografia (clique com o botão direito do mouse, propriedades, avançado, desmarque a opção "criptografar conteúdo para proteger os dados".

GadgetNC
fonte
3

Eu tive o mesmo problema com o SQL Server 2014 (o Management Studio não conseguia ver a pasta na qual o arquivo de backup residia, ao tentar localizá-lo para uma operação de restauração). Esse tópico continha a resposta que resolveu meu problema. Citar:

A conta de serviço do SQL Server pode ser encontrada em Iniciar-> Painel de Controle-> Ferramentas Administrativas-> Serviços. Clique duas vezes no serviço SQL Server-> guia Logon. Você usará a "conta Sistema local" ou "Esta conta" para definir uma conta específica. Se você estiver usando a conta Sistema Local, não poderá fazer referência a backups que não são locais para o servidor. Se, em vez disso, você definiu a conta a ser usada, esta é a conta que precisa ter acesso ao local do arquivo de backup. Sua capacidade de acessar os backups usando seu logon pessoal é irrelevante; é a conta do SQL Server usada, mesmo que você esteja iniciando o backup. Seu pessoal de TI deve poder determinar quais direitos são concedidos a cada conta.

Espero que ajude alguém.

BCA
fonte
compreenda que você citou a fonte aqui mesmo, muito mais fácil de usar essas informações sem sair desta página.
Qxotk
3

No meu caso (nova instalação do servidor sql, usuário recém-criado), meu usuário simplesmente não tinha a permissão necessária. Entrei no Management Studio como sa , depois fui para Segurança / Logins, clique com o botão direito do mouse em meu nome de usuário, Propriedades e, na seção Funções do Servidor, verifiquei sysadmin.

Marc.2377
fonte
2

Para mim, foi porque o arquivo de backup ainda estava aberto por outro processo. Aqui está o log de eventos:

BackupDiskFile :: OpenMedia: O dispositivo de backup 'X: \ Backups \ MyDatabase \ MyDatabase_backup_2014_08_22_132234_8270986.bak' falhou ao abrir. Erro do sistema operacional 32 (O processo não pode acessar o arquivo porque está sendo usado por outro processo.).

Simplesmente fechar e reabrir o Sql Server Management Studio resolveu o problema (então, obviamente, era o ssms.exe que tinha o controle ..)

JohnZaj
fonte
1

Outro motivo potencial para essa falha parece ser o Google Drive. O Google Drive está compactando arquivos bak ou algo assim. Portanto, se você deseja transferir um backup de banco de dados pelo Google Drive, parece que deve compactá-lo primeiro.

James Gould
fonte
1

Se você deseja substituir o banco de dados existente, use completamente a opção WITH REPLACE :

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

No meu caso, foi um problema de permissões.

insira a descrição da imagem aqui

Para o usuário do Windows, eu estava usando não tinha dbcreatorfunção.

Então eu segui os passos abaixo

  1. Conecte- sase ao servidor SQL
  2. Expandir Securityno Pesquisador de Objetos
  3. Expandir Logins
  4. Clique com o botão direito do mouse no usuário do Windows em questão
  5. Clique em Propriedades
  6. Selecione Server Rolesentre as Select a pageopções
  7. Verificar dbcreatorfunção para o usuário
  8. Clique OK

insira a descrição da imagem aqui

Devraj Gadhavi
fonte
0

Usando o SQL Server 2012 Express.

Meu erro (no SQL Manager - Diálogo Restaurar Banco de Dados):

No backupset selected to be restored

Além disso, não foram mostrados conjuntos de backups na lista a serem selecionados.

O problema foi que eu havia movido 1 dos 5 arquivos de backup para uma pasta em que o usuário de logon do serviço do SQL Server não tinha permissões - tentei adicionar esse usuário, mas não consegui colocar o usuário NT Service \ MSSQL $ SQLEXPRESS na segurança Lista.

Movi o arquivo na pasta Documentos para o usuário do serviço, e isso permitiu ler todos os arquivos que eu selecionara - 4 naquele momento - e o erro foi alterado para "falta de conjunto de mídias" - e procurei outro arquivo de backup e quando adicionei que consegui restaurar.

As respostas nesta pergunta me ajudaram a procurar os lugares certos e a trabalhar para encontrar uma solução.

condiosluzverde
fonte
0

Para mim, foi uma questão de permissão. Instalei o SQL Server usando uma conta de usuário local e antes de ingressar no domínio da minha empresa. Mais tarde, tentei restaurar um banco de dados usando minha conta de domínio que não possui as permissões necessárias para restaurar os bancos de dados do SQL Server. Você precisa corrigir a permissão da sua conta de domínio e conceder permissão de administrador do sistema na instância do SQL Server que você possui.

Anas Ghanem
fonte
0

Recebi a mesma mensagem de erro, apesar de fazer backup e restaurar na mesma máquina.

A questão era daqui: quando o backup, eu tinha 2 itens na caixa de destino.

Portanto, a correção seria: verifique se há apenas 1 item na caixa 'destino'. Remova todos os outros, se houver.

Danniel Little
fonte
0

Corri para o mesmo problema. Execute o SSMS como administrador, clique com o botão direito do mouse e faça a restauração do banco de dados. Deveria trabalhar.

Jonny Boy
fonte
0

Acho que recebo o prêmio pelo maior motivo para obter esse erro. Na caixa de diálogo Restaurar banco de dados, o menu suspenso do banco de dados em Origem está cinza e pensei que estava desativado. Pulei para a lista suspensa do banco de dados em Destino, pensando que era a fonte e fiz uma seleção. Isso fará com que essa mensagem de erro seja exibida.

Gabe
fonte