Azure SQL Azure

Backup de tabelas no SQL Azure?

Olá Pessoal, tudo bem?

A dica de hoje é pra voce que precisa fazer uma atualização com segurança em uma tabela no banco do seu SQL Azure, de forma simples e rápida.

Na verdade este post surgiu da necessidade de uma atualização em uma tabela crítica de uma aplicação hospedada no SQL Azure, onde as recomendações oficiais para backup/ restore não eram aplicáveis ao cenário, tais como:


[UPDATE 10/09]: a Microsoft também disponibiliza um procedimento oficial para restore de tabelas usando os backups automáticos com a ferramenta SQL Database Migration Wizard:

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-cloud-migrate-restore-single-table-azure-backup

Hmmm, acho que temos outras alternativas com menor impacto e complexidade 😀


Todos os cenários acima cobrem o restore a nível de banco de dados, incluindo opções de uso do Azure Portal, Management Studio ou até mesmo Powershell. No entanto nem todas eram viáveis pois:

  • O tamanho do DB como um todo era relativamente alto, o que implicaria em um tempo considerável de backup e restore;
  • Compatibility level não suportado para export do arquivo BACPAC, o que também exigiria uma alteração no banco:

  • A tabela que seria alterada era pequena (menos de 5% em relação ao tamanho total do DB);
  • Não havia a disponibilidade de uma janela de mudança programada para uma alteração devido à correção emergencial, no entanto precisava ter garantias de qualquer alteração para preservar os dados antes da alteração.

Neste caso optei por um backup a nível de tabela, mais especificamente a cópia dela através do comando abaixo


SELECT * INTO dbo.NomeDaMinhaTabela_BKP_20170908 FROM dbo.NomeDaMinhaTabela

 

O procedimento está detalhado no link oficial How to Quickly Create a Copy of a Table using Transact-SQL

Neste caso, além de termos uma cópia rápida da tabela no mesmo DB, seu restore poderia ser feito facilmente apenas com o rename ou reapontamento de tabelas a nível de aplicação, o que causaria um impacto muito menor do que alterações a nível de banco de dados e nos daria garantias quanto as alterações aplicadas a nível de tabela 🙂

Espero que tenham gostado e até o próximo post!

 

Este post reflete apenas a opinião do autor sobre o assunto, e não fornece garantias ou responsabilidade sobre qualquer problema decorrente de sua utilização.

Deixe uma resposta