Introducción
Antes de comenzar con la instalación y configuración del Bacula, en el caso que lo montemos en una Distribución basada en REDHAT, debemos cercioranos que las librerías que se detallan estén instaladas:- gcc,
- gcc-c++,
- libstdc++
- mysql
Echo este chequeo podemos compilar el source de bacula.En
este ítem la instalación esta referida para dos distribuciones de
Linux:
- RedHat/CentOS
- Debian/Ubuntu
Comentario
Este Manual sufre cambios muy a menudo, chequen siempre, he agregado un item mas en Errores.
Instalación de Bacula
Bacula en CentOS con MySQL
Para
la instalación de la ultima versión de Bacula estable debemos bajar
el paquete tar desde la pagina oficial de Bacula: www.bacula.org. La
instalación en CentOS debe tener la siguiente características para
su configuración:
1.- Mysql instalado, si no lo esta, deberemos
instalar los siguientes paquetes:
yum install mysql.x86, mysql-server y mysql-devel
yum install mysql.x86, mysql-server y mysql-devel
2.-
Asegurarse que no falten las librerías gcc, gcc-c++, libstdc++
yum install gccXX gccXX-c++ libstdc++ libstdc++XX-devel
(chequear siempre la ultima versión de las librerías)
Ahora bien, procederemos a descomprimir el paquete tar en el path: /usr/local/src, luego crearemos un script que lo llamaremos "cfgure.sh" y lo copiamos dentro del directorio del Bacula, a continuación transcribo el script propuesto :
CFLAGS="-g
-O2 -Wall" \
./configure
\
--sbindir=/home/bacula/bacula/bin
\
--sysconfdir=/home/bacula/bacula/bin
\
--with-pid-dir=/home/bacula/bacula/bin/working
\
--with-subsys-dir=/home/bacula/bacula/bin/working
\
--enable-smartalloc
\
--with-mysql
\
--with-working-dir=/home/bacula/bacula/bin/working
\
--with-dump-email=bacula@sudominio.com.ar
\
--with-job-email=bacula@sudominio.com.ar
\
--with-smtp-host=mail.sudominio.com.ar \
--enable-tray-monitor \
--enable-readline \
make
make
install
Este script configura, compila e instala al director de bacula automáticamente.
Este script configura, compila e instala al director de bacula automáticamente.
Bacula en Debian/Ubuntu con MySQL
En este ítem trato la instalación de Bacula utilizando los paquetes tar que es el caso de la "Opción 1", pero además explico como instalar a través de apt-get que seria la "Opción 2" siendo este el recomendado para implementar.
Opción
1:
1.-
Liberia mínima necesaria para compilar el paquete tar:
Instalar Mysql en primer lugar
apt-get
install mysql-server-5.1
Instalado el mysql, procederemos a instalar las siguientes
librerías:
apt-get
install gcc-4.5 gcc binutils-doc gcc-4.5-locales gcc-multilib
autoconf automake1.9 libtool flex bison gdb gcc-doc
gcc-4.4-multilib libmudflap0-4.4-dev gcc-4.4-doc gcc-4.4-locales
libgcc1-dbg libgomp1-dbg libmudflap0-dbg gcc-4.5-multilib
libmudflap0-4.5-dev gcc-4.5-doc binutils-gold glibc-doc automake
g++-4.4 libstdc++6-4.4-dev g++-multilib g++-4.4-multilib
libstdc++6-4.4-dbg libstdc++6-4.4-doc lib32stdc++6-4.4-dbg
2.-
Luego creamos el siguiente archivo ejecutable que lo llamaremos
cfgure.sh, este script configurara, compilara e instalara al director
de bacula automáticamente. Esta configuración lo va instalar bajo
la home del usuario que este utilizando para bacula (en este caso
bajo bacula )
CFLAGS="-g
-O2 -Wall" \
./configure \
--sbindir=$HOME/bacula/bin \
--sysconfdir=$HOME/bacula/bin \
--with-pid-dir=$HOME/bacula/bin/working \
--with-subsys-dir=$HOME/bacula/bin/working \
--enable-smartalloc \
--with-mysql \
--with-working-dir=$HOME/bacula/bin/working \
--with-dump-email=bacula@senasa.gov.ar \
--with-job-email=bacula@senasa.gov.ar \
--with-smtp-host=senasamail.senasa.gov.ar \
--enable-tray-monitor \
--enable-readline \
make
make install
./configure \
--sbindir=$HOME/bacula/bin \
--sysconfdir=$HOME/bacula/bin \
--with-pid-dir=$HOME/bacula/bin/working \
--with-subsys-dir=$HOME/bacula/bin/working \
--enable-smartalloc \
--with-mysql \
--with-working-dir=$HOME/bacula/bin/working \
--with-dump-email=bacula@senasa.gov.ar \
--with-job-email=bacula@senasa.gov.ar \
--with-smtp-host=senasamail.senasa.gov.ar \
--enable-tray-monitor \
--enable-readline \
make
make install
Opción
2:
Nota:
Tener en cuenta que esta opción instala una versión de bacula
anterior
Bacula en Ubuntu 10.10
Bacula en Ubuntu 10.10
apt-get install bacula-client bacula-common bacula-common-mysql bacula-console bacula-director-common bacula-director-mysql bacula-fd bacula-sd bacula-sd-mysql bacula-server bsd-mailx dbconfig-common libpython2.6 mtx postfix ssl-cert bacula-doc bacula-traymonitor dds2tar scsitools sg3-utils mt-st procmail postfix-mysql postfix-ldap postfix-pcre sasl2-bin resolvconf postfix-cdb xul-ext-lightning openssl-blacklist default-mta fetchmail myspell-en-us myspell-es
Bacula en Debian 6.0 por Repositorios
apt-get
install bacula-client bacula-common bacula-common-mysql
bacula-console bacula-director-common bacula-director-mysql bacula-fd
bacula-sd bacula-sd-mysql bacula-server bacula-doc bacula-traymonitor
Bacula
en Debian con Postgresql
Para
una correcta instalación debemos en primer lugar instalar en primer
lugar la base de datos:
1.-
Postgresql-8.4
apt-get
install postgresql-8.4 postgresql-contrib-8.4 postgresql-client-8.4
postgresql-pltcl-8.4 postgresql-plperl-8.4 postgresql-doc-8.4
libdbd-pg-perl openssl-blacklist tclreadline uuid
Luego
de instalar el postgresql debemos instalar el software de bacukp con
la siguiente sentencia:
2.-
Bacula
apt-get
install bacula-server bacula-common-pgsql bacula-director-pgsql
bacula-console bacula-sd-pgsql bacula-fd bacula-doc
bacula-traymonitor
Configuración de Bacula
Configuración del Director
En la configuración del Director debemos tener en cuenta tres archivos de configuracion
- bacula-dir.conf
- bacula-sd.conf
- bacula-fd.conf
Pero con solo este archivo no podremos hacer que bacula guardes los volumen físicamente, pare ellos necesitamos del daemon storage que utiliza el archivo de configuración bacula-sd.conf, y en este se indica el lugar donde debe escribir los volúmenes y por ultimo es el archivo de configuracion del file deamon (bacula-fd,conf) que establece entre el servidor de bacula y el servidor a backupear.
Archivo bacula-dir.conf
El archivo que configura el director se llama bacula-dir.conf, aquí se debe declara los storage, monitor, cliente y mensajes que enviá el bacula avisando las novedades que ocurren con los backups.
Este ejemplo se basa sobre una instalación echa con el paquete tar, a través del script "cfgure.sh" donde le definimos varios parámetros
Director {
Name = Bacula-Director-1-dir
DIRport = 9101
QueryFile = "/home/bacula/bacula/bin/query.sql"
WorkingDirectory = "/home/bacula/bacula/bin/working"
PidDirectory = "/home/bacula/bacula/bin/working"
Maximum Concurrent Jobs = 20
Password = "D1r3ct0r1" # Console password
Messages = Daemon
DirAddress = 172.26.160.216
}
#-------
Definition of file storage device
-------------------
Storage {
Storage {
Name = Strg-Raidubuntu
Address = 172.26.160.216 # N.B. Use a fully qualified name here
SDPort = 9103
Password = "strgD1r3ct0r1"
Device = "Storage-Raidubuntu"
Media Type = File
}
#-------
Generic catalog service ----------------------------
Catalog {
Catalog {
Name = MyCatalog
dbname = "bacula"; dbuser = "bacula"; dbpassword
= ""
}
#-------
Reasonable message delivery ------------------------
Messages
{
Name = Standard
mailcommand = "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\) \<%r\>\" -s \"Bacula: %t %e of
%c %l\" %r"
operatorcommand = "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\) \<%r\>\" -s \"Bacula: Necesita
intervención %j\" %r"
mail = suusuario@.sudominio.com.ar = all, !skipped
operator = suusuario@.sudominio.com.ar = mount
console = all, !skipped, !saved
append = "/home/bacula/bacula/bin/working/log" = all,
!skipped
catalog = all
}
Messages
{
Name = Daemon
mailcommand = "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\(Bacula-Director-1\) \<%r\>\"
-s \"Bacula-Director-1 daemon message\" %r"
mail = suusario@sudominio.com.ar = all, !skipped
console = all, !skipped, !saved
append = "/home/bacula/bacula/bin/working/log" = all,
!skipped
}
#-------
Restricted console used by tray-monitor ---------------
Console {
Console {
Name = Bacula-Director-mon
Password = "D1r3ct0r1m0n"
CommandACL = status, .status
}
#-------
CLIENT REMOTE CASA CENTRAL ------------------
@/home/bacula/bacula/client/Myself.conf
@/home/bacula/bacula/client/Gta.conf
@/home/bacula/bacula/client/Gtc.conf
Para
tener en cuenta:
Como un directorio maneja varios clientes, se podría detallar todo sobre el bacula.conf pero quedaría muy desprolijo, por eso se utiliza el include (@) para que sea una configuración limpia y entendible, esto lo colocaremos al final del archivo, bacula-dir.conf y lo dirigiremos hacia la carpeta que previamente creamos "client", ejemplo de esto nos quedaría así:
Como un directorio maneja varios clientes, se podría detallar todo sobre el bacula.conf pero quedaría muy desprolijo, por eso se utiliza el include (@) para que sea una configuración limpia y entendible, esto lo colocaremos al final del archivo, bacula-dir.conf y lo dirigiremos hacia la carpeta que previamente creamos "client", ejemplo de esto nos quedaría así:
@/home/bacula/bacula/client/Myself.conf (@ : Hace un include de los archivos que le indiquemos)
El
bacula-dir.conf tiene tres password, uno es el correspondiente al Director,
el cual se configura en los archivos de configuración de las
consolas bat.conf y bconsole.conf, el segundo es para conectarse con el storage daemon y el tercer es para el
monitor, el cual se utiliza en los archivo (bacula-fd.conf y bacula-sd.conf),
pero esto lo veremos en el ítem siguiente con mas detalles.
- El primero es el Password del Director que esta en la cabecera del archivo
- El Segundo password corresponde al Storage Daemon.
- El tercer es la Consola, es para que los client puedan ser monitoreados por el Director
- mailcommand : Es utilizado para enviar mail que no tienen problemas
- operatorcommand: Avisa que hay problemas con los backups
Como
ejemplo para la configuración del envió de mail, veremos un archivo
bacula-dir.conf (recortado) del Bacula-Director:
Messages
{
Name = Standard
mailcommand = "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\)
\<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
operatorcommand = "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\)
\<%r\>\" -s \"Bacula: Necesita intervención %j\"
%r"
mail = bacula@sudominio.com.ar = all, !skipped
operator = bacula@sudominio.com.ar = mount
console = all, !skipped, !saved
append = "/home/bacula/bacula/bin/working/log" = all,
!skipped
catalog = all
}
Messages
{
Name = Daemon
mailcommand = "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\)
\<%r\>\" -s \"Bacula-Director-1 daemon message\"
%r"
mail = bacula@sudominio.com.ar = all, !skipped
console = all, !skipped, !saved
append = "/home/bacula/bacula/bin/working/log" = all,
!skipped
}
....
Archivo bacula-fd.conf
Se
instala en los Servidores a Backupear, es el cliente que permite la
conexión con el servidor, algunos tip's con respecto al "lenguaje"
del archivo de configuración bacula-fd.conf:
Password del Client (ej: Mail.conf)
Director {
Name = Bacula-Director-1-dir
Password = "ClientMail"
}
Password de Console
Director
{
Name = Bacula-Director-1-mon
Password = "D1r3ct0r1m0n"
Monitor = yes
}
Como
ejemplo veremos el bacula-fd.conf del Bacula-Director-1
bacula-fd.conf:
bacula-fd.conf:
-----------------------------------------------------------------------------------
Director
{
Name = Bacula-Director-1-dir
Password = "D1r3ct0r1Client"
}
Director {
Name = Bacula-Director-1-mon
Password = "D1r3ct0r1m0n"
Monitor = yes
}
FileDaemon {
Name = Bacula-Director-1-fd
FDport = 9102
WorkingDirectory = /home/bacula/bacula/bin/working
Pid Directory = /home/bacula/bacula/bin/working
Maximum Concurrent Jobs = 20
}
Messages {
Name = Standard
director = Bacula-Director-1-dir = all, !skipped, !restored
}
Archivo bacula-sd.conf
Algunos
tip's con respecto al "lenguaje" del archivo de
configuración bacula-sd.conf:
Los
password correspondientes deben respetar lo declarado en
bacula-dir.conf
Pasword de Storage
Director
{
Name = Bacula-Director-1-dir
Password = "strgD1r3ct0r1"
}
Password de Console
Director
{
Name = Bacula-Director-1-mon
Password = "D1r3ct0r1m0n"
Monitor = yes
}
El
Device es el que indica donde se alojaran los volúmenes
Device
{
Name = Storage-Raidubuntu
Media Type = File
Archive Device = /raid/backups/Raidubuntu
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}
Como
ejemplo veremos el bacula-sd.conf del Bacula-Director-1,
bacula-sd.conf:
bacula-sd.conf:
-----------------------------------------------------------------------------------
Storage {
Name = Bacula-Director-1-sd
SDPort = 9103
WorkingDirectory = /home/bacula/bacula/bin/working
Pid Directory = /home/bacula/bacula/bin/working
Maximum Concurrent Jobs = 20
}
Director {
Name = Bacula-Director-1-dir
Password = "strgD1r3ct0r1"
}
Director {
Name = Bacula-Director-1-mon
Password = "D1r3ct0r1m0n"
Monitor = yes
}
Device
{
Name = Storage-Raidubuntu
Media Type = File
Archive Device = /raid/backups/Raidubuntu
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}
Messages {
Name = Standard
director = Bacula-Director-1-dir = all
}
Configuración
de los Clientes en el Director
Este archivo es la configuracion de los clientes propiamentes dichos, de los cuales se van hacer el backup
Este archivo es la configuracion de los clientes propiamentes dichos, de los cuales se van hacer el backup
Archivo
Myself.conf
1.-
Nota
El
cliente del Director debe llamarse Myself.conf, el cual incluira:
a.-
Job de los archivos,
b.-
Job del Catalogo del Bacula (Base de datos)
c.-
Job para Restore de los Backups echos por este Director
2.-
Cliente del Director
a.- Clientes: Servers para hacer Backups
Lo
que queremos definir son los rescursos del Pool para que reutilize
despues de cierto tiempo los volumenes creados y asi el crecimiento de
espacio en disco que tengamos no se nos acabe rapidamente.
Como veran estan calculados para guardar como maximo un mes de volumenes. Para este caso utilizaremos las plantillas definida en el Anexo "Plantillas de Clientes" donde debemos reemplazar los siguientes valores:
Como veran estan calculados para guardar como maximo un mes de volumenes. Para este caso utilizaremos las plantillas definida en el Anexo "Plantillas de Clientes" donde debemos reemplazar los siguientes valores:
1.-
Variables Generales:
Variables
a cambiar
1.-
Cambiar la palabra Server
2.-
En Address = server.senasa.gov.ar
3.-
En Password = "PPP"
4.-
En Priority = nn
5.-
En Schedule = HH:MM
6.-
En Maximum Volumes = X
7.-
En Volume Retention = DD days
2.-
Pool
Para
guardar un histórico de Backups de 2 Semanas
Maximum Volumes = X
Pool --> Full --> Maximum Volumes = 2
Pool -->Diff --> Maximum Volumes = 2
Pool
--> Inc --> Maximum Volumes = 8
Volume
Retention = DD days
Pool --> Full --> Volume Retention = 10 days
Pool -->Diff --> Volume Retention = 10 days
Pool --> Inc --> Volume Retention = 10 days
Para guardar un histórico de Backups de 3 Semanas
Para guardar un histórico de Backups de 3 Semanas
Maximum
Volumes
Pool --> Full --> Maximum Volumes = 3
Pool -->Diff --> Maximum Volumes = 3
Pool --> Inc --> Maximum Volumes = 12
Volume
Retention = DD days
Pool --> Full --> Volume Retention = 14 days
Pool -->Diff --> Volume Retention = 14 days
Pool --> Inc --> Volume Retention = 14 days
Para
guardar un histórico de Backups de 4 Semanas
Maximum
Volumes
Pool --> Full --> Maximum Volumes = 4
Pool -->Diff --> Maximum Volumes = 4
Pool --> Inc --> Maximum Volumes = 15
Volume
Retention = DD days
Pool --> Full --> Volume Retention = 20 days
Pool -->Diff --> Volume Retention = 20 days
Pool --> Inc --> Volume Retention = 20 days
Para
guardar un histórico de Backups de Horarios
Maximum
Volumes
Pool --> Full --> Maximum Volumes = 4
Pool -->Diff --> Maximum Volumes = 4
Pool --> Inc --> Maximum Volumes = 365
Volume
Retention = DD days
Pool --> Full --> Volume Retention = 15 days
Pool -->Diff --> Volume Retention = 15 days
Pool --> Inc --> Volume Retention = 15 days
Configuración de Bconsole y Bat
Pequeña introducción
El
archivo de configuración para las consolas llevan los mismos
parámetros
Bat-->bat.conf
bconsole ->;bconsole.conf
Archivo “.conf”
#
#
Bacula User Agent (or Console) Configuration File
#
Director
{
Name = Bacula-Director-1-dir
DIRport = 9101
address = baculadirector1.tudominio.com.ar
Password = "D1r3ct0r1"
}
Director
{
Name = Bacula-Director-2-dir
DIRport = 9101
address = baculadirector2.tudominio.com.ar
Password = "D1r3ct0r2"
}
Director
{
Name = Bacula-Director-3-dir
DIRport = 9101
address
= baculadirector3.tudominio.com.ar
Password
= "D1r3ct0r3"
}
Director
{
Name = Bacula-Director-4-dir
DIRport = 9101
address = baculadirector4.tudominio.com.ar
Password = "D1r3ct0r4"
}
Administración de Bacula
Consola
Bconsole: Ingresando a
la consola
Para poder ejecutar al consola textual debemos tener en primer lugar instalado la consola de bacula (archivos: bconsole y bconsole.conf), esta se hace desde los mismo archivos de instalación de Bacula.
Echo
esto escribimos en nuestro prompt el comando bconsole y nos entregrar
una pantalla de texto como la siguiente:
---------------------------------------------------------
[root@smarcnet
~]# bconsole
Available
Directors:
--> 1: Bacula-Director-1-dir at 111.11.111.111:9101
--> 2: Bacula-Director-2-dir at 111.11.111.112:9101
--> 3: Bacula-Director-3-dir at 111.11.111.113:9101
--> 4: Bacula-Director-4-dir at 111.11.111.114:9101
--> 5: Bacula-Director-5-dir at 111.11.111.115:9101
Select Director by entering a number: 1 <--
---------------------------------------------------------
Seleccionamos
el director al cual queremos entrar, colocando el numero que se
detalla a la izquierda y tienen una flecha, en el ejemplo de arriba
seleccionamos el Bacula-Director-1 al cual entraremos una vez que
presionemos el enter.
Estando
dentro de la consola podremos ejecutar comandos en la consola, pero
antes una salvedad, el asteriscos que se encuentra al final del
ejemplo siguiente es el prompt de la consola, lo que nos dice que ya
podemos ejecutar algún comando.
---------------------------------------------------------
[root@smarcnet
~]# bconsole
Available
Directors:
1: Bacula-Director-1-dir at 111.11.111.111:9101
2: Bacula-Director-2-dir at 111.11.111.112:9101
3: Bacula-Director-3-dir at 111.11.111.113:9101
4: Bacula-Director-4-dir at 111.11.111.114:9101
5: Bacula-Director-5-dir at 111.11.111.115:9101
Select
Director by entering a number: 1
Connecting
to Director 111.11.111.111:9101
1000
OK: Bacula-Director-1-dir Versión: 5.0.3 (04 August 2010)
Enter
a period to cancel a command.
---------------------------------------------------------
Detallo
algunos de los comandos que mas se utilizan para la administración:
help: Muestra la lista de comandos que se pueden correr por consola
*help
Command Description
======= ===========
add
Add media to a pool
autodisplay
Autodisplay console messages
automount
Automount after label
cancel Cancel a job
create Create DB Pool from resource
delete Delete volume, pool or job
disable Disable a job
enable Enable a job
estimate Performs FileSet estimate, listing gives full listing
exit Terminate Bconsole session
gui Non-interactive gui mode
.........status: Este comando tiene varias formas de emplearse
a.- Ejecutando simplemtente "status" y nos muestra la siguiente pantalla:
*status
Status
available for:
1:
Director
2: Storage
3: Client
4: All
Select
daemon type for status (1-4): 1
Ahora
intentaremos comprender que nos muestra el comando status:
Director: Muestra
los backups que se realizaran, si estan corriendo algún Job y los
realizados : Backups a Realizar:
Scheduled
Jobs:
Level
Type Pri Scheduled Name
Volume
=====================================================================================
Incremental Backup 5
18-abr-11 23:05 Backup-Mail Mail-Inc-0408
Incremental Backup
15 18-abr-11 23:15 Backup-Gta Gta-Inc-0410
Incremental Backup
20 18-abr-11 23:20 Backup-Gtc
Incremental Backup
20 18-abr-11 23:25 Backup-Gte Gte-Inc-0412
Full Backup
35 18-abr-11 23:35 Backup-Mesayuda Mesayuda-Full-0004
--------------------------------------------------------------------------------------------------------------------------------------------------
Jobs
Corriendo:
Running
Jobs:
Console
connected at 18-abr-11 16:08
No
Jobs running.
====
Backups
realizados :
Terminated
Jobs:
JobId Level Files Bytes Status
Finished Name
==================================================================================
669 Incr 105 1.901
G OK 16-abr-11 00:29 Backup-Bacula-Director-1
670 Full 1 2.473
G OK 16-abr-11 00:33 Backup-Catalog-Bacula-Director-1
671 Full 3,386 138.9
G OK 17-abr-11 17:39 Backup-Mail
673 Full 1,057 319.2
G OK 18-abr-11 04:14 Backup-Gta
674 Full 3206 50.19
G OK 18-abr-11 05:57 Backup-Gtc
=================================================================================
Storage : Muestra
el Storage o los múltiples storage configurados
Caso
único storage:
Cuando
en el Director solo tenemos definido un solo storage nos muestra
directamente el log con la información siguiente:
Este
caso es cuando no tiene ningún proceso esta ejecutándose, pero en
caso contrario donde dice "Running Jobs" y "Used
Volume status" nos muestra que jobs y volumen esta usando.
*status
storage
The
defined Storage resources are:
1: Strg-Bacula-Director-5
2: Strg-Bacula-Director-5-Horario
Select
Storage resource (1-2): 1
Connecting
to Storage daemon Strg-Bacula-Director-5 at 172.26.160.102:9103
Bacula-Director-5-sd
Versión: 5.0.3 (04 August 2010) x86_64-unknown-linux-gnu redhat
Daemon
started 20-abr-11 20:40. Jobs: run=8, running=0.
Heap: heap=471,040 smbytes=298,987 max_bytes=367,203 bufs=122
max_bufs=139
Sizes:
boffset_t=8 size_t=8 int32_t=4 int64_t=8
Running
Jobs:
Writing:
Full Backup job Backup-BH1-Horario JobId=40
Volume="BH1-Horario-Inc-0011"
pool="BH1-Horario-Inc" device="Strg-Storage-BD5-Horario"
(/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=25 Bytes=388,632,042 Bytes/sec=2,034,722
FDReadSeqNo=6,134 in_msg=6060 out_msg=5 fd=8
====
Jobs
waiting to reserve a drive:
====
Terminated Jobs:
JobId
Level Files Bytes Status Finished Name
==================================================================================
31
Full 0 0 Cancel 20-abr-11 20:40
Backup-BH1-Horario
33
Full 0 0 Cancel 20-abr-11 20:40
Backup-BH1-Horario
35 Full
904 15.07 G Cancel 20-abr-11 22:42
Backup-BH1-Horario
====
Device
status:
Device
"Strg-Storage-BD5" (/raid) is not open.
Device
"Strg-Storage-BD5-Horario" (/raid/Horario) is mounted with:
Volume: BH1-Horario-Inc-0011
Pool: BH1-Horario-Inc
Media type: File
Total Bytes=388,878,545 Blocks=6,028 Bytes/block=64,512
Positioned at File=0 Block=388,878,544
====
Used
Volume status:
BH1-Horario-Inc-0011
on device "Strg-Storage-BD5-Horario" (/raid/Horario)
Reader=0 writers=1 devres=0 volinuse=1
====
*
Cancelando un Job en ejecución desde consola
Para cancelar Job en ejecucion, no podremos hacerlo solo del comando cancel, debemos indicar el jobid que tiene ese proceso.
Para saber el JobId, lo podremos ejecutar de la siguiente manera:
# status client
Seleccionamos el cliente desde la lista y de ahi sacamos el jobid que se esta ejecutando
Y luego tipeamos:
cancel jobid=XXXX
Recontruccion del catalogo con bscan
El comando bscan nos permite reconstruir el catalogo teniendo los volumenes esto se ejecuta de la siguiente forma
bscan -V Mail-Storage-Full-0018 -v -s -m -c bacula-sd.conf /raid/ -u bacula -Pmysql2011 -n bacula
-v es de verbose
-s sincronisa el volumen con la base de datos (catalogo)
-m updatea la informacion de media en la base de datos
-c el archivo de configuracion que utilizamos en este caso bacula-sd,conf
hay que colocar -u. -P y -n para la conexion a la base. Luego comiensa a mostrar el siguiente log:
bscan: butil.c:287 Using device: "/raid/" for reading.
15-jul 10:22 bscan JobId 0: Ready to read from volume "Mail-Storage-Full-0018" on device "Strgkub" (/raid/).
bscan: bscan.c:309 Using Database: bacula, User: bacula
bscan: bscan.c:456 Pool record for Mail-Storage-Full found in DB.
bscan: bscan.c:470 Pool type "Backup" is OK.
bscan: bscan.c:985 Created Media record for Volume: Mail-Storage-Full-0018
bscan: bscan.c:498 Media type "File" is OK.
bscan: bscan.c:508 VOL_LABEL: OK for Volume: Mail-Storage-Full-0018
bscan: bscan.c:1056 Created Client record for Client: Mail-Storage-fd
bscan: bscan.c:1139 Created new JobId=48980 record for original JobId=1452
bscan: bscan.c:705 32,768 file records. At file:blk=0:3,366,816,801 bytes=3,364,880,205
bscan: bscan.c:705 65,536 file records. At file:blk=1:2,018,950,994 bytes=6,310,343,465
bscan: bscan.c:705 98,304 file records. At file:blk=2:879,717,001 bytes=9,464,333,811
.......
Problemas Generales
1°.- Desfasaje de Horario
Como suele defasarse el horario de los baculas servidores, ejecutamos el comando detallado :
ntpdate ntp.senasa.gov.ar (Para los Baculas de casa central)
ntpdate dsdcenter.senasa.gov.ar (Para los Baculas de Telecom)
Ya que si el desfasa es importante retrasa considerablemente el incio del backup
2°.- Problemas en los bacukps por defasaje de fecha en el vencimiento del volumen
Chequear diariamente los baculas con el Bat console, si encuentra algun job con la siguiente exprecion proceder como se describe en el mail anterior y que nuevamente detallo en este mail
29-ene 11:08 Kurchatovio-dir JobId 1915: Pruning oldest volume "BH1-Horario-Full-0212"
29-ene 11:13 Kurchatovio-dir JobId 1915: Pruning oldest volume "BH1-Horario-Full-0212"
bconsole
list Pool=BH1-Horario-Full media
esto le va a mostrar el ultimo full de BH1-Horario osea van a ver BH1-Horario-Full-0212 entonces una vez obtenido el ultimo numero hacen
label
En este caso deben seleccionar el storage Horario y luego colocar el nombre del nuevo volumen que seria BH1-Horario-Full-0213
3°.- Problemas con Jobs (Exceptuando problemas de vencimiento del volumen)
Si los backups se traban, al ejecutar el comando storage status, nos muestra el siguiente textos:
bconsole
*status storage
The defined Storage resources are:
1: Strg-kurchatovio
2: Strg-kurchatovio-Horario
Select Storage resource (1-2): 1
Connecting to Storage daemon Strg-kurchatovio at 111.11.111.115:9103
Bacula-Teco-1-sd Version: 5.2.5 (26 January 2012) x86_64-pc-linux-gnu ubuntu 12.04
Daemon started 22-Jan-13 11:32. Jobs: run=309, running=0.
Heap: heap=270,336 smbytes=235,214 max_bytes=366,889 bufs=115 max_bufs=127
Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0
Running Jobs:
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Jobs waiting to reserve a drive:
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
===================================================================
12810 Incr 5 67.10 M OK 28-Jan-13 13:23 Job-BH1-Horario
12812 Incr 48 771.7 M OK 29-Jan-13 09:39 Job-BH1-Horario
12814 Incr 47 754.9 M OK 29-Jan-13 09:53 Job-BH1-Horario
12811 Incr 68 168.0 M OK 29-Jan-13 09:55 Job-PGSQL-Horario
12813 Incr 68 168.0 M OK 29-Jan-13 09:57 Job-PGSQL-Horario
12834 Incr 69 376.9 K OK 29-Jan-13 09:57 Backup-Bacula-Teco
12835 Full 1 14.39 M OK 29-Jan-13 09:58 Backup-Bacula-Teco-Catalog
12856 Incr 3 33.55 M OK 29-Jan-13 10:15 Job-BH1-Horario
12857 Incr 2 2.178 M OK 29-Jan-13 10:25 Job-PGSQL-Horario
12858 Incr 3 33.55 M OK 29-Jan-13 11:15 Job-BH1-Horario
====
Device status:
Device "Strgkub" (/raid) is not open.
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Used Volume status:
====
====
You have messages.
*
En el texto detallado lo que nos interesa son dos items:
Running Jobs: (Al principio del texto)
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Device "Strgkub" (/raid) is not open. (Al final del texto)
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Este caso se soluciona creando un nuevo label, pero si tenemos este otro caso:
Running Jobs: (Al principio del texto)
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12860 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Device "Strgkub" (/raid) is not open. (Al final del texto)
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Esto se soluciona con el siguiente comando :
service bacula-sd force-reload
si esto no lo soluciona, solo en casos extremos reiniciar el servicio de bacula de la siguiente forma
1° Bajar el bacula-fd: service bacula-fd stop
2° Bajar el bacula-sd: service bacula-sd stop
3° Bajar el bacula-director: service bacula-director stop
Y luego ejecutar con la misma secuencia el inicio
1° Subir el bacula-fd: service bacula-fd start
2° Subir el bacula-sd: service bacula-sd start
3° Subir el bacula-director: service bacula-director start
Creación de un nuevo label:
Entramos a la consola de bacula
[claudio@smarcnet ~]$ bconsole
Ejecutamos el siguiente comando para obtener el ultimo volumen generado del Pool en cuestion (Webmail-Inc)
*list Pool=Webmail-Inc media
| PoolId | Name | NumVols | MaxVols | PoolType | LabelFormat |
+--------+------------------+---------+---------+----------+-------------------+
2,160,000 | 1 | 0 | 0 | File | 2013-10-25 10:23:57 |
| 573 | Webmail-Inc-0573 | Full | 1 | 1,613,008 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-25 10:24:33 |
| 574 | Webmail-Inc-0574 | Full | 1 | 1,548,496 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-25 10:25:07 |
| 580 | Webmail-Inc-0575 | Used | 1 | 206,137,219 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-29 17:26:44 |
Creamos el label nuevo teniendo de la siguiente manera
*label storage=Strg-kurchatovio volume=Webmail-Inc-0576 pool=Webmail-Inc
| 580 | Webmail-Inc-0575 | Used | 1 | 206,137,219 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-29 17:26:44 |
| 587 | Webmail-Inc-0576 | Used | 1 | 253,564,801 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-31 13:20:29 |
+---------+------------------+-----------+---------+-------------+----------+---
Opcion 2:
[claudio@smarcnet ~]$ bconsole
Available Directors:
1: Bacula-Central-1-dir at 111.11.111.111:9101
2: Bacula-Director-2-dir at 111.11.111.112:9101
3: Bacula-Director-3-dir at 111.11.111.113:9101
4: Bacula-Director-4-dir at 111.11.111.114:9101
5: BDPGSQL-dir at 111.11.111.115:9101
Select Director by entering a number: 5
Connecting to Director 111.11.111.115:9101
1000 OK: Kurchatovio-dir Version: 5.2.5 (26 January 2012)
Enter a period to cancel a command.
*mess
29-ene 11:18 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:23 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:28 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:33 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:38 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:43 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:48 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:53 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
*
*list Pool=Blade-Hoja13-Inc media
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
+--------+------------------+---------+---------+----------+-------------------+
| PoolId | Name | NumVols | MaxVols | PoolType | LabelFormat |
+--------+------------------+---------+---------+----------+-------------------+
| 35 | Blade-Hoja13-Inc | 16 | 16 | Backup | Blade-Hoja13-Inc- |
+--------+------------------+---------+---------+----------+-------------------+
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
| MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten |
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
| 582 | Blade-Hoja13-Inc-0582 | Used | 1 | 101,926,179 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-15 12:15:04 |
| 583 | Blade-Hoja13-Inc-0583 | Used | 1 | 138,136,375 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-15 12:29:44 |
| 597 | Blade-Hoja13-Inc-0597 | Used | 1 | 48,774,324 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-16 08:52:22 |
| 626 | Blade-Hoja13-Inc-0626 | Used | 1 | 55,392,521 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-18 12:04:28 |
| 678 | Blade-Hoja13-Inc-0678 | Used | 1 | 59,325,952 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-27 17:55:50 |
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
*
*label
Automatically selected Storage: Strg-Kurchatovio
Enter new Volume name: Blade-Hoja13-Inc-0679
Defined Pools:
1: Bacula-Teco-Full
2: Bacula-Teco-Diff
3: Bacula-Teco-Inc
4: Bacula-Teco-Catalog-Full
5: Default
6: Foton-Full
7: Foton-Diff
8: Foton-Inc
.......
32: Blade-Hoja12-Inc
33: Blade-Hoja13-Full
34: Blade-Hoja13-Diff
35: Blade-Hoja13-Inc
Select the Pool (1-134): 35
Connecting to Storage daemon Strg-Kurchatovio at 111.11.111.115:9103 ...
Sending label command for Volume "Blade-Hoja13-Inc-0679" Slot 0 ...
3000 OK label. VolBytes=240 DVD=0 Volume="Blade-Hoja13-Inc-0679" Device="Storage-Kurchatovio" (/raid/Kurchatovio)
Catalog record for Volume "Blade-Hoja13-Inc-0679", Slot 0 successfully created.
Requesting to mount Storage-Kurchatovio ...
3001 OK mount requested. Device="Storage-Kurchatovio" (/raid/Kurchatovio)
*
Casos no exitosos
Ejemplo 1
*label
Automatically selected Storage: Strg-Kurchatovio
Enter new Volume name: Blade-Hoja13-Inc-0679
Media record for new Volume "Blade-Hoja13-Inc-0679" already exists.
Ejemplo 2
Volume name must be at least one character long.
Enter new Volume name: Blade-Hoja13-Inc-0680
Defined Pools:
1: Bacula-Teco-Full
2: Bacula-Teco-Diff
3: Bacula-Teco-Inc
4: Bacula-Teco-Catalog-Full
5: Default
6: Foton-Full
7: Foton-Diff
8: Foton-Inc
......
33: Blade-Hoja13-Full
34: Blade-Hoja13-Diff
35: Blade-Hoja13-Inc
Select the Pool (1-134): 35
Connecting to Storage daemon Strg-Kurchatovio at 111.11.111.115:9103 ...
Sending label command for Volume "Blade-Hoja13-Inc-0680" Slot 0 ...
3937 Device ""Storage-Kurchatovio" (/raid/Kurchatovio)" is busy with writers=1 reserved=0.
Label command failed for Volume Blade-Hoja13-Inc-0680.
Do not forget to mount the drive!!!
*
4°.- Fatal error: Can't fill Pathtable Query failed
Antes de implementar alguna solucion para el correcto funcionamiento hacemos un dump de la base como backup de la siguiente forma:
mysqldump --opt -u root -p password bacula > bacula.sql (colocar el password, dejar hasta que devuelva el prompt)
Error que se genero:
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "FSRM
Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:21 raidebian-sd JobId 4359: Job write elapsed time = 00:34:58,
Transfer rate = 2.925 M bytes/second
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):
"System Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "IISMetabase Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "FRSWriter", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "DFSReplication service writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "BITSWriter", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "WMIWriter", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "EventLog Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):"MSDEWriter", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):"Registry Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "COM+REGDB Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:21 raidebian-dir JobId 4359: Fatal error: Can't fill Pathtable Query failed: INSERT INTO Path (Path) SELECT a.Path FROM (SELECTDISTINCT Path FROM batch) AS a WHERE NOT EXISTS (SELECT Path FROM PathAS p WHERE p.Path = a.Path): ERR=Incorrect key file for table'/tmp/#sql_7c03_1.MYI'; try to repair it
18-may 12:21 raidebian-dir JobId 4359: Error: Bacula raidebian-dir 2.2.8
(26Jan08): 18-may-2009 12:21:51
Build OS: i486-pc-linux-gnu debian lenny/sid
JobId: 4359Job: Backup-sdcfile1.2009-05-18_11.46.42
Backup Level: Incremental, since=2009-05-06 23:00:03
Client: "sdcfile1-fd" 2.4.3 (10Oct08) Linux,Cross-compile,Win32
FileSet: "sdcfile1FileSet" 2008-11-26 23:00:00
Pool: "sdcfile1-Inc-Pool" (From User input)
Storage: "raidebian-sd" (From Job resource)
Scheduled time: 18-may-2009 11:46:35
Start time: 18-may-2009 11:46:53
End time: 18-may-2009 12:21:51
Elapsed time: 34 mins 58 secs
Priority: 5FD Files Written: 5,068SD Files Written: 5,068
FD Bytes Written: 6,136,839,297 (6.136 GB)
SD Bytes Written: 6,137,878,056 (6.137 GB)
Rate: 2925.1 KB/sSoftware Compression: 24.2 %
VSS: yesStorage Encryption: noVolume name(s): sdcfile1-Inc-0205
Volume Session Id: 38Volume Session Time: 1242412747
Last Volume Bytes: 16,016,990,585 (16.01 GB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: O
KSD termination status: O
KTermination: *** Backup Error ***
18-may 12:21 raidebian-dir JobId 4359: Begin pruning Jobs.
18-may 12:21 raidebian-dir JobId 4359: No Jobs found to prune.
18-may 12:21 raidebian-dir JobId 4359: Begin pruning Files.
18-may 12:21 raidebian-dir JobId 4359: No Files found to prune.
18-may 12:21 raidebian-dir JobId 4359: End auto prune.
Este error se genero por falta de espacio principalmente, pero ademas el archivo de configuracion del Mysql, osea, my.cnf (/etc/mysql/) tenia la variable tmpdir apuntando al directorio /tmp el cual tiene poco espacio y el archivo temporario #sql_7c03_1.MYI', que genera, crecio en forma desproporcionada, lo que se hizo es cambiar a /var/tmp.
Si en otra ocasion no funciona, debemos borrar el indice que corresponde en este caso a la tabla Path de esta forma:
alter table Path drop index Path;
Luego volvemos a crearlo tal cual esta escrito:
alter table Path add index Path (`Path`(255));
Para poder ver que Keys tiene debemos hacer lo siguiente:
show create tables Path;
Hecho esto reiniciamos el mysql server y en teoría debería andar.
5°.- Repara error en Tabla Log
Query failed: .sql query="SELECT Time, LogText FROM Log WHERE JobId='3510' order by Time". ERR=Query failed: SELECT Time, LogText FROM Log WHERE JobId='3510' order by Time: ERR=Table './bacula/Log' is marked as crashed and should be repaired
[root@Bacula-Director-3/]# mysqlcheck -h baculadirector3.tudominio.com.ar -u usuariomysql -p -o bacula
bacula.BaseFiles OK
bacula.CDImages OK
bacula.Client OK
bacula.Counters OK
bacula.Device OK
bacula.File OK
bacula.FileSet OK
bacula.Filename OK
bacula.Job OK
bacula.JobHisto OK
bacula.JobMedia OK
bacula.Location OK
bacula.LocationLog OK
bacula.Log Error: Table './bacula/Log' is marked as crashed and should be repaired
Error: Table 'Log' is marked as crashed and should be repaired
error: Corrupt
bacula.Media OK
bacula.MediaType OK
bacula.Path OK
bacula.PathHierarchy OK
bacula.PathVisibility OK
bacula.Pool OK
bacula.Status OK
bacula.Storage OK
bacula.UnsavedFiles OK
bacula.Version OK
repair table Log;
Cancelando un Job en ejecución desde consola
Para cancelar Job en ejecucion, no podremos hacerlo solo del comando cancel, debemos indicar el jobid que tiene ese proceso.
Para saber el JobId, lo podremos ejecutar de la siguiente manera:
# status client
Seleccionamos el cliente desde la lista y de ahi sacamos el jobid que se esta ejecutando
Y luego tipeamos:
cancel jobid=XXXX
Recontruccion del catalogo con bscan
El comando bscan nos permite reconstruir el catalogo teniendo los volumenes esto se ejecuta de la siguiente forma
bscan -V Mail-Storage-Full-0018 -v -s -m -c bacula-sd.conf /raid/ -u bacula -Pmysql2011 -n bacula
-v es de verbose
-s sincronisa el volumen con la base de datos (catalogo)
-m updatea la informacion de media en la base de datos
-c el archivo de configuracion que utilizamos en este caso bacula-sd,conf
hay que colocar -u. -P y -n para la conexion a la base. Luego comiensa a mostrar el siguiente log:
bscan: butil.c:287 Using device: "/raid/" for reading.
15-jul 10:22 bscan JobId 0: Ready to read from volume "Mail-Storage-Full-0018" on device "Strgkub" (/raid/).
bscan: bscan.c:309 Using Database: bacula, User: bacula
bscan: bscan.c:456 Pool record for Mail-Storage-Full found in DB.
bscan: bscan.c:470 Pool type "Backup" is OK.
bscan: bscan.c:985 Created Media record for Volume: Mail-Storage-Full-0018
bscan: bscan.c:498 Media type "File" is OK.
bscan: bscan.c:508 VOL_LABEL: OK for Volume: Mail-Storage-Full-0018
bscan: bscan.c:1056 Created Client record for Client: Mail-Storage-fd
bscan: bscan.c:1139 Created new JobId=48980 record for original JobId=1452
bscan: bscan.c:705 32,768 file records. At file:blk=0:3,366,816,801 bytes=3,364,880,205
bscan: bscan.c:705 65,536 file records. At file:blk=1:2,018,950,994 bytes=6,310,343,465
bscan: bscan.c:705 98,304 file records. At file:blk=2:879,717,001 bytes=9,464,333,811
.......
Problemas Generales
1°.- Desfasaje de Horario
Como suele defasarse el horario de los baculas servidores, ejecutamos el comando detallado :
ntpdate ntp.senasa.gov.ar (Para los Baculas de casa central)
ntpdate dsdcenter.senasa.gov.ar (Para los Baculas de Telecom)
Ya que si el desfasa es importante retrasa considerablemente el incio del backup
2°.- Problemas en los bacukps por defasaje de fecha en el vencimiento del volumen
Chequear diariamente los baculas con el Bat console, si encuentra algun job con la siguiente exprecion proceder como se describe en el mail anterior y que nuevamente detallo en este mail
29-ene 11:08 Kurchatovio-dir JobId 1915: Pruning oldest volume "BH1-Horario-Full-0212"
29-ene 11:13 Kurchatovio-dir JobId 1915: Pruning oldest volume "BH1-Horario-Full-0212"
bconsole
list Pool=BH1-Horario-Full media
esto le va a mostrar el ultimo full de BH1-Horario osea van a ver BH1-Horario-Full-0212 entonces una vez obtenido el ultimo numero hacen
label
En este caso deben seleccionar el storage Horario y luego colocar el nombre del nuevo volumen que seria BH1-Horario-Full-0213
3°.- Problemas con Jobs (Exceptuando problemas de vencimiento del volumen)
Si los backups se traban, al ejecutar el comando storage status, nos muestra el siguiente textos:
bconsole
*status storage
The defined Storage resources are:
1: Strg-kurchatovio
2: Strg-kurchatovio-Horario
Select Storage resource (1-2): 1
Connecting to Storage daemon Strg-kurchatovio at 111.11.111.115:9103
Bacula-Teco-1-sd Version: 5.2.5 (26 January 2012) x86_64-pc-linux-gnu ubuntu 12.04
Daemon started 22-Jan-13 11:32. Jobs: run=309, running=0.
Heap: heap=270,336 smbytes=235,214 max_bytes=366,889 bufs=115 max_bufs=127
Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0
Running Jobs:
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Jobs waiting to reserve a drive:
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
===================================================================
12810 Incr 5 67.10 M OK 28-Jan-13 13:23 Job-BH1-Horario
12812 Incr 48 771.7 M OK 29-Jan-13 09:39 Job-BH1-Horario
12814 Incr 47 754.9 M OK 29-Jan-13 09:53 Job-BH1-Horario
12811 Incr 68 168.0 M OK 29-Jan-13 09:55 Job-PGSQL-Horario
12813 Incr 68 168.0 M OK 29-Jan-13 09:57 Job-PGSQL-Horario
12834 Incr 69 376.9 K OK 29-Jan-13 09:57 Backup-Bacula-Teco
12835 Full 1 14.39 M OK 29-Jan-13 09:58 Backup-Bacula-Teco-Catalog
12856 Incr 3 33.55 M OK 29-Jan-13 10:15 Job-BH1-Horario
12857 Incr 2 2.178 M OK 29-Jan-13 10:25 Job-PGSQL-Horario
12858 Incr 3 33.55 M OK 29-Jan-13 11:15 Job-BH1-Horario
====
Device status:
Device "Strgkub" (/raid) is not open.
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Used Volume status:
====
====
You have messages.
*
En el texto detallado lo que nos interesa son dos items:
Running Jobs: (Al principio del texto)
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Device "Strgkub" (/raid) is not open. (Al final del texto)
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Este caso se soluciona creando un nuevo label, pero si tenemos este otro caso:
Running Jobs: (Al principio del texto)
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12860 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Device "Strgkub" (/raid) is not open. (Al final del texto)
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Esto se soluciona con el siguiente comando :
service bacula-sd force-reload
si esto no lo soluciona, solo en casos extremos reiniciar el servicio de bacula de la siguiente forma
1° Bajar el bacula-fd: service bacula-fd stop
2° Bajar el bacula-sd: service bacula-sd stop
3° Bajar el bacula-director: service bacula-director stop
Y luego ejecutar con la misma secuencia el inicio
1° Subir el bacula-fd: service bacula-fd start
2° Subir el bacula-sd: service bacula-sd start
3° Subir el bacula-director: service bacula-director start
Creación de un nuevo label:
Entramos a la consola de bacula
[claudio@smarcnet ~]$ bconsole
Ejecutamos el siguiente comando para obtener el ultimo volumen generado del Pool en cuestion (Webmail-Inc)
*list Pool=Webmail-Inc media
| PoolId | Name | NumVols | MaxVols | PoolType | LabelFormat |
+--------+------------------+---------+---------+----------+-------------------+
2,160,000 | 1 | 0 | 0 | File | 2013-10-25 10:23:57 |
| 573 | Webmail-Inc-0573 | Full | 1 | 1,613,008 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-25 10:24:33 |
| 574 | Webmail-Inc-0574 | Full | 1 | 1,548,496 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-25 10:25:07 |
| 580 | Webmail-Inc-0575 | Used | 1 | 206,137,219 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-29 17:26:44 |
Creamos el label nuevo teniendo de la siguiente manera
*label storage=Strg-kurchatovio volume=Webmail-Inc-0576 pool=Webmail-Inc
| 580 | Webmail-Inc-0575 | Used | 1 | 206,137,219 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-29 17:26:44 |
| 587 | Webmail-Inc-0576 | Used | 1 | 253,564,801 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-10-31 13:20:29 |
+---------+------------------+-----------+---------+-------------+----------+---
Opcion 2:
[claudio@smarcnet ~]$ bconsole
Available Directors:
1: Bacula-Central-1-dir at 111.11.111.111:9101
2: Bacula-Director-2-dir at 111.11.111.112:9101
3: Bacula-Director-3-dir at 111.11.111.113:9101
4: Bacula-Director-4-dir at 111.11.111.114:9101
5: BDPGSQL-dir at 111.11.111.115:9101
Select Director by entering a number: 5
Connecting to Director 111.11.111.115:9101
1000 OK: Kurchatovio-dir Version: 5.2.5 (26 January 2012)
Enter a period to cancel a command.
*mess
29-ene 11:18 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:23 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:28 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:33 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:38 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:43 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:48 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:53 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
*
*list Pool=Blade-Hoja13-Inc media
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
+--------+------------------+---------+---------+----------+-------------------+
| PoolId | Name | NumVols | MaxVols | PoolType | LabelFormat |
+--------+------------------+---------+---------+----------+-------------------+
| 35 | Blade-Hoja13-Inc | 16 | 16 | Backup | Blade-Hoja13-Inc- |
+--------+------------------+---------+---------+----------+-------------------+
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
| MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten |
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
| 582 | Blade-Hoja13-Inc-0582 | Used | 1 | 101,926,179 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-15 12:15:04 |
| 583 | Blade-Hoja13-Inc-0583 | Used | 1 | 138,136,375 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-15 12:29:44 |
| 597 | Blade-Hoja13-Inc-0597 | Used | 1 | 48,774,324 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-16 08:52:22 |
| 626 | Blade-Hoja13-Inc-0626 | Used | 1 | 55,392,521 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-18 12:04:28 |
| 678 | Blade-Hoja13-Inc-0678 | Used | 1 | 59,325,952 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-27 17:55:50 |
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
*
*label
Automatically selected Storage: Strg-Kurchatovio
Enter new Volume name: Blade-Hoja13-Inc-0679
Defined Pools:
1: Bacula-Teco-Full
2: Bacula-Teco-Diff
3: Bacula-Teco-Inc
4: Bacula-Teco-Catalog-Full
5: Default
6: Foton-Full
7: Foton-Diff
8: Foton-Inc
.......
32: Blade-Hoja12-Inc
33: Blade-Hoja13-Full
34: Blade-Hoja13-Diff
35: Blade-Hoja13-Inc
Select the Pool (1-134): 35
Connecting to Storage daemon Strg-Kurchatovio at 111.11.111.115:9103 ...
Sending label command for Volume "Blade-Hoja13-Inc-0679" Slot 0 ...
3000 OK label. VolBytes=240 DVD=0 Volume="Blade-Hoja13-Inc-0679" Device="Storage-Kurchatovio" (/raid/Kurchatovio)
Catalog record for Volume "Blade-Hoja13-Inc-0679", Slot 0 successfully created.
Requesting to mount Storage-Kurchatovio ...
3001 OK mount requested. Device="Storage-Kurchatovio" (/raid/Kurchatovio)
*
Casos no exitosos
Ejemplo 1
*label
Automatically selected Storage: Strg-Kurchatovio
Enter new Volume name: Blade-Hoja13-Inc-0679
Media record for new Volume "Blade-Hoja13-Inc-0679" already exists.
Ejemplo 2
Volume name must be at least one character long.
Enter new Volume name: Blade-Hoja13-Inc-0680
Defined Pools:
1: Bacula-Teco-Full
2: Bacula-Teco-Diff
3: Bacula-Teco-Inc
4: Bacula-Teco-Catalog-Full
5: Default
6: Foton-Full
7: Foton-Diff
8: Foton-Inc
......
33: Blade-Hoja13-Full
34: Blade-Hoja13-Diff
35: Blade-Hoja13-Inc
Select the Pool (1-134): 35
Connecting to Storage daemon Strg-Kurchatovio at 111.11.111.115:9103 ...
Sending label command for Volume "Blade-Hoja13-Inc-0680" Slot 0 ...
3937 Device ""Storage-Kurchatovio" (/raid/Kurchatovio)" is busy with writers=1 reserved=0.
Label command failed for Volume Blade-Hoja13-Inc-0680.
Do not forget to mount the drive!!!
*
4°.- Fatal error: Can't fill Pathtable Query failed
Antes de implementar alguna solucion para el correcto funcionamiento hacemos un dump de la base como backup de la siguiente forma:
mysqldump --opt -u root -p password bacula > bacula.sql (colocar el password, dejar hasta que devuelva el prompt)
Error que se genero:
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "FSRM
Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:21 raidebian-sd JobId 4359: Job write elapsed time = 00:34:58,
Transfer rate = 2.925 M bytes/second
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):
"System Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "IISMetabase Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "FRSWriter", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "DFSReplication service writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "BITSWriter", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "WMIWriter", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "EventLog Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):"MSDEWriter", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):"Registry Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "COM+REGDB Writer", State: 0x1 (VSS_WS_STABLE)
18-may 12:21 raidebian-dir JobId 4359: Fatal error: Can't fill Pathtable Query failed: INSERT INTO Path (Path) SELECT a.Path FROM (SELECTDISTINCT Path FROM batch) AS a WHERE NOT EXISTS (SELECT Path FROM PathAS p WHERE p.Path = a.Path): ERR=Incorrect key file for table'/tmp/#sql_7c03_1.MYI'; try to repair it
18-may 12:21 raidebian-dir JobId 4359: Error: Bacula raidebian-dir 2.2.8
(26Jan08): 18-may-2009 12:21:51
Build OS: i486-pc-linux-gnu debian lenny/sid
JobId: 4359Job: Backup-sdcfile1.2009-05-18_11.46.42
Backup Level: Incremental, since=2009-05-06 23:00:03
Client: "sdcfile1-fd" 2.4.3 (10Oct08) Linux,Cross-compile,Win32
FileSet: "sdcfile1FileSet" 2008-11-26 23:00:00
Pool: "sdcfile1-Inc-Pool" (From User input)
Storage: "raidebian-sd" (From Job resource)
Scheduled time: 18-may-2009 11:46:35
Start time: 18-may-2009 11:46:53
End time: 18-may-2009 12:21:51
Elapsed time: 34 mins 58 secs
Priority: 5FD Files Written: 5,068SD Files Written: 5,068
FD Bytes Written: 6,136,839,297 (6.136 GB)
SD Bytes Written: 6,137,878,056 (6.137 GB)
Rate: 2925.1 KB/sSoftware Compression: 24.2 %
VSS: yesStorage Encryption: noVolume name(s): sdcfile1-Inc-0205
Volume Session Id: 38Volume Session Time: 1242412747
Last Volume Bytes: 16,016,990,585 (16.01 GB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: O
KSD termination status: O
KTermination: *** Backup Error ***
18-may 12:21 raidebian-dir JobId 4359: Begin pruning Jobs.
18-may 12:21 raidebian-dir JobId 4359: No Jobs found to prune.
18-may 12:21 raidebian-dir JobId 4359: Begin pruning Files.
18-may 12:21 raidebian-dir JobId 4359: No Files found to prune.
18-may 12:21 raidebian-dir JobId 4359: End auto prune.
Este error se genero por falta de espacio principalmente, pero ademas el archivo de configuracion del Mysql, osea, my.cnf (/etc/mysql/) tenia la variable tmpdir apuntando al directorio /tmp el cual tiene poco espacio y el archivo temporario #sql_7c03_1.MYI', que genera, crecio en forma desproporcionada, lo que se hizo es cambiar a /var/tmp.
Si en otra ocasion no funciona, debemos borrar el indice que corresponde en este caso a la tabla Path de esta forma:
alter table Path drop index Path;
Luego volvemos a crearlo tal cual esta escrito:
alter table Path add index Path (`Path`(255));
Para poder ver que Keys tiene debemos hacer lo siguiente:
show create tables Path;
Hecho esto reiniciamos el mysql server y en teoría debería andar.
5°.- Repara error en Tabla Log
Query failed: .sql query="SELECT Time, LogText FROM Log WHERE JobId='3510' order by Time". ERR=Query failed: SELECT Time, LogText FROM Log WHERE JobId='3510' order by Time: ERR=Table './bacula/Log' is marked as crashed and should be repaired
[root@Bacula-Director-3/]# mysqlcheck -h baculadirector3.tudominio.com.ar -u usuariomysql -p -o bacula
bacula.BaseFiles OK
bacula.CDImages OK
bacula.Client OK
bacula.Counters OK
bacula.Device OK
bacula.File OK
bacula.FileSet OK
bacula.Filename OK
bacula.Job OK
bacula.JobHisto OK
bacula.JobMedia OK
bacula.Location OK
bacula.LocationLog OK
bacula.Log Error: Table './bacula/Log' is marked as crashed and should be repaired
Error: Table 'Log' is marked as crashed and should be repaired
error: Corrupt
bacula.Media OK
bacula.MediaType OK
bacula.Path OK
bacula.PathHierarchy OK
bacula.PathVisibility OK
bacula.Pool OK
bacula.Status OK
bacula.Storage OK
bacula.UnsavedFiles OK
bacula.Version OK
repair table Log;
+------------+--------+----------+------------------------------------------------------+
|Table | Op | Msg_type | Msg_text |
+------------+--------+----------+------------------------------------------------------+
|bacula.Log | repair | info | Found block that points outside data file at 1019032 |
|bacula.Log | repair | status | OK
+------------+--------+----------+------------------------------------------------------+
2 rows in set (0.27 sec)
There were no results!
It is possible you may need to add "catalog = all" to the Messages resource for this job.
Cancele el Job y reinicie el bacula-director, bacula-sd y el mysql, el error desaparecio, muestra directamente el log del Job cancelado. Desde consola restarteo el Job Cancelado
run job="Job-Gth" client="Gth-fd" level=Incremental fileset="Gth-FileSet"
6.- Error
de Permisos denied
28-Feb
14:50 Kurchatovio-dir: Warning: Cannot bind port 9101: ERR=Cannot
assign requested address: Retrying ...
28-Feb
14:52 Kurchatovio-dir: Warning: Cannot bind port 9101: ERR=Cannot
assign requested address: Retrying ...
28-Feb
14:54 Kurchatovio-dir: ERROR in parse_conf.c:918 Config error: Cannot
open config file "/etc/bacula/bacula-dir.conf": Permission
denied
Este
error en particular se produce cuando el director en el archivo
bacula-dir.conf tiene el DirAddres mal o la password mal.
Para
solucionarlo chequeamos que el IP del servidor sea el mismo IP que
tiene el Director, o que el Filedaemon (FD) tenga el password
correcto del director.
Cuando
en Bat console vemos que el job que esta corriendo presenta este
aspecto:
BDPGSQL-dir
Start Backup JobId 2289,
Job=Job-Senasa-Archivos2.2013-04-15_23.00.00_09
Lo
que usualmente hago es reiniciar el daemon del storage para que
reactive, si bien este proceso se pierde, lo demas que estan en cola
continuan y obtendremos del proceso trabado generalmente el siguiente
log:
BDPGSQL-dir
Start Backup JobId 2289,
Job=Job-Senasa-Archivos2.2013-04-15_23.00.00_09BDPGSQL-dir
Job Job-Senasa-Archivos2.2013-04-15_23.00.00_09 waiting 3600 seconds
for scheduled start time.
Rescheduled
Job Job-Senasa-Archivos2.2013-04-15_23.00.00_09 at 16-abr-2013 11:43
to re-run in 3600 seconds (16-abr-2013 12:43).
Error:
Bacula BDPGSQL-dir 5.0.2 (28Apr10): 16-abr-2013 11:43:57
Build
OS: x86_64-pc-linux-gnu debian 6.0.6
JobId:
2289
Job:
Job-Senasa-Archivos2.2013-04-15_23.00.00_09
Backup
Level: Incremental, since=2013-04-07 14:29:45
Client:
"Archivos2-fd" 5.2.5 (26Jan12) Microsoft
Windows Server 2008 Standard Edition Service Pack 1 (build 6001),
32-bit,Cross-compile,Win32
FileSet:
"FileSet-Archivos2-Senasa" 2012-10-15
01:30:00
Pool:
"Archivos2-Senasa-Inc" (From Run pool
override)
Catalog:
"MyCatalog" (From Client resource)
Storage:
"Strg-FreeNas-BDPGSQL" (From run override)
Scheduled
time: 15-abr-2013 23:00:00
Start
time: 15-abr-2013 23:00:02
End
time: 16-abr-2013 11:43:57
Elapsed
time: 12 hours 43 mins 55 secs
Priority:
10
FD
Files Written: 0
SD
Files Written: 0
FD
Bytes Written: 0 (0 B)
SD
Bytes Written: 0 (0 B)
Rate:
0.0 KB/s
Software
Compression: None
VSS:
no
Encryption:
no
Accurate:
no
Volume
name(s):
Volume
Session Id: 91
Volume
Session Time: 1363197140
Last
Volume Bytes: 0 (0 B)
Non-fatal
FD errors: 0
SD
Errors: 0
FD
termination status:
SD
termination status:
Termination:
*** Backup Error ***
Fatal error:
Storage daemon didn't accept Device "Storage-FreeNas-BDPGSQL" command.
Fatal error:
Storage daemon didn't accept Device "Storage-FreeNas-BDPGSQL" command.
Dbcheck
es un sencillo programa que buscará las inconsistencias lógicas en
las tablas de Bacula en su base de datos y, opcionalmente,
arreglarlos. Es una rutina de mantenimiento de base de datos, en el
sentido de que puede detectar y eliminar filas no utilizadas, pero no
es una rutina de reparación de base de datos.
Uso:
dbcheck [-c config] [-C catalog name] [-d debug_level]
-b
batch mode
-C
catalog name in the director conf file
-c
director conf filename
-B
print catalog configuration and exit
-dnn
set debug level to nn
-dt
print timestamp in debug output
-f
fix inconsistencies
-v
verbose
-?
print this message
Ejemplo
root@bacula-dir:~#
dbcheck /etc/bacula/bacula-dir.conf bacula bacula password
[-c
config] = /etc/bacula/bacula-dir.conf
[-C
catalog name] = bacula
En
el menu 1 se utiliza para la comprobacion del estado general de la
base, esta se lleva acabo con la seleccion de la opcion 16
Menu
1
1)
Activar bandera modificar base de datos
2)
Activar bandera detallado
3)
Verificar malos registros de Nombre de Archivo
4)
Verificar malos registros de Rutas
5)
Verificar registros de Nombre de Archivo duplicados
6)
Verificar registros de Rutas duplicados
7)
Verificar registros de Jobmedia huérfanos
8)
Verificar registros de Archivo huérfanos
9)
Verificar registros de Rutas huérfanos
10)
Verificar registros de nombre de archivo huérfanos
11)
Verificar registros de FileSet huérfanos
12)
Verificar registros de Cliente huérfanos
13)
Verificar registros de Job huérfanos
14)
Verificar todos los registros de Administración
15)
Verificar todos los registros de Restauración
16)
Todos (3-15)
17)
Salir
El
menu 2 se activa una vez que hallamos verificado la base, y
presionaremos la opcion 1 y luego la opcion 16 que ejecuta los items
del 3-15
Menu
2
1)
Activar bandera modificar base de datos
2)
Activar bandera detallado
3)
Reparar malos registros de Nombre de Archivo
4)
Reparar malos registros de Rutas
5)
Eliminar registros de Nombre de Archivo duplicados
6)
Eliminar registros de Rutas duplicados
7)
Eliminar registros de Jobmedia huérfanos
8)
Eliminar registros de Archivo huérfanos
9)
Eliminar registros de Rutas huérfanos
10)
Eliminar registros de nombre de archivo huérfanos
11)
Eliminar registros de FileSet huérfanos
12)
Eliminar registros de Cliente huérfanos
13)
Eliminar registros de Job huérfanos
14)
Eliminar todos los registros de Administración
15)
Eliminar todos los registros de Restauración
16)
Todos (3-15)
17)
Salir
10.- Fatal
error: Device reservation failed
Este
error se produce cuando tenemos en el bacula-sd.conf un nombre de
Device distinto al declarado en bacula-dir.conf
Bacula-Director-2-dir
Start Backup JobId 6428, Job=Job-Nagios.2013-04-25_23.50.00_24
Bacula-Director-2-sd
Fatal error: Device reservation failed for JobId=6428:
Bacula-Director-2-dir
Fatal error:
Storage
daemon didn't accept Device "Storage-FreeNas-1-BD2"
because:
3924
Device "Storage-FreeNas-1-BD2" not in SD Device resources.
Error:
Bacula Bacula-Director-2-dir 5.0.2 (28Apr10): 25-abr-2013 23:50:02
Build
OS: x86_64-pc-linux-gnu debian 6.0.6
JobId:
6428
Job:
Job-Nagios.2013-04-25_23.50.00_24
Backup
Level: Incremental, since=2013-04-23 00:42:40
Client:
"Nagios-fd" 5.0.1 (24Feb10)
i486-pc-linux-gnu,ubuntu,10.04
FileSet:
"FileSet-Nagios" 2012-11-07 23:50:00
Pool:
"Nagios-Inc" (From Run pool override)
Catalog:
"MyCatalog" (From Client resource)
Storage:
"Strg-FreeNas-BD2" (From run override)
Scheduled
time: 25-abr-2013 23:50:00
Start
time: 25-abr-2013 23:50:02
End
time: 25-abr-2013 23:50:02
Elapsed
time: 0 secs
Priority:
50
FD
Files Written: 0
SD
Files Written: 0
FD
Bytes Written: 0 (0 B)
SD
Bytes Written: 0 (0 B)
Rate:
0.0 KB/s
Software
Compression: None
VSS:
no
Encryption:
no
Accurate:
no
Volume
name(s):
Volume
Session Id: 29
Volume
Session Time: 1366832921
Last
Volume Bytes: 0 (0 B)
Non-fatal
FD errors: 0
SD
Errors: 0
FD
termination status:
SD
termination status:
Termination:
*** Backup Error ***
11.- Error: VSS API failure calling "BackupComplete"
Este problema lo solucione de dos maneras uno entrando al cliente y pasando de manual a automatico no iniciado al servicio de Instantanea de Volumen
la otra forma es instalando la libreria libshadow en ubuntu
BDPGSQL-dir Start Backup JobId 3834, Job=Job-Senasa-Archivos2.2014-04-07_23.00.00_36
BDPGSQL-dir Using Device "Storage-FreeNas-BDPGSQL"
Recycled volume "Archivos2-Senasa-Inc-0186"
All records pruned from Volume "Archivos2-Senasa-Inc-0186"; marking it "Purged"
There are no more Jobs associated with Volume "Archivos2-Senasa-Inc-0186". Marking it purged.
BDPGSQL-dir Max Volume jobs exceeded. Marking Volume "Archivos2-Senasa-Inc-0186" as Used.
BDPGSQL-sd Recycled volume "Archivos2-Senasa-Inc-0186" on device "Storage-FreeNas-BDPGSQL" (/raid), all previous data lost.
Archivos3-fd Generate VSS snapshots. Driver="Win64 VSS", Drive(s)="D"
Archivos3-fd Fatal error: CreateSGenerate VSS snapshots failed. ERR=La operaci�n se complet� correctamente.
Archivos3-fd
Error: VSS API failure calling "BackupComplete". ERR=Object is not initialized; called during restore or not called in correct sequence.
12.- Error por migración a Ubuntu 14.04
Pase mi ubuntu 12.04 a 14.04 actualizandolo en modo online (Chicos eso no se hace !!) y tome la precaucion de hacer el dump de la base del bacula !
Me encuentro que estaba el mysql server 5.6 y lo actualize !!! Error !!! No anda el Bacula 5.2.6 con mysql server 5.6 (al menos yo no lo puede hacer andar) y tuve que hacer un downgrade a mysql 5.5, en ese interir se me descompagino todos los permisos de los directorios de bacula, por tocar con mis manos magicas !!!.
Por lo tanto hice borron y cuenta nueva, total tenia mi amado dump !! Instalo desde cero el mysql y el bacula ejecuto mi dump !!! reincio el servidor !! y me encuentro que el director no levanta !! chequeo mis password de SD FD y DIR y todo estaba correcto !! Los permisos de la carpeta bacula en /var/lib/bacula eran los correctos y empece mi derrotero para encontra la solucion !! ya que tenia mis backups a la deriba !! Hasta que ejecute :
bacula-dir -t -c /etc/bacula/bacula-dir.conf el cual me dijo que la version de bacula no coincidia con la version en la tabla Version.VersionId
Paso seguido chequeo desde mysql el dato que tenia en la tabla Version y decia 12 en el bacula que no andaba, y como tenengo 8 directores mas a los cuales cuando migre a ubuntu 14.04 lo habia echo como corresponde !! Reinstalando el sistema operativo desde Cero !! Me funcionaban correctamente !! por lo que chequeo en uno de ellos y veo que dice en Version.VersionId=14, entonces perdido por perdido update el dato y salio andando !!!
update Version set VersionId='14' where VersionId='12';