Restaurar

Ahora vamos a ver cómo ejecutar un backup job. La restauración se puede hacer ejecutando un Restore job que se haya denfido en la conguración de Bacula o ejecutando el comando restore en la bConsole. Las dos modalidades presentan diferentes opciones, así que primero se explicará cómo restaurar con un Restore job y después corriendo el comando restore.

La restauración de archivos en Bacula tiene tres etapas denidas:

1. Buscar y seleccionar los jobs que backupearon los archivos que queremos recuperar. Esto se hace ejecutando un run o un restore en la bconsole.

2. Armar el árbol de directorios de donde seleccionar los archivos y directorios a restaurar. Esto lo hace Bacula, en base a los jobs seleccionados en el paso anterior.

3. Seleccionar qué restaurar. Esto lo hacemos a mano, utilizando el comando mark. En la bConsole escribimos run, y seleccionamos el restore job denido en 1.

The defined Job resources are:
1: default_restore_job
2: backup_unlp
3: backup_unlp_tape
Select Job resource (1-5): 1
Please enter a JobId for restore:

Nos pregunta el Backup job que queremos restaurar

Please enter a JobId for restore: 4
Run Restore job
JobName: default_restore_job
Bootstrap: *None*
Where: /var/cache/raid/backups/restores
Replace: always
Client: silicio-fd
Storage: silicio-sd-disco
JobId: 4
When: 2007-11-09 18:38:29
Catalog: catalogo
Priority: 10
OK to run? (yes/mod/no):

Cuando seleccionamos el job, Bacula arma un restore job para restaurar los datos guardados en en backup job seleccionado. Luego muestra conguración del restore job y nos pregunta si los datos son correctos. La forma de trabajar en este paso es la misma en que se trabajaba con los backup jobs: se verican que los valores sean correctos, si no lo son, se ingresa "mod" y se escriben los valores correctos, así hasta que todos los valores sean
los indicados. Cuando se haya terminado de congrurar el job, se lo ejecuta escribiendo "run" en la bConsole.

Bootstrap

Where: Es el directorio en el cliente donde se van a guardar los archivos restaurados

Replace: Dice si reemplaza los archivos existentes por los restaurados. Posibles valores: always, ifnewer, ifolder, never

Client: Es el host que recibirá los archivos restaurados. Este host va a guardar los archivos en el directorio
especicado en Where 18

Storage: Es el dispositivo del que se van a sacar archivos para restaurarlos en el cliente

JobId: Es el job que se va a restaurar

La otra forma de restaurar un backup es hacerlo mediante el comando restore. A continuación vamos a hacer un Full Restore de Isis.

Escribimos restore en la bConsole, a lo cual Bacula nos responde con el siguiente listado de opciones:

*restore
First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.
To select the JobIds, you have the following choices:
1: List last 20 Jobs run
List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Cancel
Select item: (1-9):

Las opciones para restaurar archivos específicos requieren el path completo del archivo, tal cual estaba en el cliente. Por ejemplo, para restaurar el archivo /home/matiasb/archivo.txt hay que buscarlo como /home/matias/archivo.txt; archivo.txt sería un archivo totalmente distinto.

Esta posibilidad de restaurar archivos específicos se puede hacer gracias al catálogo que usa Bacula. Si por
algún motivo el catálogo se borra, ya sea a propósito o por un descuido, no se podrían hacer restores selectivos
para las entradas en el catalog que fueron borradas. Por ejemplo, si borro del catálogo todos los jobs selacionados con los backups hechos para Isis, entonces no podría hacer un restore de Isis de esta forma. De currir esto, se puede hacer un restore usando las herramientas extra-consola que provee Bacula, como bls, bextract, etc.

Notar que en el catálogo sólo se guarda información sobre los archivos y no los archivos en sí, así que por más que se pierda el catálogo, los datos seguirán almacenados en los volúmenes, ya sea en el disco duro o en la cinta, dependiendo del dispositivo donde se hayan almacenado.

Ingresando 5, Bacula nos pregunta cuál de todos los clientes restaurar. En nuestro caso, los clientes son:

Select item: (1-9): 5
Defined Clients:

4: isis-fd
Select the Client (1-4):

Elijo Isis. Inmediatamente Bacula lee el catálogo para armar un árbol de directorios virtual de donde seleccionar los archivos y directorios a restaurar:

Automatically selected FileSet: isis-fs
+-+-+---+-----+----—+-—+--+--—+
| JobId | Level | JobFiles | StartTime | VolumeName | StartFile | VolSessionId | VolSessionTime |
+
-+-+-—+---—+----+-—+--+--——+
| 5,038 | F | 2,766,128 | 2007-11-04 00:41:53 | Isis-Full-0002 | 9 | 291 | 1,192,533,342 |

………………….. Muchas lineas mas…..
+-+-+---+-----+----—+-—+--+--——+
You have selected the following JobIds: 5038,5060,5068,5076,5084,5093,5101,5109,5117,5126,5134

Building directory tree for JobId 5038 …

En el listado de arriba se ve como Bacula elige los jobs y arma el árbol. Cuando termina y el árbol está creado,
nos da un prompt donde podemos marcar y desmarcar archivos y directorios.

$ pwd
cwd is: /etc/bacula/
$ ls
bacula-fd.conf
scripts/
$

Con el comando mark se selecciona lo que queremos restaurar y con el comando unmark desmarcamos algo que por error marcamos. Por ejemplo, marco el archivo de conguración del cliente Bacula y luego lo desmarco:

$ mark bacula-fd.conf
1 files marked.
$ unmark bacula-fd.conf
1 files unmarked.
$

Supongamos que marcamos para restaurar el archivo /etc/bacula/bacula-fd.conf y el directorio /etc/bacula/scripts.

Con el comando estimate Bacula nos da una estimación de cuántos bytes se van a restaurar (Notar cómo marcando un directorio, automáticamente se marcan todos los archivos que tenemos dentro de ese directorio):

$ mark scripts
5 files marked.
$ estimate
2785207 total files; 8 marked to be restored; 2,576 bytes.
$

Cuando hayamos marcado todo lo que debemos restaurar, con el comando done le indicamos a Bacula que puede empezar a restaurar los datos. En cualquier momento podemos usar el comando help, que imprime un
listado de comandos disponibles. Ademas, si se quiere cancelar el restore, se puede usar el comando ".", que
sirve para volver a la bConsole.

« Linux | Bacula

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License