Backup Automático PostgreSQL
Este Artigo tem como objetivo, a descrição detalhada da geração da Rotina de Backup Automático do Banco de Dados.
Especificações necessárias
Neste primeiro tópico do artigo, iremos focar e explicar os pontos que são necessários para, executar o processo de backup automático do banco de dados, sendo eles:
Banco de Dados (PostgreSQL)
Neste primeiro subtópico iremos detalhar o porque, do SGBD escolhido para trabalhar a aplicação de execução de backup automático ter sido o PostgreSQL, para darmos inicio é preciso partir do pressuposto de que, o sistema de controle de acesso da NwayPro já se encontra instalado no cliente, com isto, e devido o padrão da instalação do sistema no que se referente ao banco, ser com o Postgres e o PGAdmin, devemos focar na produção da rotina de backup automático voltado para este SGBD no caso.
Editor de Texto (Bloco de notas ou Notepad++)
Neste segundo subtópico iremos explicar a importância da utilização de editores de texto como, bloco de notas ou notepad++ por exemplo, pois bem, os mesmos se devem exclusivamente pela, I - fácil utilização, e II - instalação (esse segundo ponto no caso se referindo ao notepad++), claro que fica de sua escolha qual o melhor editor para se utilizar. Seguindo em frente, vamos informar qual a necessidade da utilização dos editores de texto, para a produção da aplicação da rotina de backup automático, pois bem, o que será produzido por meio do editor de texto, será uma aplicação executável com extensão .BAT, isso significa que a mesma precisará ser produzida por meio de linhas contendo trechos de código, e será neste ponto que os editores se encaixaram, pois por meio dos mesmos será possível modificar e adicionar informações do trecho de código da aplicação.
Seguindo em frente neste artigo, iremos dar início no processo para executar a rotina de backup automático, na máquina do cliente.
Informações necessárias
Neste segundo tópico do manual focaremos nas informações que serão necessárias, para elaborar o executável da rotina de backup automático, pois bem, no primeiro subtópico teremos presente as informações dos dados do banco que serão necessárias, pois como já foi introduzido nos subtópicos anteriores, será preciso produzir uma aplicação com as informações referente ao banco do cliente. Já no segundo subtópico será necessário ás informações do servidor, ou seja, local onde serão salvos os backups produzidos por meio da rotina.
Informações do Banco
Das informações do banco que serão necessárias para, a produção do executável da rotina de backup automático temos:
I - Caminho da pasta bin, dentro da versão do PostgreSQL utilizada:
Está informação é necessária para o executável, pois o mesmo necessitará saber qual versão do PostgreSQL ele acessará, e qual a estrutura da pasta Bin, pois a aplicação precisa acessar o caminho onde se encontra o bin para se utilizar do pg_dump.exe, que é o arquivo onde se encontra os dados e informações dos bancos a nível de registro, segue o exemplo do caminho a ser utilizado:
C:\Program Files\PostgreSQL\9.5\bin
II - Host de conexão onde está criado o banco:
Está informação é necessária para o executável, pois o mesmo necessita saber o IP onde se encontra o banco, segue o exemplo de ip registrado na aplicação executada no servidor:
127.0.0.1
III - Porta cadastrada no Postgresql:
Está informação é necessária para o executável, pois o mesmo necessita saber qual a Porta foi configurada no PostgreSQL no momento de sua instalação, assim executando todo o processo de forma correta, pois poderia, segue o exemplo de uma porta registrada na aplicação:
5432
IV - Usuário de acesso ao banco:
Está informação é necessária ao executável, pois o mesmo tem necessidade de saber o Usuário configurado e que possui acesso ao banco, segue exemplo de usuário padrão registrado na aplicação executável:
Postgres
Com essa informação de usuário de acesso ao banco, á aplicação consegue executar suas ações como usuário “master", e com isso, não terá nenhum bloqueio para efetuar a ação de backup do banco em questão.
V - Senha de acesso ao banco:
Está informação é necessária ao executável, pois o mesmo necessita saber qual a Senha foi configurada, para o banco no qual ele executará o backup automático, segue o exemplo de senha registrada na aplicação:
Nway2020pro
VI - Nome do banco:
Está informação é necessária ao executável, pois o mesmo necessita saber o Banco no qual, ele executará o processo de backup automático, para que seja garantido assim, todo o processo executado de forma correta, segue o exemplo de nome registrado na aplicação:
nwaypro
Informações do Servidor
I - Caminho onde será salvo os backups:
Está informação e necessária ao executável, pois o mesmo necessita saber qual o caminho onde salvar os arquivos elaborados por meio da aplicação, dentro da máquina onde o mesmo será executado, segue o exemplo de caminho registrado na aplicação:
C:\Users\usuario\Documents\backups\ClienteX_%All%.backup
Todo o processo a cerca das especificações necessárias apresentadas neste tópico, serão explicadas e detalhadas nos tópicos seguintes.
Processos de execução
Neste Terceiro tópico do manual, se já estiver tudo organizado conforme oque foi apresentado nos tópicos anteriores, focaremos no processo de criação da aplicação executável, ou seja, “é hora de por a mão na massa”.
Produção da aplicação executável
Antes de darmos inicio a produção da aplicação executável, vamos precisar tomar como exemplo, a seguinte estrutura de código:
Tomando como base o mesmo será possível elaboramos nossa aplicação, seguindo vamos explicar os trechos de código para o entendimento melhor do processo como um todo:
@echo off
I – No primeiro trecho temos o início do código com a expressão @echo off, que server como meio para dar um “start” na aplicação, assim sendo, o mesmo sempre precisará se manter deste modo, sem mudança de sua localização no código.
@For /F "tokens=1,2,3,4 delims=/ " %%A in ('Date /t') do @(
Set DayW=%%A
Set Day=%%B
Set Month=%%C
Set Year=%%D
Set All=%%A%%B%%C%%D
)
II – No segundo trecho temos a função responsável por “disparar” a ação diária do backup, onde no mesmo será registrado o dia, mês e ano da execução do backup.
for /f "tokens=1,2,3,4 delims=/ " %%a in ('DATE /T') do set PGPASSWORD=nway2020pro
III – No terceiro trecho temos a função responsável por dar início a ação diária do backup, já se utilizando de uma das informações do banco, como pode ser observado á mesma se utiliza da informação da senha do banco, bastando assim nesta linha em questão, modificar somente a informação após o sinal de igualdade apresentado, e que tem a nomenclatura nway2020pro, pela senha do seu banco de dados.
cd C:\Program Files\PostgreSQL\9.5\bin"
IV – No quarto trecho iremos dar continuidade na utilização das informações do banco, nesta função a mesma se utilizará do caminho até a pasta Bin presente na versão do PostgreSQL utilizado, bastando assim nesta linha em questão, substituir com caminho correto onde está salvo a pasta bin no servidor do cliente.
pg_dump.exe --host 127.0.0.1
V – No quinto trecho iremos dar continuidade na utilização das informações do banco, neste trecho em questão será necessário adicionar o IP onde se encontra o banco, além de apontar para a aplicação do Pg_Dump também muito importante para o processo como um todo, bastando assim caso a aplicação esteja sendo executada no servidor permanecer como Localhost 127.0.0.1, porém caso a mesma seja executada em outra máquina que possui o acesso ao sistema, a única alteração a ser realizado no trecho de fato será, substituir pelo ip 127.0.0.1, pelo ip real do servidor.
-username "postgres" --format custom --blobs --verbose --file
VI – No sexto trecho iremos dar continuidade na utilização das informações do banco, nesta função a mesma se utilizará do usuário que foi configurando como usuário admin de acesso ao banco, ou seja, o usuário que possui acesso total ao banco, podendo modificar e adicionar informações no mesmo, bastando assim nesta linha em questão, substituir somente oque se encontra entre aspas, com o nome do usuário, caso o usuário do banco, seja diferente do apresentado no exemplo.
"C:\Users\usuario\Documents\backups\clienteX_%All%.backup" "nwaypro"
VII – No sétimo trecho iremos dar continuidade na utilização das informações do banco, além de informar para a aplicação onde salvar o backup gerado, das informações referentes ao banco que iremos utilizar neste trecho, temos o nome do banco, o mesmo vem após todo o caminho onde será salvo o backup gerado, bastando assim substituir oque se encontra entre aspas com nome do banco do cliente.
Já na parte que se refere ao caminho para salvar o backup gerado, o mesmo será de sua escolha, bastando somente ter cuidado alguns pontos:
⦁ Escolher um local seguro onde salvar os backups, recomendamos criar uma pasta exclusiva para salvar os backups.
⦁ No final do caminho adicionar da forma como está no trecho \clienteX_%All%.backup, sendo necessário para o mesmo apenas modificar o trecho onde se encontra ClienteX, e substituir pelo nome do cliente em questão, esta parte do caminho servirá para informar a aplicação que o arquivo a ser salvo é um backup, e que será gerado com a data do dia, em que a execução ocorreu.
exit
VIII – No oitavo e ultimo trecho, iremos dar fim á aplicação e ao trecho de código, por meio do uso da função exit, que servirá justamente para finalizar a execução da aplicação.
Passo a passo
Neste subtópico iremos dar início em todo o processo para a criação da aplicação executável, da rotina de backup automático, por meio do passo a passo detalhado para elaboração do mesmo:
I - Abrir editor de texto:
De início devesse abri o editor de sua escolha, para realizar as devidas adições e modificações no código da aplicação, seja ele Notepad ++ ou Bloco de notas, como informado em tópicos anteriores;
Obs: Utilizaremos neste passo a passo como exemplo, o editor de texto notepad++ .
II - Modificar exemplo do documento com as informações do banco:
Dando continuidade, copie e cole as informações do exemplo de código, apresentado no tópico anterior, no editor de texto que você selecionou:
Realize modificações no mesmo, já adicionando as informações do banco no qual será executado a rotina, como pode ser observado no exemplo abaixo:
Obs: como foi possível observar, foi realizado as devidas alterações, nos campos referentes às informações do banco.
III - Salvar arquivo com extensão .bat:
Para Finalizar confira se todas as modificações realizadas no código estão corretas, e salve a aplicação com nomenclatura desejada, e com a extensão .bat, como pode ser observado na imagem a baixo:
Como foi possível observar, o mesmo assim que for salvo gerará uma aplicação executável com o seguinte ícone:
Ao se clicar para executar a aplicação, a mesma realiza processo de backup e salva o arquivo com extensão .backup, no caminho setada no código onde, se encontrará a pasta onde salvar a mesma, como pode ser observado na imagem abaixo, onde é demonstrado ela sendo executada e criando o arquivo:
No tópico seguinte iremos apresentar a construção da rotina, que irá executar automaticamente nossa aplicação.
Elaboração da Rotina
Neste tópico iremos finalizar o artigo e também o processo referente á execução da rotina de backup automático, bastando assim para realizar o mesmo, seguir o passo a passo apresentados a seguir:
Passo a passo
I - Abrir o Agendador de Tarefas:
Para darmos início em todo o processo de rotina de backup, nós utilizaremos do Agendador de Tarefas do windows, pois por meio do mesmo, conseguiremos executar na máquina de forma automaticamente, a aplicação executável criada no tópico anterior , pois bem, comece pesquisando pelo agendador de tarefas e abra o mesmo;
II - Criar Tarefa Básica:
Seguindo em frente vamos criar uma tarefa básica, clique em “Criar Tarefa Básica”, será disponibilizado uma nova janela
Em seguida dê um “Nome” para sua tarefa, ao finalizar a inserção do dados clicar no botão “Avançar” para dar continuidade:
Já seguindo para o passo seguinte “Disparador”, escolha a opção “Diariamente”, com isso será informado que o processo do backup automático, será executado todos os dias, o que é o recomendado, porém fica de sua escolha o temo no qual ele realizará a ação:
Após escolher a opção Diariamente configure a Data e Horário na qual a tarefa vai se ter o início, e também o número de vezes que a mesma será repetida, durante os dias seguintes, desde o momento da criação da mesma, é recomendado permanecer a numeração 1 no campo “Repetir a cada…” :
Já no campo de Ação, escolher a opção de “Iniciar um Programa”:
Com isso, você será levado até a opção, para efetuar a busca pela aplicação da rotina de backup automático, clicar no botão “Procurar…” e realize a busca onde foi salvo a mesma, e adicione, e para prosseguir clicar em “Avançar”:
Para finalizar este segundo ponto, basta marcar o campo “Abrir a caixa Propriedades da tarefa depois de clicar em concluir”, para que com isso após clicar em “Concluir”, seja possível configurar as últimas informações necessárias para finalizar a preparação da rotina;
III - Configurar Tarefa:
Neste último ponto iremos focar nas últimas configurações, a serem executadas para a nossa rotina. Sendo elas as que se encontram presentes na seção Opções de Segurança, nessa seção em questão será necessário deixar marcado o campo “Executar o usuário estando conectado ou não (para que a rotina seja executada mesmo sem internet)”, e “Executar com os privilégios mais altos (para executar a rotina como usuário admin)”:
Também será preciso escolher o sistema operacional do servidor onde está sendo realizado o processo:
Para finalizar basta clicar em “Ok” para que sua tarefa seja criada, e assim a mesma executará a rotina de backup, a partir da data de hora que você informou, e nos dias subsequentes.
Com isto, o processo da nossa rotina de backup automático chega ao seu final, juntamente com este artigo, esperamos que tenha sido prático a produção da rotina por meio dos passos aqui descritos, e que as informações presentes no mesmo, tenham sido de ajuda para elaborar o processo proposto.