SQL Server: Gerencie a migração

Migrar bancos de dados maciços nunca podem ser chamados uma tarefa fácil, mas a Microsoft tem uma ferramenta disponível que pode ajudar a aliviar a maneira e assegurar que você está pronto.

Welly Lee

A iteração mais recente do SQL Server, cujo codinome é "Denali," oferece muitos recursos interessantes e irá conduzir a muitas organizações para mover para o SQL Server. Mesmo com o desempenho e custo total de propriedade (TCO) vantagens para mover para o SQL Server, no entanto, algumas organizações podem ter preocupações sobre o custo e o risco para a migração de banco de dados.

Felizmente, a Microsoft fornece uma ferramenta, SSMA SQL Server Migration Assistant (Server), para automatizar o processo de migração. A mais recente SSMA Server v.5.1 (lançado este mês ao mesmo tempo com SQL Server Denali CTP3) suporta migração de bancos de dados Oracle, Sybase, MySQL e acesso ao SQL Server. Você pode usar SSMA Server para facilitar seu projeto de migração de banco de dados. Por exemplo, aqui está um olhar para o processo de migração de banco de dados Oracle — mas o processo e as etapas são as mesmas ao migrar de outros bancos de dados.

Avaliar seu banco de dados

SSMA Server automatiza a migração da maioria dos objetos de banco de dados, incluindo procedimentos armazenados e disparadores, funções, pacotes. Há alguns tipos de dados especiais como o tipo de objeto ou espaciais que não são suportados pela versão atual de SSMA Server. Além disso, você também pode ter instruções de PL/SQL complexas que não podem ser convertidas automaticamente. Você pode usar SSMA Server para executar uma avaliação da migração no banco de dados Oracle e determinar se o esquema de banco de dados contém tais declarações.

Os relatórios de resumo de avaliação contenham as seguintes informações:

  • Exibição de árvore do esquema: uma lista de objetos do esquema de banco de dados Oracle da fonte.
  • Taxa de conversão: a porcentagem de instruções que SSMA Server é capaz de converter automaticamente. Para este exemplo (ver Figura 1), a ferramenta de SSMA Server pode converter 99.39 por cento de todas as instruções no esquema Oracle fonte.
  • Contagem de objeto: o número de banco de dados de objetos encontrados no esquema Oracle e uma contagem de objetos "com erros" (mais sobre isso mais tarde).
  • **Resumo de mensagem de conversão:**uma descrição de problemas encontrados durante a migração o esquema Oracle da fonte.

Existem três tipos de mensagens de conversão você encontrará durante uma migração usando a ferramenta de SSMA Server: erro, aviso e informações:

  • Um mensagem de erro é disparado quando SSMA Server não é capaz de converter um objeto de banco de dados ou uma instrução dentro de um objeto de banco de dados.
  • A mensagem de aviso é disparado quando SSMA Server é capaz de converter a instrução de Oracle, mas a instrução convertida pode não produzir o mesmo resultado para alguns casos. Por exemplo, SSMA Server converte substr Oracle para SQL Server substring (). Na maioria dos casos, SUBSTRING () retornará as mesmas saídas. Existem algumas situações, no entanto, se os resultados forem diferentes. Por exemplo, a função substr Oracle suporta valores negativos para a posição do caractere. SUBSTR('TechNet',-3,3) retorna 'Net' em Oracle, enquanto SUBSTRING('TechNet',-3,3) retornará uma vazia Cadeia de caracteres em SQL Server.
  • Um mensagem de informação é de SSMA Server fornecer informações adicionais sobre como ele converte determinados objetos.

Figura 1 um olhar para a taxa de conversão ao converter de um banco de dados Oracle.

Cada mensagem de erro inclui um link que exibe o objeto que contém o erro. Há também uma comparação lado a lado com a declaração original à esquerda e aparência a instrução convertida no SQL Server (consulte Figura 2) no lado direito. A mensagem de erro também inclui uma estimativa de quantas horas de conversão manual normalmente seriam necessário para resolver o problema.

Figura 2 você ocasionalmente receberá uma mensagem de erro de migração.

A maioria das organizações freqüentemente executar avaliações contra uma série de esquemas de banco de dados Oracle. Eles vão utilizar a taxa de conversão total e o tempo total estimado de conversão manual para comparar e priorizar o esquema de banco de dados Oracle para migração.

Conversão de banco de dados esquema

SSMA Server dá-lhe muitas opções para a conversão de esquema. Por exemplo, você pode modificar o mapeamento de tipo de dados. SSMA Server fornece mapeamento de tipo de dados padrão entre Oracle e SQL Server. No entanto, você pode personalizar o mapeamento de tipo de dados para uma tabela específica, para todas as tabelas, para um objeto específico (como um procedimento armazenado ou função) ou para uso diferentes (tais como tipo de dados na coluna, tipo de dados na variável ou tipo de dados no parâmetro de entrada/saída de seu procedimento).

Converta a esquema de banco de dados clicando no botão "Converter esquema". Em seguida, você pode navegar para o objeto de banco de dados diferente e comparar o objeto de esquema original e o objeto convertido (consulte Figura 3)

Figura 3 Ver O esquema de conversão.

Quando um objeto contém uma instrução que não é capaz de converter automaticamente SSMA Server, a ferramenta irá adicionar uma descrição do erro de migração, comentar sobre a instrução específica ou substituí-lo com um tipo genérico. Esta abordagem de isolamento permite continuar com a migração de banco de dados e resolver o problema mais tarde.

Você também poderia resolver o problema e modificar a instrução diretamente de SSMA Server. Por exemplo, em Figura 3, há uma função definida pelo usuário chamada "Mandato". Isso retorna um tipo de dados INTERVAL que SQL Server não oferece suporte. Você pode modificar o tipo de retorno para o número (ver Figura 4) e reconverter a função. Isso remove o erro e converte o valor de retorno para float (53).

Figura 4 você pode modificar instruções em SSMA Server para resolver incompatibilidades.

Você também pode modificar instruções convertidas. Por exemplo, você pode substituir o tipo de retorno "float (53)" por "int". Note que qualquer modificação que você faz com SSMA Server é armazenada localmente. As alterações feitas para instruções de origem não são aplicadas para o esquema de banco de dados Oracle que tem em produção. Da mesma forma, todas as alterações feitas para o instrução SQL Server de destino não são imediatamente aplicadas ao servidor. Isso permite que você continue refinar e fazer as modificações necessárias para esquema convertida sem afetar o servidor de destino.

Você pode implantar o esquema convertida para destino SQL Server clicando com o nome de esquema na janela do Explorer de metadados do SQL Server. Você também pode gerar um script para criar as informações de esquema inteiro, que, em seguida, você pode implantar em seu servidor de destino (consulte Figura 5).

Figura 5 Implantando convertido esquema para SQL Server.

Migrando dados

Depois de criar a esquema de banco de dados no SQL Server de destino, você pode usar SSMA Server para migrar dados Oracle. SSMA Server não é a única opção para migração de dados, embora. Você também pode usar o SQL Server Integration Services (SSIS). No entanto, migração de dados com SSMA Server permite que você use o mesmo tipo de mapeamento para a conversão de esquema. Ele também lida com algumas das questões de migração de dados comuns ao migrar do Oracle para o SQL Server.

Por exemplo, a Oracle tem uma vasta gama de tipos de data com suporte do SQL Server. Por padrão, SSMA Server gera o erro de migração de dados quando ele encontra um caso. Você pode ter SSMA Server automaticamente converter valores de data fora do intervalo com NULL ou a data mais próxima que do SQL Server pode suportar. Você pode modificar essa configuração por meio de ferramentas | Configuração do projeto | Geral | Migração de dados (consulte Figura 6).

Figura 6 há opções para a manipulação de erros de migração de dados.

Depois de concluir a migração de dados, SSMA Server irá exibir um relatório com o número de linhas migradas, a taxa de sucesso e as vezes tomadas para migrar cada tabela (ver Figura 7).

Figura 7 SSMA Server irá dar-lhe um relatório completa de migração de dados.

Verificação da migração de banco de dados

Depois que você tiver migrado com êxito seu banco de dados, a próxima etapa é validação. Ao migrar do Oracle e Sybase, SSMA Server permite que você compare o banco de dados de origem e o banco de dados migrado. Você pode definir uma série de casos de teste; em seguida, SSMA Server executa os casos de teste sobre a origem e o banco de dados de destino. Ele irá comparar os resultados, bem como qualquer alteração os casos de teste feitos nas tabelas subjacentes.

Para definir um caso de teste, selecione novos casos de teste no menu testador. Um caso de teste Assistente o guiará através do processo de criação de um caso de teste. Você também pode selecionar objetos de banco de dados específico para testar. Por exemplo, existe um procedimento chamado ADD_EMPLOYEE. Este procedimento insere um novo registro na tabela de funcionários com base no valor de parâmetro de entrada. Você pode definir parâmetros de entrada específicos para usar no teste através da guia de chamar valores (consulte Figura 8). Você pode definir quantos valores de chamada conforme necessário.

Figura 8 especificando chamar valores no Assistente para o caso de teste.

Além de comparar a execução do objeto teste, SSMA Server também pode testar as alterações na tabela subjacente. Por exemplo, quando executar o ADD_EMPLOYEE procedimento armazenado, SQL Server irá inserir uma linha adicional na tabela EMPLOYEES. SSMA Server compara as linhas alteradas na tabela afetada entre a origem e o destino. Se necessário, você também pode especificar o nível de granularidade para a comparação (ver Figura 9).

Figura 9 especificando tabelas subjacentes para comparação.

A etapa final na definição do caso de teste é configurações adicionais. Uma configuração importante é saber se a reverter as alterações feitas a tabela de teste (consulte Figura 10). No meu exemplo, quando executar o ADD_EMPLOYEE procedimento armazenado, um novo registro será adicionado ao banco de dados do Oracle de origem e o banco de dados do SQL Server de destino. Se você selecionar a opção de reversão de dados, SSMA Server irá remover o valor inserido após a conclusão do teste.

Defining test case settings

Figura 10 Definindo caso de teste as configurações.

Depois de definir o caso de teste, você pode executá-lo tantas vezes quanto necessário. Para cada operação, você receberá um relatório de resultados de teste que compara resultados (ver Figura 11).

SSMA will give you a full test result report

Figura 11 SSMA Server irá dar-lhe um relatório de resultados de teste completo.

SSMA Server oferece excelente funcionalidade para automatizar a migração de banco de dados. Você pode usar a ferramenta para avaliar a complexidade do banco de dados você planeja migrar, converter o esquema de banco de dados, resolver problemas comuns de migração de banco de dados, migração de dados do banco de dados de origem e validar o banco de dados migrado.

A ferramenta foi projetada para migrar para o SQL Server, mas também oferece suporte à migração direta para SQL Azure (a partir de bancos de dados MySQL, Sybase e acesso). Ao migrar para SQL Azure, SSMA Server leva em conta os requisitos para a plataforma SQL Azure. Por exemplo, SQL Azure requer que suas tabelas possuem um índice clusterizado. Se a tabela de origem não inclui uma chave primária ou índice clusterizado, a ferramenta pode automaticamente adicionar uma coluna ROWID e defina o índice clusterizado na coluna durante a conversão.

Você pode baixar SSMA Server do site do Microsoft SQL Server. Não só é a ferramenta livre, mas você também pode obter suporte gratuito de e-mail do suporte e atendimento ao cliente Microsoft. Para obter mais informações sobre SSMA Server, visite o SSMA Server team blog para uma demonstração em vídeo e artigos, bem como orientações sobre como resolver problemas comuns de migração.

WellyLee

Welly Leeé gerente de programa sênior com a equipe do SQL Server Migration Assistant, e é o proprietário do recurso para a ferramenta de migração de banco de dados da Oracle e MySQL para SQL Server. Antes de se juntar à Microsoft em 2007, ele trabalhou como consultor em desenvolvimento de soluções de banco de dados e implementação de aplicativos de empresa para mais de 10 anos.

Conteúdo relacionado