Avaliar e converter seus bancos de dados

Concluído

Suponha que você seja um administrador de banco de dados para uma empresa jurídica e tenha executado uma auditoria no banco de dados. Após essa operação, você forneceu os resultados e as recomendações para a avaliação da gerência. Eles tomaram nota do seu conselho para atualizar as versões sem suporte do SQL Server imediatamente e perguntaram como você fará para migrar os bancos de dados. O orçamento ainda não está definido, e seu gerente afirma que possivelmente você não obterá fundos para novas licenças.

Você tem servidores de banco de dados ativos que executam SQL Server 2000, SQL Server 2008 e SQL Server 2012.

Alguns bancos de dados terão que ser migrados para instâncias existentes do SQL Server 2012 ou SQL Server 2016. Há uma necessidade urgente de atualizar versões sem suporte. Você explorará todas as opções disponíveis para estar pronto quando receber a aprovação.

Aqui, você explorará os principais caminhos de atualização disponíveis para diferentes versões do SQL Server.

Caminhos de atualização disponíveis para versões diferentes

Quanto mais antigo for o banco de dados que você deseja migrar, menos opções estarão disponíveis. Conforme discutido anteriormente, se você quiser atualizar bancos de dados do SQL Server 2000, será necessário executar uma atualização provisória para o SQL Server 2008 antes de alternar para qualquer versão posterior.

Backup e restauração

Você pode usar a opção de backup e restauração em qualquer versão do SQL Server de 2005 até 2016. Não é possível fazer backup e restauração de nenhum dos bancos de dados do sistema, como mestre, modelo, msdb ou temp. Faça um backup do banco de dados do servidor de origem e restaure-o no servidor de destino. Por exemplo, para alterar a compatibilidade de um banco de dados chamado Serviços de Atendimento ao Consumidor para o SQL Server 2016, você executaria o seguinte comando:

ALTER DATABASE [CustomerServices] SET COMPATIBILITY_LEVEL = 130

Verifique se todos os objetos no banco de dados são compatíveis com o ambiente de destino, caso contrário, não será possível alterar o nível de compatibilidade. Você precisará remover todos os recursos preteridos, como consultas para exibições de gerenciamento que foram renomeadas ou substituídas, procedimentos armazenados do sistema atualizados ou tipos de dados preteridos.

Carregamento em massa

As versões antigas como o SQL Server 2005 podem usar a operação de carregamento em massa para copiar dados em um banco de dados de destino. Ao criar o novo banco de dados no servidor de destino, você poderá usar o BCP (programa de cópia em massa) para executar um script para copiar os dados. O BCP é uma solução eficiente para copiar grandes volumes de dados. Se você não estiver familiarizado com a escrita de scripts do BCP, considere o tempo para aprender.

Replicação transacional

A replicação permite que você atualize os bancos de dados do SQL Server, mas você precisará de conhecimento prático de como a replicação transacional funciona. A replicação permite que você tenha uma combinação de versões dentro da topologia, portanto, ela já é voltada para habilitar atualizações. O Distribuidor deve ser da mesma versão do SQL Server que a do Publicador ou ser de uma versão mais recente. O Assinante pode ser de até duas versões mais recentes ou anteriores à do Publicador. A replicação oferece dois caminhos de atualização:

  • Lado a lado: com a replicação lado a lado, você cria um ambiente paralelo com a versão de destino do SQL Server. Em seguida, você move os bancos de dados, logons, trabalhos agendados e quaisquer outros objetos para o novo ambiente.
  • In-loco: uma atualização de replicação in-loco substitui a instalação existente e atualiza os bancos de dados de sistema e de usuário.

Se você já tiver a replicação em vigor, deverá considerar uma dessas opções para concluir a migração.

Grupos de disponibilidade

Se você usou o grupo de disponibilidade Always On introduzido no SQL Server 2012, poderá fazer failover para um SQL Server 2014 ou posterior secundário. O primário deve executar o SQL Server 2012 SP2 ou posterior, e o failover pode ser manual ou automático. Quando você faz failover para uma versão posterior, e a versão mais antiga do SQL Server se torna o servidor secundário, ela não pode receber alterações do primário.

Espelhamento de banco de dados

Você pode usar o espelhamento de banco de dados para atualizar entidades de segurança que executam o SQL Server 2008 SP3, SQL Server 2008 R2 SP2 ou posterior, para um espelho do SQL Server 2014 ou posterior. Assim como nos grupos de disponibilidade, quando você faz o failover para a versão mais recente do SQL Server e a versão mais antiga se torna o espelho, ela não receberá alterações da entidade de segurança.

Envio de logs

Você pode usar o envio de logs para atualizar se a entidade de segurança estiver executando SQL Server 2008 SP3, SQL Server 2008 R2 SP2 ou superior, para um secundário executando o SQL Server 2014 ou superior. Após o failover para a versão mais recente do SQL Server, a versão mais antiga em execução como a secundária não receberá as alterações do primário.

Assistente de Migração de Dados

O AMD (Assistente de Migração de Dados) é compatível com versões do SQL Server de 2005 em diante. Ao usar o assistente, você se conecta à instância do e seleciona o banco de dados que planeja atualizar. Você informa ao assistente a versão de destino do SQL Server, e ele analisa o tamanho e o esquema do banco de dados. O assistente também faz recomendações para a sua atualização. Após a análise, o AMD fornece um relatório de compatibilidade, que realça as alterações interruptivas, as alterações comportamentais e os recursos preteridos para que esses problemas sejam corrigidos.

Screenshot of the Data Migration Assistant with the New assessment dialog opened.

O AMD também faz recomendações sobre como o banco de dados usa recursos de desempenho, armazenamento e segurança na versão de destino. Esses resultados podem ser exportados para um arquivo CSV ou JSON para referência futura. Essa situação é ideal quando você tem um grande número de bancos de dados para atualização e precisa de uma lista concisa de tarefas para evitar falhas no aplicativo após a atualização. Então, você usa o AMD para atualizar seu banco de dados e logons para o servidor de destino.

Escolher um método de atualização

No escritório de advocacia, em relação aos bancos de dados no SQL Server 2000, você deve começar atualizando para o SQL Server 2008 usando o método de backup e restauração. Certifique-se de definir o nível de compatibilidade do banco de dados como 100 após a migração, para que ele possa ser atualizado posteriormente.

Quando concluir a atualização inicial do SQL Server 2000, todos os seus bancos de dados estarão no SQL Server 2008 e posterior, mas você ainda terá uma situação complexa.

O método consistente mais simples para atualizar todos esses bancos de dados é usar o AMD, que pode atualizar qualquer banco de dados hospedado no SQL Server 2005 e posterior. Essa ferramenta fornece uma lista completa dos problemas de compatibilidade que você deve corrigir antes de atualizar um banco de dados. Sua equipe pode trabalhar nessa lista para resolver todos os problemas antes de usar o AMD para fazer a atualização.

Vários métodos estão disponíveis para atualizar seus SQL Servers. O caminho a ser escolhido dependerá da versão da qual você está atualizando e se há um mecanismo de failover que você deverá usar para a atualização. O AMD é compatível com atualizações de banco de dados do SQL Server 2005 em diante. Se você tiver versões diferentes em sua estrutura de banco de dados, essa ferramenta será ideal para a atualização de um ponto central.

O mais útil é que o AMD realça os recursos preteridos em bancos de dados mais antigos para que você possa ver o código que será interrompido, antes de começar a atualização. O AMD também sugere recursos que aumentarão a segurança e o desempenho, e você pode exportar os resultados.