Backup e segurança de dados

Olá pessoal.

Em breve implementarei pela primeira vez o ScadaBR em um cliente. Venho testando ele há algum tempo, e como ainda encontro alguns problemas de tempos em tempos, tenho uma grande preocupação com a segurança dos dados.

Minha idéia é instalar o ScadaBR em uma máquina vitual, de modo que no caso de qualquer problema eu possa voltar rapidamente ao estado inicial.

Gostaria de discutir maneiras e procedimentos para garantir a segurança dos dados, incluindo:

Maior compreensão das configurações de datapoints:

  • Opção “descartar” em “propriedades do registro”. Por exemplo, se eu escolho um ano, todo dias às 3:05 da manhã o ScadaBR descartará do banco de dados os dados de um ano atrás, correto?
  • “Tamanho de armazenamento padrão”. Aqui é setado quantos dados são mantidos na RAM, e só após eles são gravados na base?
  • “Descartar agora”. Tentei usar essa opção e o sistema ficou processando muito tempo, quase uma hora. Aí eu cliquei em outro ícone e o sistema corrompeu. Não consigo mais entrar nem na página de login. Como é uma versão de testes, não há problemas, mas não posso correr esse tipo de risco com uma instalação para um cliente. A algo a fazer neste caso? Ou é melhor evitar usar essa opção?

Base de dados:

  • Qual a maneira apropriada de se fazer um backup periódico da base de dados?
  • Se for necessário restaurar o sistema, como proceder com a restauração do backup?
  • No caso de um desastre como o descrito acima, é possível recuperar a base de dados para posteriormente reinstalar o sistema?
  • Em termos de segurança, é recomendável a substituição do derby pelo mysql?

Desculpem a quantidade de dúvidas! Espero que mais gente tenha estas preocupações também e possamos definir um procedimento para garantir a segurança dos dados.

Rodrigo Martinho.

Alguém?

Fiz mais alguns testes.

  • Mudança de banco de dados. De acordo com o manual do ScadaBR, basta modificar o arquivo “/WEB-INF/classes/env.properties”. Criei via phmyadmin um banco de dados mysql em branco e um usuário para ele. Editei esse arquivo em uma instalação nova, colocando os dados do banco de dados e usuário e aparentemente tudo funcionou de acordo.

  • Backup e restauração. Criei um datasource e um datapoint nesta instalação. Via phpmyadmin exportei o banco de dados, importei ele para um novo banco e fiz uma nova instalação com o banco de dados importado. Tudo funcionou de acordo.

Conclusão: mudando o banco de dados para mysql e uando o phpmyadmin pode-se fazer o backup e restauração da base de dados para uma nova instalação. Creio que isso deva ser o suficiente para a restauração do sistema em caso de desastres, a não ser algum eventual problema no ScadaBR possa corromper a base de dados.

Tentarei descobrir alguma método para a realização automática de backups, de tempos em tempos, da base de dados. Neste caso, talvez seja viável não utilizar o descarte automático dos dados da base, descartando-os manualmente após o backup do banco de dados, de modo a se possuir um backup completo do histórico.

Ainda restam as dúvidas sobre as configurações dos datapoints.

Retomando os testes para a versão 0.9.1.

Eu não tinha testado ainda a função “importar/exportar” do próprio ScadaBR. Testei ela (apenas um datasource e um datapoint) na versão 0.9, antes de instalar a versão 0.9.1, e funcionou. Vi que uma das mudanças da versão 0.9.1 era uma correção desta função. Como ficou? Está funcionando corretamente, de modo que podemos confiar nela em ambientes de produção?

Vou instalar agora a versão 0.9.1 e testar novamente.

Exportei um projeto maior (zip de aproximadamente 8,5 MB) de uma instalação 0.9, instalei uma instância da versão 0.9.1 e tentei importar o zip. O sistema ficou indefinidamente na tela de importação. Dei um "back’ no browser e o sistema corrompeu. Quanto deveria uma importação destas demorar? Em um dos testes esperei em torno de 2 horas…

Como comentado anteriormente, a importação direta da base de dados via phpMyAdmin funcionou, mas ela não é uma importação completa, pois não contempla as figuras da pasta “graphics” nem a imagem de fundo da representação gráfica, ainda que os widgets funcionem exatamente como antes.

Pessoal do desenvolvimento, ainda há algum problema com a função de importação/exportação?

Abraço,

Rodrigo Martinho.

Outra questão. Qual o procedimento correto para fazer o upgrade de uma instalação?

Nos posts acima eu estava tratando de maneiras de fazer uma instalação nova e importar o projeto de outra instalação anterior. Mas e no caso de apenas se fazer o upgrade de uma instalação para uma versão mais nova?

Pessoal, mais alguém com problemas com importação/exportação no upgrade do sistema?

Rodrigo, estou com dúvidas tb, agora que já acabei meu trabalho de mestrado e tenho um pouco de tempo, estou querendo migrar da versão 0.8.6 para a versão 0.9.1, mas não sei nem como desinstalar a versão 0.8.6, instalar a nova é fácil, isso se partir do zero, agora será que todos os passos tem que ser feitos para a instalação da nova versão ou o tomcat pode permanecer, o openjdk tb? sei lá, para falar a verdade ainda, nem sei em que diretórios estão todas os arquivos instalados, porque creio que estão em vários diferentes.
Gostaria de uma ajuda tb de como desinstalar a versão antiga e instalar a nova e de como fazer a migração dos arquivos antigos para esta nova versão.

Aguardando pronunciamento dos desenvolvedores.

Oi Fábio.

Para desinstalar não basta apagar a pasta do ScadaBR dentro de webapps? Ou usar a função “undeploy” do Tomcat?

Para uma instalação nova, já obtive sucesso com a migração da base de dados mysql via phpmyadmin. Faz-se a cópia da base de dados antiga, a instalação nova do ScadaBR e, antes do 1o. login ao sistema, é só editar o arquivo WEB-INF/classes/env.properties, comentando as linhas do derby e descomentando e editando as linhas do mysql de acordo com as características da base dados copiada. Mas esse método não representa uma restauração completa, já que não traz nem a pasta de imagens nem as figuras de fundo das representações gráficas. Isso é o que eu detectei até agra, talvez existam outras coisas independentes da base de dados que também não são importadas por esse método.

A outra opção é a função importar/exportar nativa do ScadaBR, que a princípio seria um backup completo do sistema, mas tive problemas com essa função para um projeto com poucos datasources e alguns meses de histórico de dados. Para uma instalação de teste recém feita, com apenas 1 datapoint e nem uma hora de histórico de dados, ele funcionou. Mas não fiz outros testes além destes.

Além destas opções para instalação de um sistema “zerado”, gostaria também de saber de alguma opção para upgrade direto de algum sistema já funcionando. Não achei nada a esse respeito ainda.

Me parece que a função nativa de exportação/importação seria o melhor caminho, pois serviria também para o backup de uma instalação, algo que procuro (o post original era com este intuito) para dar segurança a uma instalação de um cliente, onde não posso me dar ao luxo de perder dados. Mas se descobrirmos quais dados de uma instalação são independentes da base de dados, pode-se também fazer o backup destes dados e da base de dados separadamente e teríamos um backup completo independente da função nativa. Se forem só as imagens de fundo da representação gráfica e os widgets está fácil.

Pessoal do desenvolvimento? Algum teste com a função nativa de exportação/importação? Podem confirmar quais dados do sistema são independentes da base de dados?

Fiz mais um teste de exportação de uma instalação 0.9 e importação em uma instalação 0.9.1. Funcionou de acordo. Pelo jeito esta função apresenta problemas para projetos acima de um determinado tamanho.

Outro probleminha encontrado foi com a acentuação. Uso o banco de dados com collation UTF-8 general. Após a importação, o acentos são trocados por uma interrogação. Deveria usar outro collation para o banco de dados?

Outra coisa, apesar de a importação direta do banco de dados ter funcionado para projetos maiores, como houve mudanças nas tabelas da versão 0.9 para a 0.9.1, a princípio esse procedimento não seria recomendado, correto?

oi, você pode me ajudar a criar o banco de dados no phpmyadmin para ScadaBR, por favor? Obrigada.

Aqui tem um tutrial: http://webvaultwiki.com.au/Default.aspx?Page=Create-Mysql-Database-User-Phpmyadmin&NS=&AspxAutoDetectCookieSupport=1