Fazendo um backup database On-Premises no Azure

Olá pessoal, tudo certo?

Neste post quero demonstrar como fazer backup das databases no Azure.

Primeiramente é importante ressaltar a importância de se realizar o backup das databases seja local ou na nuvem.

 Nós que trabalhamos com consultoria muitas vezes atendemos clientes com os seguintes cenários:

  • Com alguma database corrompida ou que tiveram algum problema no hardware e não possuem backup recente;
  • Muitas vezes não realizam nenhum tipo de backup e ainda esperam que façamos algum milagre para recuperar os dados.

Eu sempre uso duas frases: “Sem backup sem recuperação” e DBA faz backup e Jesus faz milagres“. Então pessoal, vamos fazer a nossa parte!

É uma boa prática efetuar o backup em uma mídia externa, em outro servidor e preferencialmente enviar para fora da empresa ou site. Com isso, você iria aumentar a segurança por ter backups em localidades geográficas diferentes.

Legal Tiago, mas este post é para demonstrar como é simples fazer um backup das databases no Azure.

O backup de databases no Azure está disponível desde o SQL Server 2012 SP1 CU 2 (11.00.3339), podendo fazer o backup diretamente no serviço de armazenamento de Blobs do Azure, a partir de um SQL Server em uma maquina virtual do Azure ou um SQL Server On Premise.

Vantagens do Backup SQL Server no serviço de Blob do Azure

O armazenamento é confiável, ilimitado e de fácil acesso externo. A grande vantagem é que você pode escolher enviar o seu backup para um local distante, afim de evitar que os seus backups possam ser comprometidos em caso de desastres. No armazenamento de Blob você também pode escolher fazer uma réplica geograficamente. Assim podemos ter, por exemplo uma réplica em outro país.

Não se preocupe com o espaço em disco, pois ele é escalável de acordo com a sua necessidade. Portanto, o seu backup não vai falhar por falta de espaço em disco.

Você pode escolher a retenção dos seus backups, o que é uma alternativa melhor do que fazer backup em fita, pois o backup em fita envolve alguns riscos como: transportar a fita para um cofre externo; a fita ser danificada e ter outros problemas na hora de fazer a leitura para realizar o restore.

Não tem problema de sobrecarga nos servidores locais ou servidores de backup, nem preocupação em caso de falha da mídia.

Caso você não se sinta confiável em deixar a Microsoft cuidar dos seus backups no serviço de Blob, você pode criar uma máquina virtual no Azure e fazer os seus backups na própria máquina virtual e você mesmo gerenciar.

Quando você utiliza o serviço de backup em Blob do Azure, você paga somente por aquilo que você usa.

Desvantagens do Backup SQL Server no serviço de Blob do Azure

Como diz o ditado, não existe “almoço grátis” ou “bom, bonito e barato”. Para realizar o backup no Azure o custo é relativamente baixo, porém você tem um custo maior para executar um restore da base.

Para fazer o backup você tem que ter uma internet estável, pois durante os testes, quando a minha internet sofria alguma intermitência o backup falhava e eu tinha que reiniciar o backup.

Quanto custa?

Para simular o custo de fazer o backup no serviço de Blob do Azure, você pode utilizar a calculadora de serviços do Azure.

Primeiro precisamos escolher a região que pretendemos mandar os nossos backups.

Depois devemos selecionar o tipo de armazenamento. Nesse caso, vamos selecionar o Blob.

Selecionamos a Camada (Tier) que vamos utilizar. Nesse caso, podemos utilizar o Standard.

Após escolher o Tier, devemos escolher qual o tipo de redundância iremos utilizar.

  • LRS – Armazenamento em um único Datacenter;
  • GRS – Armazenamento no Datacenter Primário e uma replica em um local secundário;
  • RA-GRS – O armazenamento com redundância geográfica com acesso de leitura é exatamente como o GRS, exceto que você obtém acesso de leitura aos dados no local secundário. Se o data center principal ficar indisponível temporariamente, você pode continuar a ler os dados do local secundário.

Depois você tem que selecionar o tipo de acesso: Acesso Quente ou Frio.

O tipo de acesso Quente é usado para arquivos que são acessados com frequência. Você paga um custo mais alto para o armazenamento, mas o custo de acessar os blobs é muito menor.

Para os blobs armazenados na camada de acesso Frio, você paga um custo mais alto para acessar os blobs, mas o custo de armazenamento é muito menor.

Criando uma conta no Azure

Fechando o orçamento, o próximo passo é criar uma conta no Azure. Se você preferir, existe uma opção gratuita para teste por 30 dias ou R$ 670 reais.

Primeiro você precisa acessar o portal Azure: https://azure.microsoft.com/pt-br/

Depois você deve escolher se vai comprar ou fazer uso da opção de teste gratuita.

Agora você deve fornecer os seus dados pessoais. Para criar a conta você deve possuir um cartão de crédito válido.

Configurando o serviço de Blob no Azure

Depois de criar a conta, o próximo passo é configurar o serviço de Blob no Azure. Com isso, precisamos fazer login na nossa Central de Gerenciamento, através do Portal Azure.

Devemos selecionar a opção “Storage Accounts”

Agora vamos fazer as configurações da conta.

  • Name: Aqui você coloca o nome do repositório;
  • Account kind: Aqui você escolhe o tipo da conta “General purpose”;
  • Replication: Escolhe o tipo de replicação que você deseja configurar (LRS, GRS, RA-GRS);
  • Acess Tier: Qual o tipo de acesso ao Tier utilizaremos;
  • Resource group: Escolhe o nome para o seu recurso;
  • Location: Local onde será armazenado o seu serviço de Blob storage.

Realizada a configuração da conta, agora precisamos configurar o serviço de Blob, para isso clicamos no nome da nossa conta.

Próximo passo é criar um “Container

Você deve dar um nome ao seu Container e informar o tipo de acesso (por segurança deixe-o como PRIVATE)

Criando as credencias do SQL Server

Para criar a credencial no SQL Server, você precisa das informações de acesso a conta do Azure.

As informações estão disponibilizadas no portal, quando você clica no nome da conta -> “Access keys

Agora devemos abrir o Management Studio e criar a credencial.

CREATE CREDENTIAL [Backup_Azure]
WITH IDENTITY = 'bkpsqlsevendb'
,SECRET = 'b0qbLEolKRukQ0J8Ju+DPRnOsd4M0/fkh0padCna335XN/IInjarbvYE1Uu9xrtBfkFqKjEr7zKjmh2vJcfSDQ=='

IDENTITY = Nome da sua conta, no caso acima o item 4;

SECRET = Chave de acesso ao Blob, no caso acima o item 5,

Para verificar se a credencial foi criada basta executar a seguinte instrução:

SELECT * from sys.credentials

Fazendo backup no Azure

Depois de criar a conta no Azure, contratar o serviço de armazenamento Blob e criar a credencial no SQL Server, agora já podemos fazer  o backup das nossas bases no Azure.

Para fazer o backup no Azure utilizamos o comando tradicional de backup, alterando apenas o destino para URL e informamos a credencial de acesso.

A informação da URL de destino você obtém no Painel de Gerenciamento -> Account Storage -> Blobs -> Seleciona o container (bkpsqldb) -> Container properties

BACKUP DATABASE NorthWind 
TO URL = 'https://sevendb.blob.core.windows.net/sqlbkp/NorthWind_20171119.bak' 
WITH FORMAT, COMPRESSION, STATS = 10,CREDENTIAL ='Backup_Azure'
GO

No print abaixo podemos visualizar que o backup foi realizado com sucesso e já está disponível no portal de gerenciamento.

Realizando o restore a partir do armazenamento do Azure

Realizar o restore de uma database a partir do backup que está armazenado no Azure é muito simples. Podemos fazer o download do arquivo de backup, ou restaurar direto no Azure.

Para fazer o download do arquivo de backup, você precisa entrar no Painel de Gerenciamento do Azure, ir no Blob Storage, entrar no container e por fim fazer o download.

Para o fazer o restore do backup direto do Azure, sem a necessidade de fazer o download, se for na mesma instância, você precisa apenas informar a credencial no comando, se for em uma instância diferente, é necessário criar a credencial como demonstrado no Criando as credencias do SQL Server.

Assim como no backup utilizamos o comando tradicional de restore, apenas alterando a origem do backup (“FROM“) para URL, e também precisamos informar a credencial.

RESTORE DATABASE NorthWind
FROM URL = 'https://sevendb.blob.core.windows.net/sqlbkp/NorthWind_20171119.bak' 
WITH REPLACE,STATS=5,CREDENTIAL ='Backup_Azure'

Concluindo, realizar backup de uma database no Azure é muito simples e o custo é relativamente baixo. Agora cabe a você analisar o negócio da empresa e verificar o custo benefício para o seu ambiente.

Bom pessoal por hoje é isso até a próxima.

Abraços,

Tiago Neves

7 Comments

Deixe uma resposta