Li que é possível restaurar um banco de dados no SQL Server, desde que você esteja restaurando de uma versão mais antiga para outra, por motivos de compatibilidade com versões anteriores.
Alguém sabe de imediato se você pode restaurar um banco de dados a partir de um arquivo * .bak para diferentes edições do SQL Server? Estamos movendo um banco de dados muito grande via FTP que levará alguns dias, portanto, preferimos fazer isso apenas uma vez. Se ninguém responder no momento em que transferirmos o banco de dados via FTP, obviamente tentaremos isso e veremos se funciona testando e responderemos à nossa própria pergunta.
Abaixo está uma consulta para obter detalhes da versão do SQL Server. O productversion
está no formato {major revision}.{minor revision}.{release revision}.{build number}
. No meu caso, o {release revision}
valor tem 5500
para a origem e 5512
o destino. Então isso parece bem. No entanto, o edition
é diferente.
Inquerir:
SELECT
SERVERPROPERTY('productversion'),
SERVERPROPERTY('productlevel'),
SERVERPROPERTY('edition')
Banco de dados de origem:
10.0.5500.0
SP3
Developer Edition (64-bit)
Banco de dados de destino:
10.0.5512.0
SP3
Enterprise Edition (64-bit)
fonte
Respostas:
De desenvolvedor para empresa, tudo bem, verifique se, se você estiver usando o licenciamento de processador, possui licenças no servidor de destino para cobrir todas as CPUs. E não basta apenas escondê-los do SQL; se eles estão fisicamente conectados à máquina, você é responsável por eles.
Além disso, quando você passa de uma versão inferior para uma versão superior, sua versão do banco de dados aumentará. Existem alguns cenários em que isso pode ser problemático - por exemplo, se você estiver usando o suporte de 15.000 partições em uma versão específica de 2008, não funcionará quando você atualizar para uma versão específica do 2008 R2. Você também pode confiar em otimizações (e existem soluções alternativas) que são realmente erros em uma versão mais antiga, mas que foram corrigidas na nova versão, e isso pode levar a um desempenho pior. Também é vital revisar todos os sinalizadores de rastreamento em uso na origem e determinar se eles também devem ser ativados no destino. Não importa trabalhos, logins etc.
Claro que você não pode voltar atrás. Eu nunca tentei um downgrade menor como 10.0.5512 -> 10.0.5500, mas definitivamente não é possível entrar no service pack ou na versão. Portanto, se você tiver um banco de dados de 2012 na sua instância do Developer Edition e quiser colocá-lo na sua instância de 2008 em produção, terá seu trabalho preparado para você (veja aqui e aqui ) - especialmente se você tiver usado os recursos de 2012 .
Mas, para cobrir outros casos que possam levar as pessoas a essa pergunta (por exemplo, alguém quer ir de Desenvolvedor -> Padrão ou Empresa -> Express ou o que você tem) ...
Existem outras edições -> atualizações de edição que não vão tão bem, por exemplo, do desenvolvedor -> Express, se você usou algum recurso que não é suportado no Express (e o mesmo vale para qualquer edição que não seja a Enterprise). Alguns exemplos de recursos que você não poderá usar em edições de nível inferior (nesse caso, a restauração desaparecerá no momento em que tentar colocar o banco de dados online):
Não sei se há uma maneira de dizer isso diretamente do arquivo .BAK (tenho certeza de que há alguma mágica que pode ser extraída dos cabeçalhos de página em algum lugar ou se você tem um fim de semana para gravar com um editor hexadecimal) , mas enquanto o banco de dados ainda estiver intacto na instância de origem, você sempre poderá fazer o seguinte para verificar se está usando algum recurso disponível por causa do SKU em que está:
Não tenho certeza se a Auditoria do SQL Server deve estar nessa lista - a exclusividade de edição desse recurso foi alterada, portanto, provavelmente depende do que você está fazendo com ele. Há outras coisas que você pode estar usando, mas não aparece na DMV (algumas porque estão no seu código, que a DMV não analisa) e outras porque seu banco de dados depende de coisas externas, como o SQL Server Agent , Service Broker, etc.):
Também há casos em que você não poderá ir do Developer para o Express devido às limitações de tamanho do arquivo (os bancos de dados do Express estão limitados a 10 GB no tamanho total do arquivo de dados).
É claro que pode haver outras dicas sobre as quais você não será avisado - elas não impedirão a migração, mas podem levar a um desempenho muito diferente no destino. Exemplos:
NOEXPAND
. E você pode nem estar ciente de que esse recurso é o motivo pelo qual suas consultas diminuem de repente.ATUALIZAÇÃO com base nesta duplicata :
Pode haver casos em que você tenta restaurar um banco de dados de uma determinada edição para uma edição menor (mesmo na mesma versão) e obtém erros que são menos que úteis :
Isso não é muito intuitivo. No entanto, se você olhar mais profundamente nos logs de eventos do SQL Server, verá erros mais úteis (apenas um exemplo):
Agora, isso não é bem verdade - você também pode restaurar a Evaluation Edition ou Developer Edition, mas isso não vem ao caso. Para restaurar esse banco de dados, você basicamente tem duas opções:
Uma variação em (2) seria apenas remover o particionamento e outros recursos no banco de dados de origem e fazer outro backup. Mas se não está quebrado ...
fonte
Developer e Enterprise são o mesmo software, apenas com contratos de licenciamento diferentes.
Você deve ficar bem ao restaurar esse banco de dados ao seu destino.
fonte