Automatizando rotinas de backup SQL Server na AWS

Neste artigo você vai ver:

Hoje em dia o tempo vale muito, cada minuto é crucial. Pensando nisso, a automação veio com objetivo de nos ajudar com rotinas repetitivas e cansativas. Neste artigo falaremos sobre a automação de rotinas de backup do SQL Server na nuvem, utilizando para isto a AWS.

O que você precisa saber antes de começar

Não precisamos usar ferramentas de terceiros, nesse exemplo usaremos o SQL Server 2019 Enterprise

Importante: essa configuração não funciona com a versão EXPRESS

É preciso já ter realizado a instalação do SQL Server. Caso não tenha instalado, você pode seguir esse tutorial: Guia de instalação do SQL Server.

Agora vamos começar!

Abrindo o SQL Server Management Studio, veremos todas as bases do lado esquerdo da tela:

Tela principal do SQL Server com menu de opções Windows acima padrão (Arquivo, Editar, Exibir, Ferramentas, Janela e Ajuda) e com as opções de gerenciamento de Banco principais e SQL Server Agent.

A forma mais comum de se realizar o backup pode ser visualizada na imagem a seguir. Clique com o botão direito em cima da base de dados, escolha Tarefas e depois Fazer Backup.

Menu de opções quando clicado com o botão direito em cima da DataBase a qual abre as opções de Tarefas seguido de Fazer Backup.

Selecione a base de dados, tipo de backup desejado, o local de armazenamento para o backup e clique em OK.

Janela de escolha de banco, tipo de backup e destino para salvar o arquivo.

Aguarde um pouco. Lembre-se de que o tempo para fazer o backup vai depender do tamanho da base de dados. 

Pop-up de concluído com sucesso.

Imagina precisar fazer isso todo dia, em horários específicos. Além de não ser produtivo, aumenta muito as chances de falhas humanas. 

Mas que tal automatizar as rotinas de backup SQL Server?

Para minimizar a possibilidade de falha humana podemos agendar o backup. Para isso, habilite a opção SQL Server Agent. Inicie o Gerenciador de Serviços do Windows (services.msc) e procure SQL Server Agent. Altere o tipo de inicialização para Automático e depois clique em Iniciar o serviço.

Página principal do services.msc com serviços do Windows, destaque no serviço do SQL Server Agent, pop-up de gerenciamento aberto e configurado para automático.

Vamos voltar lá na base, no procedimento de backup e copiar o script. Agora podemos criar um backup que será executado automaticamente.

Para isso, como no procedimento anterior, clique no banco de dados que deseja fazer o backup e inicie o processo. Clique sobre a opção Script e depois em Ação de Script no Arquivo.

Janela de backup do SQL Server com botões de ação que geram script, menu esquerdo com opção de Geral, Opções de Mídia e Opções de Backup. Em vermelho selecionado o botão Script e em seguida Ação de Script no Arquivo.

Aparecerá uma janela para escolher o local do arquivo, fica a seu critério o local de armazenamento do script. Neste exemplo, o script será salvo na própria pasta do SQL 2019.

Janela automática do Windows para escolher o local de salvar o arquivo, com o menu do Windows ao lado esquerdo, aberto dentro da pasta principal do SQL 2019.

Nesse script, temos o procedimento de backup que o agendador faz automaticamente para você, dizendo o local de armazenamento do arquivo e o tipo de backup.

BACKUP DATABASE [DataBase] TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\DataBase.bak' WITH NOFORMAT, NOINIT,  NAME = N'DataBase-Completo Banco de Dados Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO!

Para criar o agendamento, clique com o botão direito em SQL Server Agent,  escolha Novo e depois Trabalho.

Painel esquerdo da base de dados, com a opção do SQL Server Agent selecionada, pop-up com as opções de Novo selecionado e em seguida Trabalho.

Neste ponto coloque o nome do backup e caso fique melhor organizado pra você, pode ser adicionado uma descrição.

Vamos cadastrar o backup da base e armazenar localmente no servidor (em vez de realizarmos de forma manual, como mostrado anteriormente o agent fará isso pra nós). 

Pop-up com menu esquerdo com opções de Geral, Etapas, Agendas, Alertas, Notificações e Destinos. No centro na parte superior temos Script e Ajuda. Abaixo temos Nome, Proprietário, Categoria e Descrição da Base.

Agora, clique em Etapas > Novo 

Selecionado a opção de Etapas no menu esquerdo e posteriormente a opção Novo, na parte inferior central.

Teremos a janela a seguir, informe o Nome e selecione o Banco para Backup.

No lado esquerdo tem a opção de Geral e Avançado, no centro temos Nome da etapa, Tipo, Executar como e Banco de Dados com opções de escolha de base.

Lembra do script que salvamos? Então, abra o arquivo e copie o comando e cole na opção Comando, clique em OK.

Menu com opções do lado esquerdo com Geral e Avançado, abaixo a descrição de Conexão, contendo o nome do Servidor e o tipo de Conexão e abaixo o Progresso. No centro superior da imagem temos a opção de Script, Ajuda, abaixo temos Nome da Etapa, Tipo, Executar como, Banco de dados, uma área em branco editável mais ao canto direito e no canto esquerdo da área um menu menor com Abrir, Selecionar Tudo, Copiar, Colar e Analisar.

Agora, vamos à opção Agendas > Nova.

Janela de opções com menu esquerdo contendo as opções de Geral, Etapas, Agendas (selecionada em azul com seta vermelha), Alertas, Notificações e Destinos. Abaixo a Conexão com o servidor com o nome da máquina, tipo de conexão e abaixo o Progresso. No centro superior, temos a opção de Script, Ajuda, logo abaixo temos a opção de Nova demarcada com uma seta vermelha e ao lado Escolher.

Escolha o melhor dia e horário para realizar a tarefa, finalizando, clique em OK

Janela com opções de agendamento, contendo Nome, Tipo de Agenda, Frequência, Ocorrência, Repete-se a cada com os dias da semana para escolher, Frequência diária com opções de hora, minuto e segundo editável, Duração com opção de Data de Início, ao lado, Data de término e abaixo opção Sem data de término. Abaixo a opção Resumo que mostra como ficou demarcado o agendamento.

Agora temos o agendamento cadastrado, aparecerá assim:  

Janela inicial, com o agendamento concluído com sucesso. Ao lado esquerdo menu com opções de Geral, Etapas, Agendas, Alertas, Notificações e Destinos, abaixo Conexão, nome do servidor e tipo de conexão, abaixo demarca o progresso. No centro mostra o agendamento, abaixo as opções de Nova, Escolher, Editar e Remover.

Se você precisar ou querer, pode gerar notificações por e-mail:

Janela com opções de Geral, Etapas, Agendas, Alertas, Notificações demarcado em vermelho e Destinos. Ao lado no centro, opções de Ação com envio por e-mail, Página, Gravar no log de eventos de Aplicativos do Windows e Excluir trabalho automaticamente.

Clique em OK para finalizar. 

Ao abrir o SQL Server Agent, você terá o cadastro da nossa rotina:

Menu do SQL Server com a opção do SQL Server Agent selecionado em vermelho destacando a rotina agendada em azul, com o nome de Backup Full.

Afinal, como automatizar rotinas de Backup SQL Server na AWS?

Show, temos nossa rotina de backup configurada! Agora, como faz pra armazenar na AWS? 

Caso você não tenha configurado a AWS na sua máquina e criado o bucket, pode seguir os docs abaixo:

Bucket criado e conta da AWS sincronizada com o servidor? Agora faremos o seguinte: 

Enviaremos o arquivo para a AWS assim:

aws s3 sync "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup" s3://sql-server-lab-bkp 

Observação: Lembrando que é necessário alterar os parâmetros do caminho do arquivo de backup e de bucket S3 antes de rodar no seu terminal, beleza? 

Você deve ter se perguntado “mas, o que esse comando faz, afinal?”

Nós estamos enviando o arquivo no caminho de backup padrão do SQL para o bucket S3 “sql-server-lab-bkp”.

No terminal ficará assim:

Print com o terminal do Windows, fundo preto, letras brancas com o código aws s3 sync "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup" s3://sql-server-lab-bkp

Dependendo da velocidade da sua internet e do tamanho do arquivo pode demorar um pouco.

Quando o envio foi concluído com êxito, podemos checar na AWS:

Tela da AWS de dentro do bucket, fundo cinza claro com o nome da pasta e o arquivo de backup do sql server contendo nome, tipo, data, tamanho e classe.

Vamos agora salvar um arquivo .bat com a linha de comando que utilizamos anteriormente, dentro da pasta do SQL 2019, mas fica a seu critério onde armazenar.

Bloco de Notas aberto com o comando feito anteriormente, pop-up do Windows para escolher o local de salvar o arquivo.

Para finalizar, colocaremos o agendamento do Windows para enviar o arquivo para AWS automaticamente no Programador de Tarefas. 

Botão Direito em Programador de Tarefas > Criar Tarefa.

Janela principal demarcada com duas setas em vermelho para as opções de Programador de tarefas, localizado no menu esquerdo e com o botão direito em cima desta opção, aberto o menu de ação demarcado a opção de Criar Tarefa.

Edite os campos marcados em vermelho:

Janela de opções com Nome, Descrição, Executar independentemente do utilizador ter sessão iniciada e Configurar para destacados em vermelho na aba Geral.

Clique na aba “Acionadores” > Novo.

Cadastre o período de envio conforme desejar, como estamos realizando backup semanal, seguimos nessa linha para a configuração

Pop-up contendo opções de agendamento para a tarefa, contendo definição de uso, como único, diário, semanal e mensal, dias da semana, data de início, hora, minuto, segundo, com caixas para marcar, abaixo definições avançadas contendo ações para demarcar caso necessário, como Adiar Tarefa, Repetir com tempo pré-determinado, parar tarefa após dias demarcados de uso, expira e Ativada.

Clique em OK.

Vá na aba “Ações” > Novo.

Pop-up com menu de opções, contendo na parte superior as abas Geral, Acionadores, Ações demarcado em vermelho, Condições e Definições. Abaixo a opção de Novo demarcado em vermelho.

Nessa nova janela, adicione o caminho do arquivo .bat que criamos e clique em OK.

Pop-up contendo a opção de Ação, Programa/Script para selecionar o caminho demarcado em vermelho e a opção de OK abaixo, demarcado em vermelho.

Ele pedirá a senha de usuário, adicione e clique em OK

Pop-up do Windows contendo dados de login e senha do usuário que possui acesso a base de dados.

E acabamos!

Não perca tempo em ações que podem ser automatizadas!

Espero que tenha ficado clara a importância de realizar backups com frequência e porque essa atividade não pode depender da memória e disponibilidade de uma pessoa. 

Ficou com alguma dúvida ou quer fazer alguma sugestão? Então comenta aqui embaixo! 

Capa Artigo - Automatizando Rotinas de Backup SQL Server na AWS
Foto - Stephanie Tavares
Analista de Infraestrutura
Analista de Infra e padawan em automação, que ama gatos, viajar, jogos e cerveja.

Artigos relacionados

Este site utiliza cookies para proporcionar uma experiência de navegação melhor. Consulte nossa Política de Privacidade.