Software > WeeWX

Perdida de datos

<< < (3/3)

Rubendgl:
Muchas gracias, lo probaré.

Un saludo,

Rubendgl:
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: ---#!/bin/bash

/etc/init.d/weewx stop

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

/etc/init.d/weewx start

--- Fin del código ---

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

jmviper:
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

Xavi-EA5ZF:
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

--- Fin de la cita ---

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/
--- Fin de la cita ---

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
--- Fin de la cita ---

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

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa