Como restaurar um arquivo de backup de banco de dados do SQL Server de versão superior em um SQL Server de versão inferior?
Usando o SQL Server 2008 R2 (10.50.1600) , criei um arquivo de backup e agora quero restaurá-lo no SQL Server 2008 do meu servidor ativo (10.00.1600) .
Quando tentei restaurar o backup no SQL Server 2008, ocorre um erro, ou seja, Restore Failed
porque:
O backup do banco de dados foi feito em um servidor executando a versão 10.50.1600. Essa versão é incompatível com este servidor, que está executando a versão 10.00.1600.
Como faço para restaurar o arquivo de backup neste servidor?
sql-server
Oreo
fonte
fonte
Respostas:
Não, não é possível fazer o downgrade de um banco de dados. 10.50.1600 é a versão do SQL Server 2008 R2 . Não há absolutamente nenhuma maneira de restaurar ou anexar esse banco de dados à instância do SQL Server 2008 em que você está tentando restaurar (10.00.1600 é o SQL Server 2008). Suas únicas opções são:
fonte
Você pode usar a funcionalidade chamada Exportar aplicativo da camada de dados, que gera
.bacpac
dados e esquema do banco de dados.No servidor de destino, você pode usar a opção Importar aplicativo da camada de dados, que cria e preenche o novo banco de dados a partir do
.bacpac
arquivo pré-criadoSe você deseja apenas transferir o esquema do banco de dados, pode usar Extrair Aplicativo da Camada de Dados para criar arquivo e Implementar Aplicativo da Camada de Dados para implantar o esquema criado do banco de dados.
Eu tentei esse processo em diferentes versões do SQL Server do SQL 2014 para SQL 2012 e do SQL 2014 para SQL 2008R2 e funcionou bem.
fonte
sqlpackage.exe
linha de comando. Google para mais.Não necessariamente funcionará
Backup / Restauração - não funcionará quando o destino for uma versão anterior do MS SQL.
Copiar banco de dados - não funcionará quando o destino for o SQL Server Express: "O servidor de destino não pode ser uma instância do SQL Server 2005 ou posterior do Express".
Importação de dados - não copiará o esquema.
Vai funcionar
Geração de scripts - Tarefas -> Gerar scripts . Certifique-se de definir a versão de destino do SQL Server desejada na página Definir opções de script -> Avançado . Você também pode optar por copiar o esquema, os dados ou ambos. Observe que no script gerado, pode ser necessário alterar a pasta DATA para os arquivos mdf / ldf, se passar de não expresso para expresso ou vice-versa.
Serviços de publicação de banco de dados do Microsoft SQL Server - eu acho que vem com o SQL Server 2005 e superior. Baixe a versão mais recente aqui . Pré-requisitos:
sqlncli.msi
/sqlncli_x64.msi
/sqlncli_ia64.msi
,SQLServer2005_XMO.msi
/SQLServer2005_XMO_x64.msi
/SQLServer2005_XMO_ia64.msi
(faça o download aqui ).fonte
Aqui estão meus 2 centavos em diferentes opções para concluir isso:
Ferramentas de terceiros : provavelmente a maneira mais fácil de realizar o trabalho é criar um banco de dados vazio na versão inferior e usar ferramentas de terceiros para ler o backup e sincronizar o novo banco de dados recém-criado com o backup.
Red gate é um dos mais populares, mas existem muitos outros como ApexSQL Diff , ApexSQL Data Diff , Adept SQL , Idera …. Todas essas são ferramentas premium, mas você pode fazer o trabalho no modo de teste;)
Gerando scripts : como outros já mencionados, você sempre pode estruturar os dados e a estrutura usando o SSMS, mas é necessário levar em consideração a ordem de execução. Por padrão, os scripts de objetos não são ordenados corretamente e você terá que cuidar das dependências. Isso pode ser um problema se o banco de dados for grande e tiver muitos objetos.
Assistente de importação e exportação : essa não é uma solução ideal, pois não restaura todos os objetos, mas apenas as tabelas de dados, mas você pode considerá-lo para correções rápidas e sujas quando necessário.
fonte
Você não pode restaurar o banco de dados (ou anexar) criado na versão superior para a versão inferior. A única maneira é criar um script para todos os objetos e usar o script para gerar banco de dados.
Sim, agora você concluiu o Criar Script com Esquema e Dados do Banco de Dados.
fonte
Outra maneira de fazer isso é usar o recurso "Copiar banco de dados":
Localize clicando com o botão direito do mouse no banco de dados de origem> "Tarefas"> "Copiar banco de dados".
Você pode copiar o banco de dados para uma versão inferior da Instância do SQL Server. Isso funcionou para mim de um SQL Server 2008 R2 (SP1) - 10.50.2789.0 para o Microsoft SQL Server 2008 (SP2) - 10.0.3798.0
fonte
Você pode tentar isso.
fonte
Vamos para Tarefa-> Gerar Scripts ...
Em Avançado em "Tipos de dados para script", selecione
"Schema and data"
e tente executar esse script na sua versão inferior.fonte
Não é bonito, mas foi assim que concedeu que você tenha essa opção instalada na instalação do SQL 2008 R2.
1) Clique com o botão direito do mouse no banco de dados do SQL Server 2008 R2, em "Tarefas". "Gerar scripts" no assistente, selecione o banco de dados e os objetos inteiros na primeira etapa. Na etapa "Definir opções de script", você verá um botão "Avançado", selecione este e certifique-se de selecionar "Script para versão de servidor" = SQL Server 2008 "e não versão R2.Esta é uma etapa crucial, porque" importa dados " por si só não traz todas as chaves primárias, restrições e quaisquer outros objetos, como procedimentos armazenados ".
2) Execute o script SQL gerado na nova instância de instalação ou banco de dados SQL Express ou SQL Server 2008 usando a janela de consulta ou abra o script .sql salvo e execute e você deverá ver o novo banco de dados.
3) Agora clique com o botão direito do mouse no novo banco de dados e selecione "Tarefas" .. "Importar Dados .." escolha a origem como o banco de dados R2 e o destino como o novo banco de dados. "Copie dados de uma ou mais tabelas ou visualizações", marque a caixa de seleção superior para selecionar todas as tabelas e, em seguida, execute o pacote e você deverá ter tudo em uma versão mais antiga. Isso deve funcionar também para a versão 2005. Espero que isso ajude alguém.
fonte
você pode usar o BCP dentro e fora de pequenas tabelas.
Comando BCP OUT: -
Comando BCP IN: - Crie uma estrutura de tabela para Invoicescopy1.
fonte
Aprecio que esta é uma postagem antiga, mas pode ser útil que as pessoas saibam que o Assistente de Migração do Azure (disponível no Codeplex - não pode ser vinculado é como o Codeplex está no momento em que estou digitando isso) fará isso facilmente.
fonte
Você precisaria usar os assistentes de Importação / Exportação no SSMS para migrar tudo
Não há "downgrade" possível usando backup / restauração ou desanexar / anexar. Portanto, o que você precisa fazer é:
fonte
Você pode gerar script no menu Tarefa
Para referência detalhada
Como migrar um banco de dados SQL Server para uma versão inferior
fonte