Automatizando e Gerenciando um Plano de Manutenção de Backup Eficiente

Olá galera, tudo bem?

Após alguns meses sem escrever nada aqui no blog, não por preguiça, mas por conta de diversas demandas de trabalho que surgiram no decorrer desse tempo, venho aqui falar de uma rotina extremamente importante para o dia a dia de um administrador de banco de dados, a “Execução e Gerenciamento de Backups”, no qual considero um atividade muito importante. O êxito da mesma pode lhe tirar de muitos apuros, inclusive salvar seu emprego e não levar a empresa a falência pela perda dos dados.

Bem, irei apresentar neste artigo a maneira de configurar um plano de manutenção com as tarefas principais para a realização de uma boa rotina de backup e a exportação dos arquivos de backups gerados para locais distintos, utilzando scripts personalizados.

Logo em seguinda irei registrar aqui alguns conceitos básicos que acredito se o suficiente para dar início a elaboração do artigo.

  1. Plano de Manutenção – consiste em criar um fluxo de trabalho das tarefas básicas de manutenção, no qual cria pacotes integration services que é executado por um job do SQL Server Agent. Esses planos podem ser executados de manual ou automática, em intervalo agendados, podendo definir scripts Transact-SQL próprios e personalizados;
  2. Backup – consiste numa cópia dos dados que pode ser usada para restaurar e recuperar os dados após uma falha. Um backup dos dados é criado no nível de um banco de dados ou de um ou mais de seus arquivos ou grupos de arquivos, não sendo possível criar backups no nível da tabela;
  3. Jobs – consiste em uma série específica de operações executadas sequencialmente pelo SQL Server Agent, podendo realizar uma ampla gama de atividades, tais como a execução de scripts Transact-SQL, aplicativos de prompt de comando, scripts Microsoft ActiveX, pacotes do Integration Services, comandos e consultas do Analysis Services ou tarefas de replicação. Os trabalhos podem executar tarefas repetitivas ou agendáveis, bem como notificar usuários automaticamente sobre o status do trabalho, simplificando desse modo, a administração do SQL Server.

Primeiramente vamos determinar as premissas necessárias para implementar o plano. A primeira delas é a criação do job com o script de exportação dos arquivos dos backups que serão gerados no decorrer do tempo em um diretório, mas que é importante mantermos em locais diferentes e assim garantir a segurança dos mesmos caso venha a precisar, sendo possível também manter arquivos de backups atualizados para os developers em diretórios especificados pela equipe para executarem eventualmente restores em bases de dados testes. A segunda, ativação e configuração do database mail. Terceira, criação de um operador vinculado a um profile do database mail. Quarta regra, definição de um credencial de uma conta de AD de preferência vinculada a um proxie de serviço do SQL Server, onde esse tenha permissão de leitura e escrita nos diretórios envolvidos na exportação dos arquivos de backups.

Etapa 1 – Na etapa abaixo definimos um nome pra o job, um login responsável de execução, categoria e uma breve descrição. Neste último costumo definir a data de criação, o que faz e o proprietário que criou o job.

definindo name pra job Etapa 2 – Nesta etapa adicionamos os scripts que irão ser executados pelo job. Vejam que é necessário determinar um nome para o passo, tipo e como será executado. Estou considerando que esses dois passos já tem um proxie configurado. Na última caixa é escrever o script de execução.

Script:

robocopy “Diretório Origem” “Diretório Destino” *.bak /E /V /R:10 /W:30

passos job

Pronto, job de exportação já criado, vamos partir pra criação do plano de manutenção de realização dos backups, exportação e limpeza dos arquivos.

Etapa 3 – Nesta etapa iniciaremos a criação do plano clicando com o botão direito do mouse em “Maintenance Plans” e Maintenance Plan Wizard. Existe a outra opção New Maintenance Plan, no qual lhe dar possibilidade de criar um plano de manutenção vázio e ir arrastando quais tarefas quer definir no mesmo, porém no nosso caso especifico, irei trabalhar com as etapas proposta pelo Wizard. Clicamos em next.

criando plano    Etapa 4 – Nesta etapa definimos um nome e uma descrição para nosso plano. A opção de Change serve para determina um periocidade de execução das tarefas propostas no plano. Vamos deixar como estar e determinarmos esse passo lá na frente.

definido nome de plano

  Etapa 5 – Nesta etapa definimos um nome e uma descrição para nosso plano. A opção de Change serve para determina um pré agendamento das execução das tarefas propostas no plano. Vamos deixar como estar e determinaremos esse passo lá na frente.

definindo tarefas_1 Etapa 6 – Nesta etapa definimos a ordem das tarefas. Levando em consideração a imagem a sequência será na checagem do banco de dados, posteriormente o backup do mesmo com a exclusão em seguida dos históricos.

orderm das tarefas Etapa 7 – Nesta etapa definimos qual o banco de dados estará envolvido no plano de manutenção de checagem de integridade.

integridade db Etapa 8 – Nesta etapa definimos qual o banco de dados estará envolvido no plano de manutenção de backup.

define bd backup

Etapa 9 – Nesta etapa definimos o local que ficaram condicionados os arquivos gerados no backup, a extensão, a verificação da integridade desses arquivos e a compressão para reduzir o tamanho do backup.

define bd backup_1 Etapa 10 – Nesta etapa definimos qual histórico queremos manter para análises futuras e o período de remoção. Sugiro se preocupar com essa opção, pois é nela que limpamos os históricos do espacço ocupado no banco msdb.

limpeza historicos Etapa 11 – Nesta etapa definimos a forma de visualização dos relatórios. Optaremos pela envio por email através do operador Windows, considerando a existência da configuração do database mail.

relatórios Etapa 12 – Nesta etapa temos um resumo das tarefas configuradas no plano de manutenção.

resuimo conf  Etapa 13 – Nesta etapa temos a conclusão com sucesso da implantação das tarefas com o plano de manutenção.

sucesso conf  Etapa 14 – Nesta etapa temos o designer de como ficará o plano de manutenção depois de pronto.

designer do plano  Etapa 15 – No designer iremos adicionar uma tarefa bem importante, as notificações. Através desta tarefa é possível sabermos por email se os jobs criados foram executados com sucesso ou falharam.

adicionando notificação Plano de backup criado, agora iremos entender a criação das rotinas de exportação e limpeza dos arquivos de backup gerado no plano anterior.

Etapa 16 – Nesta etapa não entrarei em muitos detalhes, pois foi descrito na etapa 5. Ressaltando apenas que as tarefas em destaque são as de limpeza de histórico, arquivos e execução de um job.

orderm das tarefas_1

Etapa 17 – Nesta etapa não entrarei em detalhes, pois foi descrito na etapa 6.

orderm das tarefas_2    Etapa 18 – Nesta etapa definimos a escolha do job com a script que usaremos para exportação dos arquivos. O job criado nas etapas 1 e 2.

definido execute sql    Etapa 19 – Nesta etapa definimos a localização dos arquivos de backups com extensões bak e periódo de que devemos manter os arquivos baseando-se em sua idade de criação.

definido limpeza     Etapa 20 – Nesta etapa é possível ver o resumo das tarefas criadas no plano, da mesma forma que a etapa 12.

completado plano     Etapa 21 – Nesta etapa designer do plano de manutenção definido com as tarefas de exportação e limpeza, com suas respectivas notificações.

designer do plano_1 Abaixo podemos verificar como ficaram apresentados no SSMS da instância.

Sem título

Bem pessoal, acho que por hoje é só. Caso queiram entender mais sobre as funcionalidades apresentadas neste post, seguem as fontes que auxiliaram na implementação das rotinas. Lembrando que é possível adaptar as rotinas para diversos cenários, seguindo a necessidade de cada ambiente.

Até a próxima!

(Visão geral de backup (SQL Server): http://msdn.microsoft.com/pt-br/library/ms175477.aspx;

(Usar o Assistente de Plano de Manutenção): http://msdn.microsoft.com/pt-br/library/ms191002.aspx;

(Criar um plano de manutenção): http://msdn.microsoft.com/pt-br/library/ms189953.aspx;

(Planos de manutenção): http://msdn.microsoft.com/pt-br/library/ms187658.aspx;

(Criar trabalhos): http://msdn.microsoft.com/pt-br/library/ms186273.aspx;

(Copiando dados com o Robocopy):http://www.linhadecodigo.com.br/artigo/1342/copiando-dados-com-o-robocopy.aspx;

Anúncios