Arquivo .bak não visível em nenhum diretório do SSMS

46

Eu tenho um arquivo .bak criado hoje por outra pessoa, criado manualmente através do SSMS 2008 R2. Estou tentando restaurar manualmente o banco de dados, infelizmente o arquivo não aparece quando vou procurá-lo.

Posso criar um script do processo de restauração, mas já vi esse problema antes e não tenho certeza do que poderia fazer com que o .bak não aparecesse.

Sean Long
fonte
Vou escrever um script para a restauração, só quero saber o que está causando isso. É definitivamente um .bak, não um .bak.txt ou qualquer coisa.
30513 Sean Long
Então, você é capaz de procurar a pasta onde você sabe que o arquivo está e ele não está aparecendo? Ou você não consegue navegar para a pasta?
Aaron Bertrand
Posso navegar até a pasta, mas não vejo nenhum dos arquivos .bak. Verifiquei as permissões do usuário com o qual estou executando o SSMS, ele é um administrador local e o arquivo não está marcado como "oculto" ou algo assim.
Sean Long
Você pode postar uma captura de tela em algum lugar, mostrando a visão da pasta do Windows Explorer e a do SSMS? Explique também na pergunta o processo que você está usando para chegar a esta etapa.
Aaron Bertrand
1
(Observe também que a conta de serviço do SQL Server também deve ter permissões, não apenas o usuário do SSMS. Embora isso não deva impedir que os arquivos .bak sejam exibidos na lista antes de fazer qualquer coisa com eles.)
Aaron Bertrand

Respostas:

39

Tivemos o mesmo problema hoje. Acabou sendo um problema de permissão, conforme ilustrado em algumas das outras respostas. A diferença é que a conta que precisávamos adicionar era NT SERVICE\MSSQLSERVER.

Captura de tela

Identifiquei a conta comparando as permissões das permissões padrão da pasta Backup do SQL com a pasta que contém o arquivo de backup.

Adicionar a conta de serviço não é tão simples quanto parece. Aqui está o que funcionou para mim. (Server 2012 R2)

  1. Faça logon no servidor. (A alteração deve ser feita no servidor real, não através de um compartilhamento de rede.)
  2. Altere os locais para o nome do servidor local.
  3. Digite na NT SERVICE\MSSQLSERVERcaixa de nome. (Não clique em Verificar nomes)
  4. Clique OK. Você verá uma lista das contas de serviço correspondentes. Selecione MSSQLSERVER e clique em OK para aceitar a seleção.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Você deve ver a conta de serviço listada nas configurações de segurança e pode ajustar as permissões de acordo.

Depois de adicionar permissões (adicionei Controle total, para corresponder à pasta padrão de backup do SQL.) E reiniciar o SQL Server Management Console, consegui selecionar e restaurar meu arquivo de backup.

AdamsTips
fonte
superuser.com/questions/248315/… nos diz como listar contas de usuário em um computador. Para qualquer serviço nomeado s, há uma conta virtual nomeada NT Service\s, mesmo que o serviço não seja executado nessa conta.
Tahir Hassan
2
A conta que precisei adicionar foi NT Service\MSSQL$SQLSERVER2014, talvez porque SQLSERVER2014
chamei
16

Eu peguei isso hoje.

Desativei o compartilhamento de arquivos, a indexação e limpei todas as sessões abertas (pessoas conectadas para copiar backups), mas o problema não desapareceu.

Fui para o Windows Explorer, copiei os backups para outra pasta e naveguei para aquela através do Management Studio, e eu pude vê-la lá.

Excluiu a pasta original e a recriou, copiou o conteúdo novamente e navegou até os .bakarquivos e voltou ao normal.

Espero que isso ajude alguém.

user27816
fonte
1
ajudou! :)
Peter PitLock
5

Eu encontrei esse problema algumas vezes. O problema não está no SQL Server, mas na Permissão do Windows da pasta. Você precisa adicionar a permissão apropriada à pasta em que copiou o arquivo .bak (acho que a System Networkfunção).

A solução mais fácil é mover o arquivo para a pasta de backup padrão em Arquivos de Programas. Tem toda a permissão necessária. Para o SQL Server 2012, é

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup
Jackofall
fonte
Esta é uma ótima solução, porque não se está abrindo possíveis falhas de segurança no computador apenas para restaurar um arquivo.
Michael Potter
funciona muito bem, não há necessidade de políticas e outras coisas
Marin
3

Também me deparei com o mesmo problema hoje. Recebi um arquivo de backup para restaurar, mas ele não estava visível para mim durante a navegação. No entanto, eu consegui acessar o sistema de arquivos, mas usando o assistente de restauração SQL Server management Studio.

Depois de gastar alguns, descobri que é uma questão de permissões. O serviço SQL Server está sendo executado, Network Servicemas a Network Serviceconta não tinha permissões para acessar a pasta. Após a concessão das permissões para Network Service. O arquivo de backup estava visível para restauração.

Para mais detalhes, consulte o Blog .

Escorpião
fonte
2

Se você puder encontrá-lo no Windows Explorer, deverá escrever um RESTORE DATABASEcomando em vez de confiar na GUI desajeitada para encontrá-lo. Quem sabe qual código está acontecendo lá e por que ele pode não conseguir encontrar o arquivo - desculpe, eu só tenho uma solução alternativa e não uma solução.

Verifique também se o arquivo é realmente algo.bak e não algo.bak.txt (o Windows pode estar "prestativamente" escondendo a extensão de você. Eu odeio esse comportamento padrão.)

Aaron Bertrand
fonte
1

Isso aconteceu comigo hoje na minha caixa de desenvolvimento. No meu caso, a conta de serviço tinha permissões para a pasta, mas minha conta de usuário não. Depois de conceder permissões à minha conta para a pasta, pude ver os arquivos .BAK.

Chefe de Catering
fonte