Importar arquivo .bak para um banco de dados no SQL server

230

Eu tenho um arquivo com .bakextensão.

Como posso importar esta data para um banco de dados no SQL Server?

alex
fonte
Suponho que você esteja usando o MSSQL, aqui está um tópico explicando algumas maneiras de restaurar.
8119 Andrew Keith
Você pode criar um banco de dados vazio, e restaurar os dados para o banco de dados vazio, usando o seu bak
Michel Ayres
A maneira mais fácil é a terceira resposta: clique com o botão direito do mouse em bancos de dados, importe, dispositivo, selecione o arquivo .bak e finalize.
Mafii 18/08/19
Alguém pode expandir a resposta para uma solução otimizada para automação? Passar pela interface do usuário e fazer vários cliques não é muito eficiente.
L. Holanda

Respostas:

251

No SQL Server Management Studio

  1. Clique com o botão direito do mouse em Bancos de dados no painel esquerdo (Pesquisador de Objetos)
  2. Clique em Restaurar banco de dados ...
  3. Escolha Dispositivo , clique em ...e adicione seu arquivo .bak
  4. Clique em OK e depois em OK novamente

Feito.

Marcelo Mason
fonte
4
Isso funciona como um encanto. Essas são excelentes instruções simplificadas e são essencialmente as mesmas instruções do link oficial da Microsoft indicado na resposta mais votada aqui.
Leonardo Lopez
3
Se isso falhar, você provavelmente precisará apagar um banco de dados existente.
DigitalDesignDj
3
Isso não está funcionando para mim. Aponto para a pasta correta e ela nem vê os arquivos. Eu colo o nome exato do arquivo na caixa de diálogo e ele diz que o arquivo não existe. Além disso, a caixa de diálogo vê uma unidade que não existe no meu servidor. O banco de dados se lembra do local do último backup e aceitará apenas uma restauração a partir desse ponto? Acho muito estranho que eu não possa selecionar um arquivo de backup para restaurar.
James James
13
Meu arquivo .BAK estava no diretório "Downloads" que existia abaixo da minha conta de usuário. Eu tive que mover o arquivo .BAK para a raiz do C: para que esta ferramenta o veja e me permita restaurá-lo. Os arquivos abaixo do meu usuário simplesmente não foram vistos por algum motivo.
jeremysawesome
6
Isso não funciona. Clico com o botão direito do mouse em "Bancos de dados", mas não há "Restaurar banco de dados ...".
user34660
53

Arquivos .bak são backups de banco de dados. Você pode restaurar o backup com o método abaixo:

Como restaurar um backup de banco de dados (SQL Server Management Studio)

Jon Schoning
fonte
8
Isso não funciona. O artigo diz: "... 2) Expanda Bancos de Dados. Dependendo do banco de dados, selecione um banco de dados do usuário ou expanda Bancos de Dados do Sistema e selecione um banco de dados do sistema. 3) Clique com o botão direito do mouse no banco de dados , aponte para Tarefas e clique em Tarefas. Restaurar." NÃO! Você não pode clicar com o botão direito do mouse em um banco de dados que não existe! Você está, afinal, tentando restaurar ou importar o banco de dados especificado. Como você pode clicar com o botão direito do mouse em um banco de dados que não está carregado? Bizarro do MSDN e agravante da funcionalidade de restauração no SSMS é declarado, mas não funciona. Por quê? Felizmente, os comandos SQL que outros dão aqui funcionam.
Nicholas Petersen
14
Há um artigo diferente para restaurar para um novo banco de dados encontrado aqui: msdn.microsoft.com/en-us/library/ms186390(v=sql.90).aspx
Jon Schoning
35
RESTORE FILELISTONLY 
FROM DISK = 'D:\3.0 Databases\DB.bak' 

RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak' 

e você precisa mover arquivos mdf, ndf e ldf apropriados usando

 With Move 'primarydatafilename' To 'D:\DB\data.mdf', 
 Move 'secondarydatafile'To 'D:\DB\data1.ndf', 
 Move 'logfilename' To 'D:\DB\log.ldf'
RameshVel
fonte
1
Isso foi muito útil para mim, pois queria restaurar um arquivo .bak em um contêiner do Docker sql com um host do macOS usando o Azure Data Studio. Tudo o que eu precisava fazer era copiar o .bak para o contêiner, ajustar o caminho e alterar para /, e consegui restaurar com êxito.
andrewb
Ainda bem que ajudou @andrewb :)
RameshVel
30

Você pode simplesmente restaurar esses arquivos de backup do banco de dados usando métodos nativos do SQL Server, ou pode usar a ferramenta ApexSQL Restore para anexar rapidamente virtualmente os arquivos e acessá-los como bancos de dados totalmente restaurados.

Isenção de responsabilidade: trabalho como engenheiro de suporte ao produto no ApexSQL

Ivan Stankovic
fonte
18

Em vez de escolher Restaurar banco de dados ..., selecione Restaurar arquivos e grupos de arquivos ...

Em seguida, insira um nome de banco de dados, selecione o caminho do arquivo .bak como a fonte, marque a caixa de seleção restaurar e clique em OK. Se o arquivo .bak for válido, ele funcionará.

(Os nomes das opções de restauração do SQL Server não são intuitivos para o que deve ser uma tarefa muito simples.)

James Lawruk
fonte
Este é um bom conselho, fiz isso e informou que a restauração foi bem-sucedida. Mas um pouco de problema ainda permanece ... o banco de dados não está listado no explorador de objetos. Eu tento "anexar" e ele ainda tem o arquivo .mdf correto disponível (presumo que um produto da restauração). Se eu tentar anexar, ele gera um erro que já está em uso. Você tem alguma dica para esta etapa?
AlanSE 26/02
Certifique-se de fazer uma atualização no final para ver seu novo banco de dados. Essa pode ser a solução mais rápida para colocar em funcionamento.
precisa saber é o seguinte
Esta é a opção que funcionou para mim quando se quer importar o mesmo bak banco de dados como um novo banco de dados localmente
Gurnzbot
7
  1. Conecte-se ao servidor que você deseja armazenar seu banco de dados
  2. Clique com o botão direito do mouse em Banco de Dados
  3. Clique em Restaurar
  4. Escolha o botão de opção Dispositivo na seção de origem
  5. Clique em Adicionar.
  6. Navegue até o caminho em que seu arquivo .bak está armazenado, selecione-o e clique em OK
  7. Digite o destino do seu DB
  8. Digite o nome pelo qual você deseja armazenar seu banco de dados
  9. Clique OK

Feito

Yash Saraiya
fonte
4

Basta usar

sp_restoredb 'Nome do seu banco de dados', 'Localização do qual você deseja restaurar'

Exemplo: sp_restoredb 'omDB', 'D: \ abc.bak'

Omprakash tomar
fonte
qual é a diferença entre isso e RESTORE DATABASEcomo em msdn.microsoft.com/en-us/library/ms178099(v=sql.105).aspx ?
Unhammer # /
1
Restaurar banco de dados execute a operação de restauração apenas se a estrutura do seu banco de dados for igual ao arquivo de backup, mas sp_restoredbexecute a restauração mesmo que o banco de dados tenha estrutura diferente ou totalmente vazio (novo).
Omprakash tomar
3
  1. Copie o arquivo .bak de backup no seguinte local do seu pc: C: \ Arquivos de Programas \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA
  2. Conecte-se ao servidor que você deseja armazenar seu banco de dados
  3. Clique com o botão direito do mouse em Banco de Dados
  4. Clique em Restaurar
  5. Escolha o botão de opção Dispositivo na seção de origem
  6. Clique em Adicionar.
  7. Navegue até o caminho em que seu arquivo .bak está armazenado, selecione-o e clique em OK
  8. Digite o destino do seu DB
  9. Digite o nome pelo qual você deseja armazenar seu banco de dados
  10. Clique OK

As soluções acima ficaram em falta onde manter o seu arquivo de backup (.bak). Isso deve fazer o truque. Funcionou para mim.

Madhumita
fonte
1

Você pode usar o pacote de nós, se precisar restaurar frequentemente bancos de dados no processo de desenvolvimento.

Instalar:

npm install -g sql-bak-restore

Uso:

sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>

Argumentos:

  • caminho de percurso, caminho relativo ou absoluto para o arquivo
  • dbName, para qual banco de dados restaurar (!! o banco de dados com esse nome será excluído, se existir !!)
  • oldDbName, nome do banco de dados (se não souber, especifique algo e execute, você verá os bancos de dados disponíveis após a execução.)
  • owner, userName para criar e conceder a ele privilégios de db_owner (senha "1")

!! O utilitário de linha de comando sqlcmd deve estar na sua variável PATH.

https://github.com/vladimirbuskin/sql-bak-restore/

Vladimir Buskin
fonte
1

No Microsoft SQL Server Management Studio 2019:

insira a descrição da imagem aqui

Na janela Restaurar banco de dados:

  1. Escolha o dispositivo

  2. Escolha Adicionar e escolha o arquivo de destino

  3. OK para confirmar

  4. OK para confirmar a restauração

insira a descrição da imagem aqui

Weky
fonte