Migrando um banco de dados SQL Server Local para o Microsoft Azure

Migrar de um banco local para o Azure é uma tarefa que deveria ser bem fácil, porém é bastante trabalhosa se você não conhece o caminho das pedras.

Passei recentemente por um problema um pouco incomum em um cliente, mas sei que pode ser comum principalmente em empresas que tem um tempo maior de vida. No caso, este banco tinha algumas Views e Stored Procedures que foram criadas há muito tempo e que suas tabelas de referência haviam sido apagadas posteriormente, perdendo assim a referência das mesmas nas VWs e SPs. Durante as primeiras tentativas de migração do banco local para o Azure, o erro que apareceu foi o seguinte:

Error SQL71564: The element Extended Property: [dbo].[<Table>].[<Column>] is not supported when used as part of a data package (bacpac).

Apareceram cerca de 500 linhas de erros, com várias tabelas e colunas repetidas. Neste caso, basta apagar todas as VWs e SPs que acusam o erro.

Feito isso, o SQL Management tem uma ferramenta de exportação direta do seu banco de dados para a sua conta do Azure, porém, se as suas tabelas não tiverem pelo menos uma coluna clustered, esta ferramenta não deixa que você faça a exportação. A ferramenta que estou citando é:
– Dentro do SQL Managemet, clique com o botão direito do mouse no database que você deseja exportar;
– Vá para o menu “Tarefas”
– Submenu “Implantar banco de dados no SQL Azure”

Já adiantando de antemão que, se as suas tabelas não estiverem 100% de acordo com as necessidades da implementação do Azure (tabelas sem ao menos uma coluna cluster, Stored Procedures e Views com a referência perdida, etc), então a importação falhará e provavelmente aparecerá o seguinte erro:

Error SQL71564: Table Table: [dbo].[<Table>] does not have a clustered index. Clustered indexes are required for inserting data in this version of SQL Server.

Depois de perder muito tempo pesquisando sobre uma forma de importar corretamente e depois de apagar todas as SPs e VWs se referência, encontrei uma ferramenta que cria automaticamente as colunas cluster no Azure, mesmo que as suas tabelas não a tenham. No meu caso, o cliente tinha várias colunas non-clustered e o que essa ferramenta fez foi justamente converter essas colunas em clustered. A Ferramenta em questão é a SQL Database Migration Wizard.

Bom, daí pra frente é muito mais “next, next, finish” mesmo, seguindo os passos abaixo:
– Criar a conta no Azure
– Criar um novo banco de dados no Azure
– Identificar e excluir as Stored Procedures e Views que perderam referência de tabelas (conforme explicado acima, basta tentar exportar para o Azure que o SQL Management vai acusar os erros)
– Baixar e executar o SQL Database Migration Wizard
– Dentro do SQL Database Migration Wizard, conectar no banco de dados local e no Azure
– Next, Next, Finish.. 😉

Tem alguma dúvida ou ainda tem problemas em importar o seu banco de dados SQL Server para o Microsoft Azure? Fale com a gente! 🙂

Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.