Eu tenho um banco de dados em uma instância do SQL Sever 2012 que gostaria de copiar para um servidor de 2008. O servidor de 2008 não pode restaurar os backups criados por um servidor de 2012 (tentei).
Não consigo encontrar nenhuma opção em 2012 para criar um backup compatível com 2008. Estou esquecendo de algo?
Existe uma maneira fácil de exportar o esquema e os dados para um formato independente de versão que eu possa importar para 2008?
O banco de dados não usa nenhum recurso específico de 2012. Ele contém tabelas, dados e procedimentos armazenados.
Aqui está o que eu tentei até agora
Tentei Tarefas → Gerar scripts no servidor 2012 e consegui gerar o esquema (incluindo procedimentos armazenados) como um script SQL. Isso não incluiu nenhum dado.
Depois de criar esse esquema na minha máquina de 2008, consegui abrir o assistente "Exportar Dados" na máquina de 2012 e, depois de configurar o 2012 como máquina de origem e o 2008 como máquina de destino, fui apresentada uma lista de tabelas que poderia copiar. Selecionei todas as minhas tabelas (mais de 300) e cliquei no assistente. Infelizmente, ele passa idades gerando seus scripts e falha com erros como "Falha ao inserir na coluna somente leitura 'FOO_ID'".
Eu também tentei o "Copy Database Wizard", que afirmava ser capaz de copiar "de 2000 ou posterior a 2005 ou posterior". Tem dois modos:
"Desanexar e anexar", que falhou com erro:
Message: Index was outside the bounds of the array. StackTrace: at Microsoft.SqlServer.Management.Smo.PropertyBag.SetValue(Int32 index, Object value) ... at Microsoft.SqlServer.Management.Smo.DataFile.get_FileName()
Método de Objeto de Gerenciamento SQL que falhou com erro
Não é possível ler a propriedade IsFileStream. Esta propriedade não está disponível no SQL Server 7.0. "
Respostas:
Clique com o botão direito do mouse no banco de dados no SQL Management Studio 2012 e escolha "Tarefas -> Gerar scripts". Clique além da tela de boas-vindas, escolha "script de banco de dados inteiro e todos os objetos de banco de dados". Na página "especificar como os scripts devem ser salvos", clique em "avançado". Em "Geral" na página de propriedades pop-up, altere "Tipos de dados para script" de "Somente esquema" para "Esquema e dados" e altere "Script para versão de servidor" de "2012" para "2008".
Em seguida, tive que encontrar uma maneira de editar o início desse arquivo SQL massivo, para ajustar como o banco de dados seria criado - veja este q: https://stackoverflow.com/questions/102829/best-free-text-editor -supporting-more-than-4gb-files
E, finalmente, tive que encontrar uma maneira de executar o script SQL, que era muito grande para abrir no SQL Management Studio - veja este q: https://stackoverflow.com/questions/431913/how-do-you-run- um arquivo-300mb-ms-sql-sql
fonte
Para migrações SQL, use o Assistente de Migração de Banco de Dados SQL de código aberto e gratuito.
Eu tinha um banco de dados de 5 GB com alguns ~ 10 milhões de registros e tentei a rota via Generate Script e a executei com sqlcmd.exe. Primeiro de tudo, o script gerado nem sempre estava funcionando corretamente. Em segundo lugar, o sqlcmd.exe também pode falhar em arquivos grandes, reclamando da memória disponível. o osql.exe funciona, mas leva apenas idades (e tem os mesmos argumentos da linha de comando).
Então me deparei com uma ferramenta maravilhosa para migrar o SQL Server para os bancos de dados do SQL Azure. Isso funciona para o SQL Server para o SQL Server também, por exemplo, se você deseja migrar um banco de dados do SQL 2012 para o 2008 R2. Ele usa o bcp.exe, que usa cópia em massa. Existe uma versão da GUI e da linha de comando (Lote) disponível e é de código aberto. Consulte http://sqlazuremw.codeplex.com/ . No meu caso, a operação levou 16 minutos.
Em uma tela avançada, você pode selecionar se seu destino é o SQL Server, não o SQL Azure.
fonte
Sou iniciante no SQL, mas consegui migrar de 2012 para 2008. Para isso, usei o utilitário de importação e exportação do SQL. Eu escolhi o servidor SQL 2012 e o banco de dados que quero migrar e, finalmente, o servidor 2008 e criei um novo banco de dados como meu banco de dados de destino. Funcionou.
fonte
Experimente as ferramentas APEXSQL . Eles têm uma ferramenta que criará scripts para o banco de dados e também os dados.
fonte
O problema é que ele não pode inserir as colunas de ID, portanto:
fonte
Segui a solução de Rich https://superuser.com/a/469597/312310 acima e funcionou muito bem! Obrigado - Ainda não posso votar aqui!
As etapas extras que eu tive que fazer para que isso funcionasse são:
Altere os nomes dos arquivos lógicos e verifique se o caminho está correto. Eu também tive que alterar o nome do log gerado, caso contrário ele tentou sobrescrever o arquivo mdf pelo log e, em seguida, lançou este erro https://stackoverflow.com/questions/7534664/sql-server-script-error-database-is- em uso
Eu tive que comentar a seção gerada e adicionar as permissões de usuário manualmente depois
Executei tudo e eis que agora posso restaurar meu novo banco de dados do Umbraco 7.1.2 para o meu servidor Web que possui apenas o SQL Server 2008 R2!
fonte
Dê uma olhada no xSQL Schema Compare e no xSQL Data Compare . Você pode primeiro sincronizar o esquema com a comparação de esquemas e depois copiar os dados.
Isenção de responsabilidade: sou afiliado ao xSQL.
fonte