VENDAS: 1-800-867-1389

Migração de dados para o Banco de Dados SQL do Azure: ferramentas e técnicas

Atualizado: maio de 2014

Este documento fornece diretrizes sobre como migrar a definição de dados (esquema) e os dados para o Banco de dados SQL do Microsoft Azure. Ele se dirige principalmente à migração única do SQL Server para o Banco de dados SQL do Azure.

O Microsoft Azure oferece várias opções de armazenamento de dados. Você pode optar por usar uma ou muitas em seus projetos.

O Banco de dados SQL do Microsoft Azure é a tecnologia do SQL Server fornecida como um serviço na Plataforma Azure. As soluções de Banco de dados SQL do Azure em nuvem podem oferecer muitos benefícios, incluindo provisionamento rápido, escalabilidade econômica, alta disponibilidade e menores despesas de gerenciamento. O Banco de dados SQL do Azure oferece suporte às mesmas ferramentas e práticas de desenvolvimento usadas para aplicativos locais do SQL Server. Portanto, ele deve ser uma experiência familiar para a maioria dos desenvolvedores.

O objetivo de longo prazo para o SQL Server e o Banco de dados SQL do Azure é a simetria e a paridade em ambos os recursos; entretanto, atualmente há diferenças de arquitetura e implementação que precisam ser resolvidas ao migrar bancos de dados para o Banco de dados SQL do Azure e ao desenvolver soluções de Banco de dados SQL do Azure.

Antes de migrar um banco de dados para o Banco de dados SQL do Azure, é importante entender quando migrar e as diferenças entre o Banco de dados SQL do Azure e o SQL Server.

Há três ofertas principais de armazenamento na plataforma Azure. O Armazenamento do Azure contém tabela, blob e fila. Ao criar uma solução do Azure, você avaliará diferentes opções e usará cada mecanismo de armazenamento para fornecer o melhor desempenho para a parte da solução. Para saber mais sobre as ofertas e as novas camadas de serviço do Azure, leia “Camadas (edições) do Banco de Dados SQL do Azure”.

 

Oferta de armazenamento

Finalidade

Tamanho máximo

Banco de dados SQL do Microsoft Azure

Sistema de gerenciamento de bancos de dados relacionais

150 GB

Armazenamento do Azure

Blob

Armazenamento durável para objetos binários grandes, como vídeo ou áudio

200 GB ou 1 TB

Tabela

Armazenamento durável para dados estruturados

100 TB

Fila

Armazenamento durável para mensagens entre processos

100 TB

Armazenamento local

Armazenamento temporário por instância

250 GB a 2 TB

O armazenamento local fornece armazenamento temporário para uma instância do aplicativo local em execução. Um repositório local é acessível apenas pela instância local. Se a instância for reiniciada em um hardware diferente, como no caso de falha ou manutenção do hardware, os dados do repositório local não seguirão a instância. Se seu aplicativo exigir durabilidade confiável dos dados, desejar compartilhar dados entre instâncias ou acessar os dados fora do Azure, considere usar uma conta de Armazenamento do Azure ou então o Banco de dados SQL do Microsoft Azure.

O Banco de dados SQL do Azure fornece recursos de processamento de dados por meio de consultas, transações e procedimentos armazenados que são executados no servidor, e somente os resultados são retornados ao aplicativo. Se você tiver um aplicativo que exige processamento de dados e envolve operações relacionais e de junção em dados de tamanho limitado, o Banco de dados SQL do Azure é uma boa opção. Se você tem um aplicativo que armazena e recupera grandes conjuntos de dados, mas não exige processamento de dados, o Armazenamento de Tabela do Azure é uma opção melhor.

O limite de tamanho do Banco de dados SQL do Azure é atualmente definido como 500 GB para a camada Premium. O Banco de dados SQL do Azure é muito mais caro do que o armazenamento do Azure. Portanto, considere transferir os dados de blob para o Armazenamento de Blob do Azure. Isso pode reduzir a pressão sobre o limite de tamanho do banco de dados e reduzir os custos operacionais. Para saber mais sobre as ofertas e as novas camadas de serviço do Azure, leia “Camadas (edições) do Banco de Dados SQL do Azure”.

Semelhante ao SQL Server, o Banco de dados SQL do Azure expõe uma interface TDS para o acesso a banco de dados baseado em Transact-SQL. Isso permite que seus aplicativos de banco de dados usem o Banco de dados SQL do Azure da mesma maneira que usam o SQL Server.

Ao contrário da administração do SQL Server, o Banco de dados SQL do Azure abstrai a administração lógica da administração física; você continua a administrar bancos de dados, logons, usuários e funções, mas a Microsoft administra e configura o hardware físico, como discos rígidos, servidores e armazenamento. Como a Microsoft manipula toda a administração física, há algumas diferenças entre o Banco de dados SQL do Azure e o SQL Server em termos de administração, provisionamento, suporte para Transact-SQL, modelo de programação e recursos.

A lista a seguir fornece uma visão geral de alto nível de algumas das principais diferenças:

  • Tamanho do banco de dados

    O Banco de dados SQL do Azure atualmente oferece as seguintes edições:

    • Web Editions, em tamanhos de 1 GB e 5 GB.

    • Business Editions, em tamanhos de 10, 20, 30, 40, 50, 100 e 150 GB.

    • A edição Premium dá suporte a um banco de dados de até 500 GB.

    É importante verificar o tamanho do seu banco de dados e como ele se ajusta às cotas de banco de dados usadas pelo Banco de dados SQL do Azure. Se seu banco de dados ultrapassar o limite de tamanho do Banco de dados SQL do Azure, você deve examiná-lo e ver se ele pode ser dividido em bancos de dados menores (isto é, fragmentado) ou mover grandes quantidades de dados para o armazenamento de blob do Azure. Para obter mais informações sobre a fragmentação de banco de dados, consulte Escalabilidade horizontal de Bancos de Dados SQL do Azure.

  • Autenticação

    O Banco de dados SQL do Azure oferece suporte somente à autenticação SQL. Você deve considerar se as alterações são necessárias para o esquema de autenticação usado pelo seu aplicativo. Para obter mais informações sobre as limitações de segurança, consulte as diretrizes e limitações de segurança.

  • Versão do Banco de dados do SQL Server

    O Banco de dados SQL do Azure é baseado no SQL Server 2014. Se você quiser migrar seus bancos de dados do SQL Server 2000 ou SQL Server 2005 para o Banco de dados SQL do Azure, verifique se seus bancos de dados são compatíveis com o SQL Server 2014. Você descobrirá que o melhor caminho é migrar do SQL Server 2014 para o Banco de dados SQL do Azure. Você pode passar por uma atualização local para o SQL Server 2014 antes de migrar para o Banco de dados SQL do Azure. Veja a seguir alguns ótimos recursos para ajudá-lo a migrar de versões antigas do SQL Server: Atualizando para o SQL Server 2014 e Upgrade Advisor do Microsoft SQL Server 2014.

  • Schema

    O Banco de dados SQL do Azure não oferece suporte a heaps. TODAS as tabelas devem ter um índice clusterizado para que os dados possam ser inseridos. Para obter mais informações sobre o requisito de índice clusterizado, consulte Por dentro do Banco de dados SQL do Azure.

  • Suporte a Transact-SQL

    O Banco de dados SQL do Microsoft Azure oferece suporte a um subconjunto da linguagem Transact-SQL. Você deve modificar o script para incluir somente instruções Transact-SQL com suporte antes de implantar o banco de dados no Banco de dados SQL do Azure. Para obter mais informações, consulte Referência do Transact-SQL (mecanismo de banco de dados).

  • A instrução Use

    No Banco de dados SQL do Azure, a instrução USE não alterna entre bancos de dados. Para alterar bancos de dados, você deve conectar-se diretamente ao banco de dados.

  • Preços

    O preço de assinatura do Banco de dados SQL do Azure é por banco de dados e não se baseia na edição. Também há encargos adicionais para o volume de transferência de dados, em qualquer momento que os dados entram ou saem do data center. Você tem a opção de executar seu código de aplicativo no próprio local e conectar-se ao Banco de dados SQL do Azure no data center, ou executar seu código de aplicativo no Azure, que é hospedado no mesmo data center que seu Banco de dados SQL do Azure. O código de aplicativo em execução no Azure evita encargos adicionais de transferência de dados. Em ambos os casos, você deve estar ciente da latência de rede da Internet, que não pode ser atenuada com o uso de qualquer um dos modelos. Para obter mais informações, consulte a visão geral dos preços.

  • Limitações de recursos

    Alguns dos recursos do SQL Server não têm suporte no Banco de dados SQL do Azure atualmente. Eles incluem: SQL Agent, pesquisa de texto completa, Service Broker, backup e restauração, Common Language Runtime e SQL Server Integration Services. Para obter uma lista detalhada, consulte Limitações de recursos do SQL Server. Para saber mais sobre as opções de backup e restauração, leia “Backup e restauração do Banco de Dados SQL do Azure”.

Ao usar um banco de dados baseado em nuvem como o Banco de dados SQL do Azure, ele requer conexões pela Internet ou outras redes complexas. Por isso, você deve estar preparado para lidar com quedas de conexões inesperadas.

O Banco de dados SQL do Azure fornece um serviço de banco de dados para vários locatários de grande escala nos recursos compartilhados. Para proporcionar uma boa experiência a todos os clientes do Banco de dados SQL do Azure, sua conexão com o serviço pode ser fechada devido a várias condições.

A seguir está uma lista de causas de términos de conexões:

  • Latência de rede

    A latência causa um aumento no tempo necessário para transferir dados para o Banco de dados SQL do Azure. A melhor maneira de reduzir esse efeito é transferir dados usando vários fluxos simultâneos. Entretanto, a eficiência da paralelização é limitada pela largura de banda de sua rede.

    O Banco de dados SQL do Azure permite que você crie seu banco de dados em data centers diferentes. Dependendo de seu local e da conectividade de rede, você obterá latências de rede diferentes entre o seu local e cada um dos data centers. Para ajudar a reduzir a latência de rede, selecione um data center que seja mais próximo da maioria dos usuários. Para obter informações sobre como medir a latência de rede, consulte o Teste de latência do cliente no Banco de dados SQL do Azure.

    Hospedar o código do aplicativo no Azure é benéfico para o desempenho do aplicativo porque minimiza a latência da rede associada às solicitações de dados do aplicativo ao Banco de dados SQL do Azure.

    Minimizar as viagens de ida e volta da rede também pode ajudar a reduzir os problemas relacionados à rede.

  • Failover do banco de dados

    O Banco de dados SQL do Azure replica várias cópias redundantes dos seus dados em vários servidores físicos para manter a disponibilidade dos dados e a continuidade de negócios. No caso de falhas ou atualizações de hardware, o Banco de dados SQL do Azure fornece failover automático para otimizar a disponibilidade do seu aplicativo. Atualmente, algumas ações de failover resultam em um término abrupto de sessão.

  • Balanceamento de carga

    O balanceador de carga no Banco de dados SQL do Azure assegura o uso ideal dos servidores físicos e serviços nos data centers. Quando a utilização da CPU, a latência de entrada/saída (E/S) ou o número de trabalhos ocupados para um computador excede os limites, o Banco de dados SQL do Azure pode encerrar as transações e desconectar as sessões.

  • Limitação

    Para garantir que todos os assinantes recebam um compartilhamento apropriado dos recursos e que nenhum assinante monopolize recursos à custa de outros assinantes, o Banco de dados SQL do Azure pode fechar ou "limitar" conexões do assinante em determinadas condições. O serviço de limitação do mecanismo de Banco de dados SQL do Azure monitora continuamente determinados limites de desempenho para avaliar a integridade do sistema e pode iniciar vários níveis de limitação a assinantes específicos, dependendo da medida em que esses assinantes estejam afetando a integridade do sistema.

    Os seguintes limites de desempenho são monitorados pela limitação do mecanismo de Banco de dados SQL do Azure:

    • Percentual de espaço alocado para um banco de dados físico do Banco de dados SQL do Azure que está em uso; os percentuais de limites flexíveis e rígidos são iguais.

    • Percentual de espaço alocado para arquivos de log do Banco de dados SQL do Azure em uso. Os arquivos de log são compartilhados entre assinantes. Os percentuais de limites flexíveis e rígidos são diferentes.

    • Milissegundos de atraso ao gravar em uma unidade de log; os percentuais de limites flexíveis e rígidos são diferentes.

    • Milissegundos de atraso ao ler arquivos de dados; os percentuais de limites flexíveis e rígidos são iguais.

    • Uso do processador; os percentuais de limites flexíveis e rígidos são iguais.

    • O tamanho de bancos de dados individuais relativos ao tamanho máximo permitido para assinatura do banco de dados; os percentuais de limites flexíveis e rígidos são iguais.

    • O número total de trabalhos que atendem a solicitações ativas a bancos de dados; os percentuais de limites flexíveis e rígidos são diferentes. Se esse limite for excedido, os critérios de escolha de quais bancos de dados bloquear são diferentes do caso de outros limites. Os bancos de dados que utilizam o número mais alto de trabalhos são os mais prováveis de limitar candidatos do que os bancos de dados que apresentam as taxas de tráfego mais altas.

Para obter mais informações, consulte Gerenciamento de conexão do Banco de dados SQL do Azure e Desempenho do Banco de dados SQL do Azure e guia de elasticidade.

A melhor maneira de lidar com a perda de conexão é restabelecer a conexão e, em seguida, executar novamente os comandos ou a consulta com falha. Para obter mais informações, consulte a estrutura de manipulação de falhas transitórias.

Há algumas coisas que você pode fazer nos bancos de dados para melhorar o desempenho de migração:

  • Atrasar a criação de índices não clusterizados ou desabilitar índices não clusterizados. Índices adicionais criados antes de carregar os dados podem aumentar significativamente o tempo necessário para carregar a mesma quantidade de dados.

  • Desabilitar gatilhos e restringir a verificação. Os gatilhos podem ser disparados quando uma linha é inserida em uma tabela, fazendo com que a linha seja reinserida em outra tabela. O gatilho pode causar atrasos e você talvez não queira que esses tipos de inserções sejam reinseridos.

  • O desempenho da importação em massa será melhorado se os dados sendo importados estiverem classificados de acordo com o índice clusterizado na tabela. Para obter mais informações, consulteControlando a ordem de classificação durante a importação em massa de dados.

O SQL Server Integration Services (SSIS) e o utilitário bcp funcionam bem com a migração de dados grandes.

Ao carregar dados grandes no Banco de dados SQL do Azure, é aconselhável dividir os dados em vários fluxos simultâneos para obter o melhor desempenho.

Por padrão, todas as linhas no arquivo de dados são importadas como um lote. Para distribuir as linhas entre vários lotes, especifique um tamanho de lote sempre que estiver disponível. Se a transação apresentar falha para qualquer lote, só serão revertidas as inserções do lote atual. Lotes já importados por transações confirmadas não serão afetados por uma falha posterior. É melhor testar uma variedade de configurações de tamanho de lote para que seu cenário e ambiente em particular encontrem o tamanho de lote ideal.

Há várias ferramentas disponíveis para a migração de banco de dados para o Banco de dados SQL do Azure. Em geral, a migração de banco de dados envolve a migração de esquema e a migração de dados. Há ferramentas que oferecem suporte a cada uma delas ou ambas. Você pode até usar a API de cópia em massa para criar seu próprio aplicativo de carregamento de dados personalizado.

 

Ferramentas

Schema

Verificação de compatibilidade do Banco de dados SQL do Azure

Dados

Eficiência da transferência de dados

Observação

Pacote DAC

Sim

Sim

Não

N/D

  • A entidade que contém todos os objetos de banco de dados, mas não dados

  • Suporte completo ao Banco de dados SQL do Azure

Exportação de importação de um DAC BACPAC

Sim

Sim

Sim

Bom

  • Importação/exportação do DAC mais dados com estrutura do DAC

  • Serviço disponível para suporte somente em nuvem

  • Exemplos de DAC SQL disponíveis no CodePlex

Assistente para Gerar Scripts do SSMS

Sim

Alguns

Sim

Fraco

  • Tem a opção explícita para geração de scripts do Banco de dados SQL do Azure

  • Bom para banco de dados menor

bcp

Não

N/D

Sim

Bom

  • Transferência eficiente de dados para a tabela existente

  • Cada comando bcp transfere uma tabela

Assistente de migração do Banco de dados SQL do Azure

Sim

Sim

Sim

Bom

  • Excelentes recursos, por exemplo, avaliar arquivos de rastreamento

  • Software livre no CodePlex

  • Sem suporte pela Microsoft

SQL Server Integration Services

Não

N/D

Sim

Bom

  • Mais flexibilidade

  • Transferência direta entre as fontes de dados sem aterrissagem de um arquivo

Assistente de Importação e Exportação do SQL Server

Não

N/D

Sim

Bom

  • Interface do usuário simples sobre o SSIS; também disponível no SSMS

O Assistente de Migração do Banco de dados SQL do Azure pode ser usado para migrar bancos de dados do Access, MySQL, Oracle ou Sybase para o Banco de dados SQL do Azure.

O Microsoft Codename “Data Transfer” pode transferir dados em CSV ou arquivo do Excel para o Banco de dados SQL do Azure.

Para migrar dados de um Banco de dados SQL do Azure para outro Banco de dados SQL do Azure, você pode usar a cópia do Banco de dados SQL do Azure.

O Banco de dados SQL do Azure oferece suporte a um recurso de cópia do banco de dados. Isso cria um novo banco de dados no Banco de dados SQL do Azure, que é uma cópia transacionalmente consistente de um banco de dados existente. Para copiar o banco de dados, você deve estar conectado ao banco de dados mestre do servidor do Banco de dados SQL do Azure, onde o novo banco de dados será criado, e usar o comando CREATE DATABASE:

CREATE DATABASE destination_database_name AS COPY OF 
[source_server_name.]source_database_name

O novo banco de dados pode estar no mesmo servidor ou em um servidor diferente. O usuário que executa essa instrução deve estar na função dbmanager no servidor de destino (para criar um novo banco de dados) e deve ser dbowner no banco de dados de origem. Para obter mais informações, consulte Copiando bancos de dados no Banco de dados SQL do Azure.

Os DACs (aplicativos da camada de dados) foram introduzidos no SQL Server 2008 R2, com o suporte a ferramentas de desenvolvimento no Visual Studio 2010. Eles são úteis para empacotar o esquema, o código e a configuração de um banco de dados para implantar em outro servidor. Quando um DAC está pronto para ser implantado, ele é embutido em um pacote de DAC (.bacpac), que é um arquivo compactado que contém as definições de DAC no formato XML. No SQL Server Management Studio, você pode exportar o esquema de banco de dados para um pacote de DAC e depois implantar o pacote no Banco de dados SQL do Azure.

noteObservação
O formato DACPAC é diferente do formato BACPAC. O formato BACPAC amplia o formato DACPAC para incluir um arquivo de metadados e dados de tabela codificados para JSON (JavaScript Object Notation), além do conteúdo padrão do arquivo .dacpac. O formato BACPAC é abordado na seção sobre exportação e importação de DAC.

Você tem a opção para alterar o pacote de DAC usando o Visual Studio 2010 antes da implantação. Dentro do projeto de DAC, você pode especificar scripts de pré e pós-implantação. Esses são scripts Transact-SQL que podem executar qualquer ação, inclusive inserir dados nos scripts de pós-implantação. No entanto, não é recomendável inserir uma grande quantidade de dados usando um pacote de DAC.

O DAC é fornecido com o SQL Server 20008 R2. Há duas etapas principais envolvidas na migração do esquema de banco de dados do SQL Server para o Banco de dados SQL do Azure:

  1. Extrair um pacote de DAC de um banco de dados do SQL Server:

    O Assistente para Extrair Aplicativo da Camada de Dados pode ser usado para criar um pacote de DAC baseado em um banco de dados existente. O pacote de DAC contém os objetos selecionados do banco de dados e objetos associados no nível de instância, como os logons que são mapeados para usuários do banco de dados.

    Aqui está uma captura da tela de abertura do assistente:



    O assistente envolve as seguintes etapas principais:

    1. Defina as propriedades do DAC, incluindo o nome do aplicativo de DAC, a versão, a descrição e o local do arquivo de pacote.

    2. Valide que todos os objetos de banco de dados têm suporte em um DAC.

    3. Crie o pacote.

    Um DAC só pode ser extraído de um banco de dados no Banco de dados SQL do Azure ou do SQL Server 2005 Service Pack 4 (SP4) ou posterior. Você não poderá extrair um DAC se o banco de dados tiver objetos que não tenham suporte em um DAC ou usuários contidos. Para obter mais informações sobre os tipos de objetos com suporte em um DAC, consulte Suporte de DAC para objetos e versões do SQL Server.

  2. Implantar o pacote de DAC no Banco de dados SQL do Azure:

    O Assistente para Implantar Aplicativo da Camada de Dados pode ser usado para implantar um pacote de DAC. Você deve primeiro se conectar ao servidor do Banco de dados SQL do Azure do SQL Server Management Studio. O assistente criará o banco de dados se ele não existir. O assistente implanta o pacote de DAC na instância do Mecanismo de Banco de Dados associado ao nó selecionado na hierarquia do Pesquisador de Objetos. Por exemplo, na captura de tela a seguir, ele implanta o pacote no SQL Server chamado maqqarly23.database.windows.net:

    ImportantImportante
    É recomendável revisar o conteúdo de um pacote de DAC antes de implantá-lo em produção, especialmente quando o pacote implantado não tiver sido desenvolvido em sua organização. Para obter mais informações, consulte Validar um pacote de DAC.

    O assistente envolve as seguintes etapas principais:

    1. Selecione o pacote de DAC.

    2. Valide o conteúdo do pacote.

    3. Configure as propriedades de implantação de banco de dados, onde você especifica o Banco de dados SQL do Azure.

    4. Implante o pacote.

Além de usar o assistente, você também pode usar o PowerShell com o método dacstore para a migração de esquema para o Banco de dados SQL do Azure.

Um DAC (aplicativo da camada de dados) é uma unidade autossuficiente para desenvolver, implantar e gerenciar os objetos da camada de dados. O DAC permite que desenvolvedores e administradores de banco de dados da camada de dados agrupem os objetos do Microsoft SQL Server, inclusive objetos de banco de dados e objetos de instância, em uma única entidade chamada pacote de DAC (arquivo .dacpac). O formato BACPAC amplia o formato DACPAC para incluir um arquivo de metadados e dados de tabela codificados para JSON (JavaScript Object Notation), além do conteúdo padrão do arquivo .dacpac. Você pode empacotar seu banco de dados do SQL Server em um arquivo .bacpac e usá-lo para migrar o banco de dados para o Banco de dados SQL do Azure.

noteObservação
O DACPAC e o BACPAC são semelhantes, mas na verdade se destinam a cenários muito diferentes. O DACPAC se concentra em capturar e implantar o esquema. Seu caso de uso principal é para a implantação em ambiente de desenvolvimento, teste e depois produção.

Um BACPAC se destina a capturar esquema e dados. É o equivalente lógico de um backup de banco de dados e não pode ser usado para atualizar bancos de dados existentes. Os principais casos de uso do BACPAC são para mover um servidor para outro (ou para o Banco de dados SQL do Azure) e arquivar um banco de dados existente em um formato aberto.

O Serviço de Importação e Exportação do Banco de dados SQL do Azure já está em disponibilidade geral. O serviço pode importar ou exportar diretamente arquivos BACPAC entre um Banco de dados SQL do Azure e o armazenamento de Blob do Azure. O serviço de importação e exportação para Banco de dados SQL do Azure fornece alguns pontos de extremidade REST públicos para o envio de solicitações.

O Portal de Gerenciamento da Plataforma Azure tem uma interface para chamar o serviço de importação e exportação para Banco de dados SQL do Azure.

O SQL Server Management Studio atualmente não oferece suporte à exportação de um banco de dados para um arquivo BACPAC. Você pode aproveitar a API do DAC para importar e exportar dados.

Os exemplos de DAC SQL mostram como usar a API da Estrutura de Aplicativo da Camada de Dados para migrar bancos de dados do SQL Server para o Banco de dados SQL do Azure. O pacote fornece dois utilitários de linha de comando e seus códigos-fontes:

  • As ferramentas do lado do cliente de importação e exportação de DAC podem ser usadas para exportar e importar arquivos bacpac.

  • O cliente do serviço de importação e exportação de DAC pode ser usado para chamar o serviço de importação e exportação para Banco de dados SQL do Azure a fim de importar e exportar arquivos bacpac entre o armazenamento de Blob do Azure e um Banco de dados SQL do Azure.

    Uma maneira de copiar um arquivo bacpac no armazenamento de Blob do Azure é usar o Microsoft Codename “Data Transfer”. Para obter mais informações, consulte a seção Microsoft Codename Data Transfer.

noteObservação
A capacidade de importar e exportar dados para o Banco de dados SQL do Azure usando a estrutura de DAC (aplicativo da camada de dados) está disponível apenas como exemplos do CodePlex. Apenas a comunidade oferece suporte às ferramentas.

Esta seção mostra como usar as ferramentas de cliente dos exemplos de DAC SQL para migrar o banco de dados do SQL Server para o Banco de dados SQL do Azure.

Os exemplos de DAC SQL podem ser baixados do CodePlex. Para executar o exemplo, você também deve instalar a Estrutura de Aplicativo da Camada de Dados em seu computador.

Antes de usar as ferramentas para migrar o banco de dados, você deve criar o Banco de dados SQL do Azure de destino. Há duas etapas envolvidas no uso da ferramenta para migração:

  1. Exportar um banco de dados do SQL Server

    Suponha que haja um banco de dados em execução no SQL Server 2014, ao qual um usuário integrou o acesso de segurança. O banco de dados pode ser exportado para um arquivo ".bacpac" chamando-se o EXE de exemplo com os seguintes argumentos:

    DacCli.exe -s serverName -d databaseName -f C:\filePath\exportFileName.bacpac -x -e
    
  2. Importar o pacote para o Banco de dados SQL do Azure

    Uma vez exportado, o arquivo de exportação pode ser importado para um Banco de dados SQL do Azure com os seguintes argumentos:

    DacCli.exe -s serverName.database.windows.net -d databaseName -f C:\filePath\exportFileName.bacpac -i -u userName -p password
    

O Assistente para Gerar Scripts pode ser usado para criar scripts Transact-SQL para banco de dados do SQL Server e/ou objetos relacionados dentro do banco de dados selecionado. Você pode usar os scripts para transferir esquema e/ou dados para o Banco de dados SQL do Azure.

O Assistente para Gerar Scripts é instalado com o SQL Server 2008 R2. O assistente pode ser reaberto do SQL Server Management Studio 2008 R2. A captura de tela a seguir mostra como abrir o assistente:

O assistente envolve as seguintes etapas principais:

  1. Escolha objetos para exportação.

  2. Defina opções de script. Você tem as opções de salvar o script em arquivo, na área de transferência ou em uma nova janela de consulta; ou publicá-lo em um serviço Web.

  3. Defina opções de script avançadas.

    Por padrão, o script é gerado para a instância do SQL Server autônoma. Para alterar a configuração, você deve clicar no botão Avançado na caixa de diálogo Definir Opções de Script e definir a propriedade Script para o tipo de mecanismo de banco de dados como Banco de dados SQL.



    Também é possível definir os Tipos de dados para script para uma das seguintes referências baseadas no seus requisitos: Somente esquema, Somente dados, Esquema e dados.

Depois que o script é criado, você tem a opção de modificá-lo antes de executá-lo no Banco de dados SQL do Azure para transferir o banco de dados.

O bcp é um utilitário de linha de comando que foi criado para o carregamento em massa de alto desempenho no SQL Server ou no Banco de dados SQL do Azure. Ele não é uma ferramenta de migração. Também não extrai nem cria o esquema. É necessário primeiro transferir o esquema para o Banco de dados SQL do Azure usando uma das ferramentas de migração de esquema.

noteObservação
Você pode usar o bcp para fazer backup de seus dados e restaurá-los no Banco de dados SQL do Azure.

noteObservação
O Assistente de Migração do Banco de dados SQL do Azure usa o bcp.

O utilitário bcp é fornecido com o SQL Server. A versão fornecida com o SQL Server 2014 tem suporte total no Banco de dados SQL do Azure.

Há duas etapas envolvidas no uso do bcp:

  1. Exportar os dados para um arquivos de dados.

    Para exportar dados do banco de dados do SQL Server, você pode executar a instrução a seguir no prompt de comando:

    bcp tableName out C:\filePath\exportFileName.dat –S serverName –T –n -q
    
    O parâmetro de saída indica a cópia de dados fora do SQL Server. O parâmetro -n realiza a operação de cópia em massa usando os tipos de dados de bancos de dados nativos dos dados. O parâmetro -q executa a instrução SET QUOTED_IDENTIFIERS ON na conexão entre o utilitário bcp e a instância do SQL Server.

  2. Importar o arquivo de dados para o Banco de dados SQL do Azure

    Para importar dados para seu Banco de dados SQL do Azure, você deve primeiro criar o esquema no banco de dados de destino e depois executar o utilitário bcp em um prompt de comando:

    Bcp tableName in c:\filePath\exportFileName.dat –n –U userName@serverName –S tcp:serverName.database.windows.net –P password –b batchSize
    
    O parâmetro –b especifica o número de linhas por lote de dados importados. Cada lote é importado e registrado como uma transação separada que importa o lote inteiro antes de ser confirmado. Identificar o melhor tamanho de lote e usar o tamanho do lote é uma prática recomendada para reduzir a perda de conexão com o Banco de dados SQL do Azure durante a migração de dados.

A seguir estão algumas práticas recomendadas quando você usa o bcp para transferir uma grande quantidade de dados.

  1. Use a opção –N para transferir dados no modo nativo para que nenhuma conversão de tipo de dados seja necessária.

  2. Use a opção –b para especificar um tamanho de lote. Por padrão, todas as linhas no arquivo de dados são importadas como um lote. No caso de uma falha de transação, somente as inserções do lote atual são revertidas.

  3. Use a opção –h "TABLOCK, ORDER(…)". –h “TABLOCK” especifica que um bloqueio no nível de tabela de atualização em massa é necessário durante a operação de carregamento em massa; caso contrário, será adquirido um bloqueio no nível de linha. Isso pode reduzir a contenção de bloqueio na tabela. A opção –h “ORDER(…)” especifica a ordem de classificação dos dados no arquivo de dados. O desempenho da importação em massa será melhorado se os dados sendo importados estiverem classificados de acordo com o índice clusterizado na tabela.

Você pode usar as opções –F e –L para especificar a primeira e a última linha de um arquivo simples para o carregamento. Isso é útil para evitar a necessidade de dividir fisicamente o arquivo de dados para obter o carregamento de vários fluxos.

O Assistente para Migração do Banco de dados SQL do Azure é uma ferramenta de interface do usuário de software livre que ajuda a migrar bancos de dados do SQL Server 2005/2008 ou versões posteriores para o Banco de dados SQL do Azure. Além de migrar dados, ele também pode ser usado para identificar problemas de compatibilidade, corrigi-los sempre que possível e notificá-lo sobre todos os problemas reconhecidos.

O Banco de dados SQL do Azure Migration Wizard tem lógica interna para lidar com a perda de conexão. Ele divide as transações em grupos menores e executa-as até o Banco de dados SQL do Azure encerrar a conexão. Quando o assistente encontra o erro de conexão, ele restabelece uma nova conexão com o Banco de dados SQL do Azure e continua o processamento após o último comando bem-sucedido. Da mesma forma, ao usar o bcp para carregar os dados no Banco de dados SQL do Azure, o assistente reparte os dados em seções menores e usa a lógica de repetição para descobrir o último registro bem-sucedido carregado antes de a conexão ser fechada. Em seguida, ele faz o bcp reiniciar o carregamento dos dados com o próximo conjunto de registros.

noteObservação
O Banco de dados SQL do Azure Database Migration Wizard é uma ferramenta de software livre criada e mantida pela comunidade.

O Banco de dados SQL do Azure Migration Wizard pode ser baixado de http://sqlazuremw.codeplex.com. Descompacte o pacote em seu computador local e execute o arquivo SQLAzureMW.exe. Aqui está uma captura da tela do aplicativo:

O assistente envolve as seguintes etapas:

  1. Selecione o processo no qual você deseja que o assistente o oriente.

  2. Selecione a origem da qual você quer gerar o script.

  3. Selecione objetos de bancos de dados para o script

  4. Gere o script. Você tem a opção de modificar o script posteriormente.

  5. Insira as informações de conexão com o servidor de destino. Você tem a opção de criar o Banco de dados SQL do Azure de destino.

  6. Execute o script no servidor de destino.

O SSIS (SQL Server Integration Services) pode ser usado para executar uma ampla variedade de tarefas de migração de dados. Ele é uma ferramenta avançada no trabalho com várias fontes de dados e destinos heterogêneos. Essa ferramenta oferece suporte para fluxo de trabalho e transformação de dados complexos entre a origem e o destino. O SSIS não está disponível como um serviço do Azure semelhante ao Banco de dados SQL do Azure. Você pode executar pacotes SSIS em um SQL Server local para transferir dados para o Banco de dados SQL do Azure. Além disso, pode executar pacotes SSIS em um SQL Server em execução em uma máquina virtual do Azure para transferir dados para o Banco de Dados SQL do Microsoft Azure. Contudo, o SQL laaS também é uma opção para hospedagem de SSIS.

O Assistente de Importação/Exportação do SSIS permite que o usuário crie pacotes que movem dados de uma única fonte de dados para um destino sem transformações. O assistente pode rapidamente mover dados de uma variedade de tipos de origem para diversos tipos de destino, incluindo arquivos de texto e outras instâncias do SQL Server. Para obter mais informações, consulte "Como: Usar o Integration Services para migrar um banco de dados para o Banco de Dados SQL do Azure".

Você deve usar a versão do SSIS do SQL Server 2008 R2 ou posterior para se conectar ao Banco de dados SQL do Azure.

Os adaptadores ADO.NET têm o suporte necessário para Banco de dados SQL do Azure. Ele fornece uma opção para carregar dados em massa especificamente para o Banco de dados SQL do Azure. Use o adaptador de destino ADO.NET para transferir dados para o Banco de dados SQL do Azure. Não há suporte para a conexão ao Banco de dados SQL do Microsoft Azure usando OLEDB.

Como o seu pacote pode falhar devido a limitação ou um problema de rede, você poderá considerar a criação dos pacotes de modo que eles possam ser retomados no ponto de falha, em vez de serem reiniciados. Para obter mais informações, leia “SSIS para Azure e transferência híbrida de dados”.

Ao configurar o destino do ADO.NET, use a opção "Usar Inserção em Massa quando possível". Isso permite que você use os recursos de carregamento de dados em massa para aprimorar o desempenho da transferência. . Para obter mais informações, leia o “Guia operacional e de ajuste do SSIS”.

O Assistente de Importação e Exportação do SQL Server oferece o método mais simples para criar um pacote do SQL Server Integration Services para uma importação ou exportação simples. Para obter mais informações, consulte "Como: Usar o Assistente de Importação e Exportação para migrar um banco de dados para o Banco de Dados SQL do Azure”.

O assistente oferece suporte às seguintes fontes de dados:

  • Provedor de Dados .NET Framework para ODBC

  • Provedor de Dados .NET Framework para Oracle

  • Provedor de Dados .NET Framework para SQL Server

  • Origem de arquivos simples

  • Provedor Microsoft OLE DB para Analysis Services 10.0

  • Provedor Microsoft OLE DB para Search

  • Provedor Microsoft OLE DB para SQL Server

  • SQL Native Client

  • SQL Server Native Client 10.0

O Assistente de Importação e Exportação do SQL Server pode transferir apenas dados. Antes de usar o assistente, você deve transferir o esquema usando uma das ferramentas de migração de esquema, o Assistente para Gerar Scripts ou o pacote de DAC.

noteObservação
Em um computador de 64 bits, o Integration Services instala a versão de 64 bits do Assistente de Importação e Exportação do SQL Server (DTSWizard.exe). No entanto, algumas fontes de dados só têm um provedor de 32 bits disponível. Para funcionar com essas fontes de dados, talvez seja necessário instalar e executar a versão de 32 bits do assistente. Para instalar a versão de 32 bits do assistente, você deve selecionar Ferramentas de Cliente ou Business Intelligence Development Studio durante a instalação.

O Microsoft Codename “Data Transfer” é um serviço em nuvem que permite transferir dados do seu computador para um Banco de dados SQL do Azure ou um armazenamento de Blob do Azure. Você pode carregar qualquer formato de dados no armazenamento de Blob do Azure, e os dados que são armazenados em CSV ou no formato do Microsoft Excel (.xlsx) em um Banco de dados SQL do Azure. Quando você carrega dados em um Banco de dados SQL do Azure, eles são transformados em tabelas de banco de dados.

O serviço Data Transfer está acessível em https://web.datatransfer.azure.com/. Na página inicial, você tem as opções de importar dados e gerenciar seus conjuntos de dados e repositórios.

A importação de dados para o processo do Banco de dados SQL do Azure envolve as seguintes etapas:

  • Insira suas credenciais do Banco de dados SQL do Azure.

  • Escolha um arquivo a ser transferido.

  • Analise o arquivo de dados e depois transfira os dados.

O SSMA (Assistente de Migração do SQL Server) é uma família de produtos para reduzir o custo e o risco de migração de bancos de dados Oracle, Sybase, MySQL e Microsoft Access para o Banco de dados SQL do Azure ou o SQL Server. O SSMA automatiza todos os aspectos de migração, incluindo a análise de avaliação de migração, o esquema e a conversão de instrução SQL, a migração de dados e o teste de migração.

O SSMA é um download da Web. Para baixar a versão mais recente, consulte a página do produto Ferramentas de Migração do SQL Server. No momento da redação deste texto, estas eram as versões mais recentes:

O SSMS é instalado com um assistente baseado no Windows Installer. O SSMA é gratuito, mas você deve baixar uma chave de registro. Após a instalação e a execução, o aplicativo solicita que você se registre e baixe a chave de registro.

O processo de migração do SSMA para Access envolve as seguintes etapas:

  1. Crie um novo assistente de migração. Assegure-se de selecionar Banco de dados SQL do Azure na caixa Migrar para.

  2. Adicione bancos de dados do Access.

  3. Selecione os objetos do Access a serem migrados.

  4. Conecte-se ao Banco de dados SQL do Azure.

  5. Vincule tabelas. Se desejar usar seus aplicativos do Access existentes com o Banco de dados SQL do Azure, você poderá vincular suas tabelas originais do Access às tabelas do Banco de dados SQL do Azure migradas. A vinculação modifica seu banco de dados do Access de modo que suas consultas, formulários, relatórios e páginas de acesso a dados usam os dados no Banco de dados SQL do Azure em vez dos dados em seu banco de dados do Access.

  6. Converta os objetos selecionados.

  7. Carregue os objetos convertidos no Banco de dados SQL do Azure.

  8. Migre dados para objetos selecionados do Access.

Consulte também

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft