Bem amigos, hoje venho falar de um problema que passei, a falta de um backup automático para salvar a estrutura do BI, caso alguma enfermidade acontecesse ao nosso servidor de BI.
Bom, quando fui pensar na solução me surgiu algumas perguntas:
• O que fazer para salvar os arquivos desejados?
• Onde salvar esses arquivos?
• O que precisamos ter caso o servidor de BI dê problemas?
• Como fazer esse backup?
Então para desenvolver uma solução simples, rápida, e o melhor, DE GRÁTIS (por essas razões não me canso de falar o Pentaho Data Integration – PDI, é o cara) utilizei o PDI e consegui fazer tudo que queria de um jeito rápido e funcional.
Primeiro passo foi definir o que precisava salvar em relação ao BI, então defini que precisaria salvar o catalogo e o repositório (RPD), com isso posso subir um servidor novo com uma instalação nova do RCU sem problemas. Então segui pensando que só a estrutura do BI não teria sentido sem seu modelo dimensional, foi aí que tive que adicionar nos meus arquivos um dump do usuário de BI e para finalizar minhas dúvidas resolvi versionar meu repositório como forma de salvar meu backup.
Definido meu trajeto vamos à construção! Fiz um job chamado ETL_BKP_BI e uma transformação (ETL_LOG_BACKUP) para guardar o log e o status do backup:
Agora vamos detalhar o ETL_BKP_BI, ele é dividido em quarto partes:
1. ETL_PARAMETROS - Uma passagem de parâmetros para dizer a pasta de origem, a pasta de destino e qual o esquema do banco de dados será utilizado nesse backup.
2. BACKUP BI - Um job para copiar o conteúdo desejado do servidor de BI.
3. DUMP BANCO – Um job que faz a cópia do banco.
4. SVN – Um script que envia as informações para o SVN.
Abaixo vamos detalhar cada caixinha citada acima:
1. ETL_PARAMETROS
1.1 Nessa transformação na primeira caixinha passamos 3 parâmetros para o fluxo:
1.2 No próximo passo trabalhamos esses parâmetros para chegar aos endereços das pastas de backup que queremos:
1.3 Após esta etapa o fluxo se divide em 2, um para setar variáveis (1ª imagem) na memória e outro para passar parâmetros pros próximos fluxo (2ª e 3ª imagens):
Com esses processos terminamos a primeira caixinha do ETL_BKP_BI.
2. BACKUP BI
2.1 Começa com a passagem do parâmetro para controlar o status do nosso backup fazendo parte do log:
2.2 Cria a pasta (caso seja necessário) de destino onde será salvo o backup do BI:
2.3 Limpa o conteúdo da pasta do catalogo do BI no destino:
2.4 Copia os arquivos do BI para a pasta de destino:
2.5 Atualiza a variável do log caso os passos seguintes tenham dado certo:
3. DUMP BANCO
3.1 O 1º passo começa com a passagem do parâmetro para controlar o status do nosso backup fazendo parte do log:
3.2 No 2º passo (TRUNCATE_STAGE) Numa transformação, truncamos as tabelas temporárias, tabelas de stage e as que não precisam ser salvas. Esta transformação tem o seguinte conteúdo:
3.3 No 3º e 4º passos, nós criamos a pasta DUMP e limpamos a mesma caso esses passos sejam necessários:
3.4 O 5º passo chama um script que é responsável em fazer o export do banco de dados:
OBSERVAÇÃO: note no arquivo dump.bat os parâmetros %1 e 2% eles foram passados pelo ETL_PARAMETRO, neste caso os parâmetros correspondem à “PASTA_DESTINO” e “ESQUEMA”.
3.5 O 6º passo compacta o arquivo de dump, nas imagens temos duas abas, atenção nas duas, pois precisamos configurar as duas:
3.6 O 7º e último passo deste job é atualizar a variável do log caso os passos seguintes tenham dado certo:
4. Set variables SVN = N
Este passo adiciona a variável STATUS_SVN ao fluxo, pois a mesma será utilizada pelo log.
5. SVN
Nesta etapa executamos um script para que os arquivos salvos sejam enviados ao SVN.
6. Set variables SVN = S
Para finalizar esse job, caso todo o backup do BI tenha dado certo, nós atualizamos o valor da variável STATUS_SVN para S, garantindo que tudo deu certo e passando para o fluxo que será utilizado pelo log.
Agora que já comitamos todo o backup do nosso BI, resta apenas registra o nosso log no banco de dados, quem faz isso no nosso ETL é a transformação ETL_LOG_BACKUP. Na verdade é uma transformação muito simples, que pega alguns parâmetros do sistema, as variáveis setadas nos Jobs anteriores e o log do penatho, de acordo com as imagens abaixo:
O 1º passo pega as informações do sistema:
O 2º passo pega as variáveis do STATUS dos Jobs anteriores:
O 3º passo renomea e organiza os campos para salvar na tabela:
E o 4º e último passo salva as informações no banco de dados:
Com isso finalizamos o nosso backup de BI, basta apenas escolher onde e como agendar seu backup da melhor forma possível. Espero que tenham gostado do artigo e fico sempre disponível para tirar quaisquer dúvidas e esclarecimento que não ficaram claros no texto. rsrsrsrsrs