viernes, 4 de marzo de 2011

Como respaldar y restaurar una base de datos de OpenLDAP

Como buen administrador siempre procuramos tener una copia de seguridad reciente de las bases de datos de las apliaciones que administramos para poder re establecer el sistema en caso de desastre.

En este articulo explicare como crear una copia de seguridad de una base de datos en un servidor OpenLDAP, generaremos respaldos en frio y en caliente, los respaldos serán generados en formato LDIF.

Suponiendo que en el archivo slapd.conf(5) tenemos una definición de base de datos así:

# Specific Backend Directives for hdb:
backend hdb
# Specific Directives for database #1, of type hdb:
database hdb
# The base of your directory in database #1
suffix "dc=example,dc=com"
# Where the database file are physically stored for database #1
directory "/var/lib/ldap"

El programa slapcat(8) lee la información de la base de datos en orden secuencial y genera la salida correspondiente en formato LDIF incluyendo atributos de usuario y operacionales, el programa slapcat solo respaldara las entradas que se leyeron en el momento de la ejecución, si en el momento de que slapcat esta ejecutandose se realiza una operación de escritura sobre alguna entrada dicho cambio no será incluido en el respaldo.

En OpenLDAP las bases de datos de tipo hdb y bdb pueden ser respaldadas mientras el servicio slapd(8) esta en ejecución usando el programa slapcat, a este tipo de respaldo se le llama en caliente.

Si no esta seguro de que no habrá modificacioens en los datos de las bases de datos de OpenLDAP y no sabe si dichos cambios puedan afectar las aplicaciones o clientes LDAP se recomienda que detenga el servicio slapd antes de generar el respaldo con slapcat, a este tipo de respaldo se le llama en frio.

Para crear un respaldo en frio de una base de datos de OpenLDAP siga el siguiente procedimiento:

1.- Detener el servicio slapd:

# /etc/init.d/slapd stop

2.- Respaldar la base de datos usando el programa slapcat:

# slapcat -b dc=example,dc=com -l respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif

El comando slapcat generará un respaldo de la base de datos dc=example,dc=com definida por el parametro -b en el archivo respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif definido por el parametro -l.

Para crear un respaldo en caliente de una base de datos de OpenLDAP solo ejecute el comando slapcat como en el paso dos del ejemplo anterior.

Se recomienda que el archivo del respaldo sea movido a un lugar fuera del servidor.

Para restaurar la base de datos a partir del archivo LDIF generado por slapcat siga el siguiente procedimiento:

1- Apagar el servicio slapd:

# /etc/init.d/slapd stop

2.- Limpiar el directorio de base de datos de slapd:

# (cd /var/lib/ldap/; rm -fv alock __db.* *.bdb log.*)

3.- Restaurar directorio a partir del archivo LDIF:

# slapadd -v -b dc=example,dc=com -l respaldo-dc=example,dc=com-`date +%d-%b-%Y`.ldif

- Opcionalmente Re indexe todos los atributos :

# slapindex -v

- Re establecer permisos al directorio de datos:

# chown -R openldap:openldap /var/lib/ldap

- Iniciar el servicio slapd:

# /etc/init.d/slapd start


http://tuxjm.net/2010/01/11/como-respaldar-y-restaurar-una-base-de-datos-de-openldap/

No hay comentarios: