Autor Tema: Perdida de datos  (Leído 9510 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Rubendgl

  • Jr. Member
  • **
  • Mensajes: 65
    • Ver Perfil
    • MeteoNigran
  • Estación: ESGAL3600000036350C
Perdida de datos
« en: 10 de Octubre del 2019, 17:56:43 pm »
Saludos,
el problema es el siguiente:
Tengo weewx funcionando desde mediados de septiembre, todo correcto hasta hace 2 días que se ha vuelto loca la Pi. Han empezado a surgir errores por todas partes hasta que definitivamente he perdido el control total tanto por ssh como directamente desde teclado.
No me ha quedado otra que preparar todo en una nueva tarjeta y poner a funcionar de nuevo el sistema.
La sorpresa es que ahora solo me aparecen datos desde principios de octubre. Yo suponía que el datalogger almacenaba datos durante mas tiempo, pero no. Y ahora he perdido los meses anteriores.
Milagrosamente, un día antes de suceder el estropicio había realizado una copia del archivo weewx.sdb.
Si sustituyo el .sdb actual por la copia que tengo, los días restantes me los rellena el weewx con los datos del datalogger ???.
Gracias.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Perdida de datos
« Respuesta #1 en: 10 de Octubre del 2019, 18:07:17 pm »
Hola

Sí. Borra o mueve a otro sitio el archivo weewx.sdb de /var/lib/weewx que tienes ahora y pon el que tienes de la copia de seguridad. Debería ser tan fácil como eso.

El datalogger guarda datos según el intervalo que le tengas puesto. Cada 5 minutos debería almacenar sobre 12 días, cada minuto sobre 2 días.

Haz el cambio de base de datos con weewx detenido.

Saludos


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado Rubendgl

  • Jr. Member
  • **
  • Mensajes: 65
    • Ver Perfil
    • MeteoNigran
  • Estación: ESGAL3600000036350C
Re:Perdida de datos
« Respuesta #2 en: 10 de Octubre del 2019, 18:58:27 pm »
Correcto, cada 5 min. es como lo tengo configurado.
He renombrado el weewx.sdb a weewx.sdb_orig y copiado el del backup.
Ahora aparece el mes de agosto y octubre correctos pero septiembre solo aparece el último día.
En las gráficas solo aparecen los datos de octubre. Es posible que necesite tiempo para generar todo o debería salir ya ??.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Perdida de datos
« Respuesta #3 en: 10 de Octubre del 2019, 19:45:14 pm »
Para weewx y ejecuta sudo wee_reports

Debería de generarte todos los informes.


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Perdida de datos
« Respuesta #4 en: 10 de Octubre del 2019, 20:18:40 pm »
Para los gráficos he encontrado esto en el foro de weewx:

The image files are generated at different frequencies depending on the period covered by the plot(day plots every archive period, month plots every 3 hours, year plots every 24hours).

Las imágenes son generadas a diferentes frecuencias dependiendo del periodo cubierto por el gráfico (el del día se genera cada actualización de weewx, el del mes cada 3 horas, el del año cada 24 horas).

O sea, que tocará esperar a esos intervalos


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado Xavi-EA5ZF

  • Full Member
  • ***
  • Mensajes: 214
  • Ham Radio Operator EA5ZF
    • Ver Perfil
    • MeteoLaVall
  • Estación: ESPVA1200000012600A
Re:Perdida de datos
« Respuesta #5 en: 13 de Octubre del 2019, 10:06:32 am »
O de otra forma, si borras las imágenes en el directorio de publicación de la web, se regenerarán solas en el próximo periodo...

Desconectado Rubendgl

  • Jr. Member
  • **
  • Mensajes: 65
    • Ver Perfil
    • MeteoNigran
  • Estación: ESGAL3600000036350C
Re:Perdida de datos
« Respuesta #6 en: 14 de Octubre del 2019, 19:12:58 pm »
Muchas gracias a los dos.
He hecho las dos cosas que comentais y ahora si aparencen los datos en las gráficas de todos los meses.

Sin embargo, el mes de septiembre sigue saliendo sin datos en el sumario mensual que genera el archivo NOAA-2019-09.txt.
Me pregunto si es seguro borrarlo y esperar a que lo vuelva a generar de nuevo ??.
Otra cosa que me he fijado es que todos los archivos de la carpeta weewx/NOAA/ tienen permisos 644 y precisamente ese que no se actualiza los tiene 755.
Puede esto influir ?.
Gracias.

Desconectado Xavi-EA5ZF

  • Full Member
  • ***
  • Mensajes: 214
  • Ham Radio Operator EA5ZF
    • Ver Perfil
    • MeteoLaVall
  • Estación: ESPVA1200000012600A
Re:Perdida de datos
« Respuesta #7 en: 14 de Octubre del 2019, 19:57:57 pm »
Citar
Permiso   Valor   Descripción
rw– ––– –—   600   El propietario tiene permisos de lectura y escritura
rwx ––x ––x   711   El propietario lectura, escritura y ejecución, el grupo y otros solo ejecución
rwx r-x r-x   755   El propietario lectura, escritura y ejecución, el grupo y otros pueden leer y ejecutar el archivo
rwx rwx rwx   777   El archivo puede ser leído, escrito y ejecutado por quien sea
r–– ––– –—   400   Solo el propietario puede leer el archivo, pero ni el mismo puede modificarlo o ejecutarlo y por supuesto ni el grupo ni otros pueden hacer nada en el
rw- r-– –––   640   El usuario propietario puede leer y escribir, el grupo puede leer el archivo y otros no pueden hacer nada

Como verás el 755 es superior al 644 y no debería entorpecer la generación, mas bien parece que si no has partido de un buen backup has perdido varios días de datos.
Mi consejo: incorpora una buena política de copia de base de datos y exportación de tablas para minimizar el peligro de pérdida de datos con caracter diario.
Aún así, de cuando en cuando se pueden perder datos, pero siempre serán mínimos periodos de tiempo. En mi caso he tenido corrupción de memoria del dataloger y pierdo algunos minutos si la hora estaba mal o si había registros erróneos en él.
Weewx no es un programa que rueda y ya está, es un programa en un entorno linux que muchos no conocen bien y que además rueda de forma crítica en plan 24/7/365 y por tanto hereda sus ventajas y sobre todo también sus complicaciones.
Por otra parte y volviendo a tu problema, si borras uno o varios ficheros mensuales NOAA, el sistema en cuanto lo pares y arranques los volverá a generar si tienen suficientes datos.
Salu2
Xavi

Desconectado Rubendgl

  • Jr. Member
  • **
  • Mensajes: 65
    • Ver Perfil
    • MeteoNigran
  • Estación: ESGAL3600000036350C
Re:Perdida de datos
« Respuesta #8 en: 14 de Octubre del 2019, 20:26:46 pm »
Pues efectivamente a veces las cosas son mas sencillas de lo que parece.
Borrar archivo y generar de nuevo. Tan fácil como eso. Ya he recuperado todos los datos.
Para finalizar una última pregunta, espero, sobre esto.
Para realizar la copia de seguridad de la base de datos debo detener el programa ???.
O puedo crear un script para realizar el proceso y añadirlo al cron y que se ejecute automáticamente ??.
He leido por algún lado esto pero dudo si así puede generar datos erroneos al estar funcionando el programa.
Saludos.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Perdida de datos
« Respuesta #9 en: 14 de Octubre del 2019, 22:10:12 pm »
Para finalizar una última pregunta, espero, sobre esto.
Para realizar la copia de seguridad de la base de datos debo detener el programa ???.
O puedo crear un script para realizar el proceso y añadirlo al cron y que se ejecute automáticamente ??.
He leido por algún lado esto pero dudo si así puede generar datos erroneos al estar funcionando el programa.
Saludos.

Lo mejor es pararlo. A weewx como a cualquier programa no le gusta que se maneje o esté abierta la base de datos cuando está escribiendo.

Te pongo el script que yo tengo para la copia de seguridad tanto de la base de datos como del archivo de configuración weewx.conf en un pendrive:

Código: [Seleccionar]
#!/bin/bash

mount|grep -q "/mnt/usb" || mount /dev/sda1 /mnt/usb

/etc/init.d/weewx stop

tar czf /mnt/usb/weewx.tar.gz -C /var/lib/weewx weewx.sdb -C /etc/weewx weewx.conf

/etc/init.d/weewx start

Tendrás que crear una carpeta llamada usb en la carpeta /mnt de la raspi (sudo mkdir /mnt/usb)

El script detectará si hay memoria usb y la copiará en ella. Si no es sda1 el pendrive pon en el script el que es.

Creo que también está por ahí un script para enviarla por FTP en el foro.

Para el cron usas el crontab de root (sudo crontab -e)

2 0 * * * /home/pi/copiaweewx.sh

Esa línea te hará la copia de seguridad con el script en /home/pi cada día a las 0:02

Dale al script permisos de ejecución (sudo chmod +x copiaweewx.sh)

Adjunto el script ya en el mensaje.

En cuanto a los permisos es como te explica Xavi. De las tres cifras la primera es la del propietario (user) donde un 1 es permiso de ejecución (x), un 2 es permiso de escritura (w) y un 4 es permiso de lectura (r). Se pueden sumar y las tres juntas hacen el 7 (todos los permisos rwx). Las otras dos cifras son grupo y otros.
Si el archivo es propiedad de root y se usa el usuario pi el 7 en "otros" le dará todos los permisos.

Saludos


« Última modificación: 15 de Octubre del 2019, 06:31:44 am por jmviper »


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado Rubendgl

  • Jr. Member
  • **
  • Mensajes: 65
    • Ver Perfil
    • MeteoNigran
  • Estación: ESGAL3600000036350C
Re:Perdida de datos
« Respuesta #10 en: 15 de Octubre del 2019, 20:50:57 pm »
Muchas gracias, lo probaré.

Un saludo,

Desconectado Rubendgl

  • Jr. Member
  • **
  • Mensajes: 65
    • Ver Perfil
    • MeteoNigran
  • Estación: ESGAL3600000036350C
Re:Perdida de datos
« Respuesta #11 en: 25 de Octubre del 2019, 10:38:54 am »
Buenos días,
regreso con unas dudillas sobre este tema.
jmviper, he probado tu script y desconozco el motivo pero no me ha funcionado.
Me aparece una copia pero no sale con el tamaño que debería y además está corrupta, no se el motivo.
Al final he optado por modificar fstab para que se automonte el pendrive y hacer una copia directa y fin del problema.
Código: [Seleccionar]
#!/bin/bash

/etc/init.d/weewx stop

cp -r /var/lib/weewx /media/weewxsdb

/etc/init.d/weewx start

La cuestión es la siguiente, desde que tengo esto funcionando me han aparecido dos incidencias de perdida de lluvia, un día 0,2mm y otro 0.6mm.
Pregunto: Es posible que sea durante el tiempo que el weewx está parado haciendo la copia ??.
Yo entiendo que no ya que el datalogger almacena los datos y los recupera el weewx al iniciarse, estoy en lo cierto ??.

Saludos

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Perdida de datos
« Respuesta #12 en: 25 de Octubre del 2019, 11:27:10 am »
Hola

Pues lo mejor será ver si faltan esos tiempos en la base de datos (tabla archive)... cada cuanto graba registros weewx ? cada minuto o cada 5 minutos ?
No creo que tarde más de 1 minuto en copiar la BBDD y en ese intervalo deje de grabar un registro. Como tú dices debería tirar de datalogger.

Según veo en tu script has optado por copiarla directamente al pendrive sin comprimirla. No debería de corromperla tar czf (por lo menos a mí no me la corrompe). Ten en cuenta que cada vez la base de datos será más y más grande y tardará más en copiarla y el tiempo que esté parado weewx.

Saludos


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado Xavi-EA5ZF

  • Full Member
  • ***
  • Mensajes: 214
  • Ham Radio Operator EA5ZF
    • Ver Perfil
    • MeteoLaVall
  • Estación: ESPVA1200000012600A
Re:Perdida de datos
« Respuesta #13 en: 25 de Octubre del 2019, 18:29:47 pm »
Una cosa es hacer un backup copiando el archivo de datos y entonces si que conviene parar la BBDD, pero con sistemas de gestión de bases de datos SQL tal como SQLSERVER, ORACLE,etc, no es imprescindible pararla.
A nivel básico se pueden hacer copias de 3 formas o niveles.
1- Parando y copiando los archivos físicos donde están los datos o sea sacando una "foto".
2- Haciendo un dump o volcado de la base de datos de forma total.
3- Haciendo exportación de las tablas de la base de datos.

El sistema primero es totalmente físico. Yo uso este script:
Citar
#!/bin/bash
#
#Definimos la fecha y el nombre de la carpeta
fecha=$(date +"%Y_%m_%d")
carpeta="backup_$fecha"
#
#Se monta el disco en red
#mount 192.168.0.78:/datos /mnt/nfs
mount -t vfat /dev/sdb /mnt/nfs
#
#Vamos al directorio donde hacemos la copia
cd /mnt/nfs/weewx/backup/
#
#Creamos la carpeta del dia
mkdir $carpeta
#
#Entramos en la carpeta generada
cd $carpeta
#
tar -cf var-lib-weewx.tar /var/lib/weewx/*
#
#Salimos del directorio
cd /
#Desmontamos el disco de red
umount /mnt/nfs
#
exit 0

Para el segundo sistema este:
Citar
#!/bin/sh
#
# dump_archive.sh
#
# requires sqlite3 (apt install sqlite3)
# adjust following line with path/file.sdb
DBFILE="/var/lib/weewx/weewx.sdb"
# dump
echo "Dump BBDD archive file $DBFILE to $DBFILE.dump.gz"
echo '.dump' | sqlite3 $DBFILE | gzip -c >$DBFILE.dump.gz
mv $DBFILE.dump.gz /home/pi/

Y para el tercer tipo de copia este script:
Citar
cd /home/pi
# sqlite3 /var/lib/weewx/weewx.sdb 'select * from archive;' > dump_archive.txt
DBFILE="/var/lib/weewx/weewx.sdb"
# dump
echo "Dump sqlite archive file $DBFILE to $DBFILE.dump.gz"
echo 'select * from archive;' | sqlite3 $DBFILE | gzip -c >/home/pi/dump_archive.txt.gz

Evidentemente están personalizados con mis puntos de montaje, mis directorios, etc.
Para recuperar cada tipo es diferente, el primero se hace parando y fisicamente copiando el fichero con la BBDD weewx.
El segundo habría que generar una BBDD vacía o borrar contenidos de tablas y hacer una importación del fichero dump.
El tercero es el que uso mas a menudo en caso de problemas ya que para recuperar meto una base de datos anterior y hago importación de las tables, habiendo eliminado antes las cabeceras con las creaciones o borrados que lleva en el código. Como por defecto no pueden haber campos duplicados solo se importan los registros que no existen previamente en la BBDD o sea que la actualizo al punto de cuando se sacó el backup.
Normalmente con las Davis y su dataloger, paro BBDD, recupero una anterior, hago la importación y luego actualizo con el contenido del dataloger hasta ponerme al día, normalmente no pierdo ni un solo periodo de datos aunque para reparar haya parado varias horas o incluso con una rotura de finales de agosto (malditas SD) habiendo parado un dia entero.
Saludos.
Espero que esta disertación sobre métodos de copia de sistemas de bases de datos SQL sea de ayuda para alguien.
Chao, 73 de Xavi, EA5ZF