Configurando o Backup do seu SQL Server para salvar direto no Azure

DBA e Consultor de Banco de Dados

Configurando o Backup do seu SQL Server para salvar direto no Azure

Tempo de leitura: 9 minutos

Olá Pessoal,

Espero que estejam todos bem!

No post de hoje, vou falar um pouco sobre como é possível você salvar o Backup do seu banco de dados SQL Server direto no Azure.

O maior bem que uma empresa pode ter, na minha humilde opinião é o Backup. Ter uma cópia somente no seu servidor local ou na sua própria rede pode ser muito arriscado e sair muito caro, ainda mais nos dias de hoje ao qual estamos vivendo, vários vazamentos de dados, invasões etc. Pensar em uma política de Backup consistente e manter os dados seguros em um local fora da organização passa a ser um requisito mais do que obrigatório nos tempos atuais.

Acredite, já vi grandes organizações passarem por dificuldades relacionadas a falta de Backup.

Muitas empresas têm buscado soluções para isso, hoje quero demonstrar como é simples fazer a configuração de um Backup no SQL Server salvando em um Blob Storage no Azure.

Vamos lá? ? #gogogo

Para começar, você deve acessar o Portal do Azure com a sua conta Microsoft.

https://azure.microsoft.com/pt-br/features/azure-portal/

Está em busca de conhecimento? Você pode criar uma conta gratuita e começar a utilizar alguns serviços do Azure por um período de demonstração, veja mais no link abaixo.

https://azure.microsoft.com/pt-br/free/

Aqui para fins de estudo, utilizei a minha própria conta.

Ao entrar no portal, você já recebe uma série de informações relacionadas a plataforma. Não entraremos em detalhes de cada uma OK, o intuito aqui é ir direto ao ponto em relação ao nosso objetivo, Backup do SQL Server sendo salvo direto no seu Blob Storage do Azure.

Bom, primeiramente vamos criar um “Resource Group”.

Ah Gustavo, mas o que é isso?

Grupos de recursos do Azure são coleções lógicas de máquinas virtuais, contas de armazenamento, redes virtuais, aplicativos da web, bancos de dados e / ou servidores de banco de dados. Normalmente, os usuários agrupam recursos relacionados para um aplicativo, divididos em grupos para produção e não produção – mas você pode subdividir ainda mais conforme necessário.

Saiba mais nos links abaixo.

https://www.parkmycloud.com/blog/azure-resource-groups/#:~:text=Azure%20Resources%20Groups%20are%20logical,can%20subdivide%20further%20as%20needed.

https://docs.microsoft.com/pt-br/azure/azure-resource-manager/management/overview#resource-groups

Clique sobre o ícone do “Resource Group”

Clique em “CREATE”.

Digite um nome e escolha a região do seu “Resource Group”.

Clique na opção “REVIEW + CREATE”.

Ao passar pelo teste de validação, uma mensagem semelhante a essa irá aparecer.

Agora clique em “CREATE”.

Após criar o “Resource Group” ele ficará disponível no painel.

Feito isso, volte no painel inicial e agora vamos criar uma “Storage account”.

Gustavo, afinal mas o que é uma Storage Account?

Uma conta de armazenamento do Azure contém todos os seus objetos de dados do Armazenamento do Azure: blobs, arquivos, filas, tabelas e discos. A conta de armazenamento fornece um namespace exclusivo para os dados do armazenamento do Azure que podem ser acessados de qualquer lugar do mundo por HTTP ou HTTPS. Os dados em sua conta de armazenamento do Azure são duráveis e altamente disponíveis, seguros e amplamente escalonáveis.

https://docs.microsoft.com/pt-br/azure/storage/common/storage-account-create?tabs=azure-portal

Dado o conceito, vamos fazer a criação da Storage Account, volte no menu principal através do botão Home e selecione no painel a opção “Storage Accounts”.

Agora clique em “CREATE”.

Na tela de criação, selecione o seu “Resource Group” que acabamos de criar nos passos anteriores e depois dê um nome para a sua “Storage Account”.

Obs. As outras opções como “Location”, “Performance”, “Account Type” e “Application”, mantenha o padrão.

Não entrarei em muitos detalhes em relação a essas outras opções, mas em um ambiente real elas influenciam na performance da sua “Storage Account”, região e obviamente no valor a ser cobrado pelos serviços.

Clique em “REVIEW + CREATE”

Após passar no processo de validação, clique em “CREATE”.

Ao finalizar essa parte, uma mensagem semelhante a essa deverá aparecer.

Vamos agora configurar um “Container” para o nosso “Blob Storage”.

Mas o que é um Container Gustavo? São aquelas caixas grandes que os navios carregam?

– Nããããoo, hahahaha, brincadeiras à parte. ?

 Um contêiner organiza um conjunto de blobs, semelhantes a um diretório em um sistema de arquivos. Uma conta de armazenamento pode incluir um número ilimitado de contêineres e um contêiner pode armazenar um número ilimitado de blobs.

Mas o que é um Blob?

O Armazenamento de Blobs do Azure é uma solução de armazenamento de objetos da Microsoft para a nuvem. O Armazenamento de Blobs é otimizado para armazenar grandes quantidades de dados não estruturados. Dados não estruturados são dados que não estão de acordo com uma definição ou um modelo de dados específico, como texto ou dados binários.

Maiores informações nos links abaixo:

https://docs.microsoft.com/pt-br/azure/storage/blobs/storage-blobs-introduction#:~:text=Uma%20conta%20de%20armazenamento%20pode,deve%20estar%20em%20letras%20min%C3%BAsculas.

https://docs.microsoft.com/pt-br/azure/storage/blobs/storage-blobs-introduction

Dada as explicações introdutórias, vamos criar o nosso Container, clique em “Go to Resource”

Caso tenha passado dessa parte, você pode acessar a sua Storage Account também através da “Home” do Portal.

Ao acessar a sua Storage Account, uma barra de opções abrirá do lado direito com uma série de recursos e informações.

Clique em “Containers”.

Depois clique no + para adicionar um novo “Container”.

Escolha um nome para o seu “Container” e clique em “Create” no rodapé do lado direito da tela.

O seu container irá aparecer criado no painel.

Feito isso, agora vamos compartilhar a sua assinatura para configurar o Backup no seu SQL Server.

Para isso, vá no menu do lado direito e clique em “Shared access signature”

Essa tela irá aparecer.

Marque a opção “Container”.

Selecione uma data no qual a sua assinatura compartilhada irá expirar.

Agora clique em “Generate SAS and Connection String” no canto inferior da tela.

Feito isso, serão gerados algumas hashs que servirão para você acessar externamente a sua Blob Storage. A princípio, guarde a chave SAS TOKEN.

Agora vamos para o SQL Server, FINALMENTE!!!! ? rsrs

No Management Studio, nós vamos criar uma “Credential”.

O que é isso Gustavo? É o meu RG? o.O

Segundo a Microsoft, uma credential é um registro que contém as informações de autenticação necessárias para se conectar a um recurso fora do SQL Server. A maioria das credenciais inclui um usuário e uma senha do Windows. Por exemplo, salvar um backup de banco de dados em um local pode exigir que o SQL Server forneça credenciais especiais para acessar esse local. Para obter mais informações, consulte Credenciais (Mecanismo de Banco de Dados).

Saiba mais no link abaixo:

https://docs.microsoft.com/pt-br/sql/t-sql/statements/create-credential-transact-sql?view=sql-server-ver15

Dado o entendimento, vamos criar uma Credencial para acessar o nosso Blob Storage a partir do SQL Server.

Coloque no nome da sua credencial o endereço da sua storage_account / o nome do seu container.

https://docs.microsoft.com/pt-br/sql/relational-databases/backup-restore/sql-server-backup-to-url?view=sql-server-ver15

Dica 1 : Parte desse endereço pode ser obtido na tela onde você copiou o seu SAS TOKEN na primeira opção, Connection String.

No Object Explorer do seu Management Studio, Clique em “Security” , depois botão direito em “Credentials”, “New Credential”.

Informe as suas credenciais, em “Identity” coloque SHARED ACCESS SIGNATURE, em “Password” cole a sua chave SAS TOKEN que foi copiada anteriormente, inclusive na confirmação da senha (sem a primeira interrogação da chave).

Caso desejar, segue abaixo o script para criação (substitua pelas suas credenciais).

Dica 2 : O seu SAS TOKEN será informado no parâmetro SECRET, sempre retire a primeira interrogação que vem nele quando você copiar a chave.

Feito isso, vamos agora testar o nosso Backup to URL.

Eitaaa, sucesso!!!! ?

Tem um artigo muito bacana do Pinal Dave, no qual ele fez um script que você passa as suas credenciais nos parâmetros e ele já cria as credenciais na sua instância e já até monta o script do Backup, testei aqui também e funcionou muito bem.

Segue o link do artigo:

https://blog.sqlauthority.com/2018/07/17/sql-server-backup-to-url-script-to-generate-credential-and-backup-using-shared-access-signature-sas/

Dica 3 : É sempre recomendado utilizar o parâmetro COMPRESSION nos backups para a nuvem (Exceto em versões do SQL Server que não permitam isso, como na Web Edition por exemplo) , isso vai te ajudar a diminuir o tamanho dos seus arquivos de backup e consequentemente os seus custos de armazenamento. ?

Se uma mensagem semelhante a essa aparecer, revise as suas configurações, pois algo deu errado.

https://docs.microsoft.com/pt-br/sql/relational-databases/backup-restore/sql-server-backup-to-url-best-practices-and-troubleshooting?view=sql-server-ver15

Existem outros problemas que podem acontecer, dependendo do tamanho do seu Backup, o Rodrigo Ribeiro fez um post muito interessante, ensinando toda a teoria por trás e o que fazer para resolver quando esse tipo de problema ocorrer. Recomendo que vejam o artigo dele também.

https://thesqltimes.com/blog/2020/06/21/backup-to-url-tamanho-backup-1/

Dica 4 : É muito importante ficar de olho na data de expiração do seu SAS TOKEN, a sua rotina de backup pode parar de funcionar porquê a sua chave compartilhada está com a data expirada. Uma sugestão é guardar essas informações em algum lugar seguro e em relação as datas colocar um lembrete em algum lugar para te avisar próximo do vencimento para que nenhum problema ocorra.

Falando em rotina de backup, recomendo que leiam o post do meu amigo Felipe Portela, sobre as rotinas do Ola Hallengren (Essas rotinas de Backup dele também tem suporte para Backup To URL e são utilizadas mundialmente).

Link do post do Felipe :

https://felipeportela.com.br/rotinas-administrativas-sql-server-ola-hallengren/

Ainda existem outras maneiras de automatizar a criação das etapas realizadas no Azure sem ser diretamente pelo Portal, através de scripts Powershell , por exemplo.

No canal da Power Tuning tem um vídeo muito bem explicado do mestre Thiago Alencar ensinando a fazer essas configurações também, assiste lá, vou deixar o link logo abaixo.

https://www.youtube.com/watch?v=FuRnXRXtxcU&t=418s

Se quiserem se aprofundar mais sobre o SQL Server no Azure , na Plataforma de cursos da Power Tuning, tem cursos sobre o assunto, ensinando tudo isso e muito mais.

É isso ai pessoal, espero que tenham gostado, até a próxima.

Qualquer dúvida deixe nos comentários.

Um grande abraço a todos!

Gustavo Larocca

Consultor SQL Server

 

4 comentários

  1. Muito bom o post meu amigo.

  2. Eduardo Rabelo disse:

    Muito bom! Logo vou testar pra aprender na prática!

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.