4D Server ofrece una solución integrada que permite configurar un sistema de backup vía un espejo lógico. Esta solución está basada en dos comandos: New log file y INTEGRATE MIRROR LOG FILE.
Un espejo lógico es un modo backup sofisticado, destinado especialmente para bases de datos críticas o de carga alta.
El uso de un espejo lógico consiste en operar una base de datos en una máquina y mantener en una segunda máquina una copia de esta base que se actualiza periódicamente. Ambas máquinas se comunican por la red, la máquina en funcionamiento transmite regularmente a la máquina espejo los cambios de los datos por intermedio del archivo de historial.
De esta manera, cuando hay un incidente que afecta a la base de datos operacional, la base de datos espejo se puede utilizar para conseguir rápidamente volver a trabajar sin pérdida de datos. Por otra parte, la base de datos operacionales nunca está "bloqueada" por las operaciones de backup.
El uso de un espejo lógico corresponde a necesidades concretas. La estrategia estándar basada en copias de seguridad periódicas y el uso de un archivo de historial constituye en la mayoría de los casos una solución simple, fiable y económica. Se hace backup de la base regularmente (cada 24 horas en general). Durante la copia de seguridad, todos los procesos se congelan. Este período de no disponibilidad parcial es muy corto, e incluso en el caso de bases de datos grandes (mayores de 2 GB), no dura más de 5 minutos. Esta operación puede programarse para tener lugar fuera de los períodos de uso de la base.
Sin embargo, para ciertos tipos de organizaciones, tales como hospitales, por ejemplo, las bases de datos críticas debe ser totalmente operacionales las 24 horas del día. La base no puede estar en "modo copia de seguridad", aunque sea por un período de tiempo muy corto. En este caso, la creación de un espejo lógico es una buena solución.
Nota: la base espejo sólo refleja los cambios realizados a los datos. Este modo de backup no es adecuado para bases en proceso de desarrollo, donde las frecuentes modificaciones estructurales hará que el espejo rápidamente sea obsoleto o que requieren múltiples actualizaciones de la estructura de la base espejo.
La creación de un sistema de backup por espejo lógico se basa en dos nuevos comandos: New log file yINTEGRATE MIRROR LOG FILE. Estos comandos se describen en el manual Lenguaje de 4D.
Los principios siguientes aplican:
La base está instalada en el equipo 4D Server principal (máquina de funcionamiento) y una copia idéntica de la base está instalada en la máquina 4D Server espejo.
Una prueba al inicio de la aplicación (por ejemplo, para detectar la presencia de un archivo específico en una subcarpeta de la aplicación 4D Server) permite distinguir cada versión (operacional y espejo) y por tanto ejecutar las operaciones apropiadas.
En la máquina 4D Server en funcionamiento, el archivo de historial es "segmentado" a intervalos regulares con el comando New log file. Dado que ninguna copia de seguridad se lleva a cabo en el servidor principal, la base se mantiene disponible permanentemente en modo lectura-escritura.
Cada “segmento” del archivo de historial se envía a la máquina espejo, donde se integra a la base espejo utilizando el comando INTEGRATE MIRROR LOG FILE.
La creación de este sistema necesita la programación de código específico, en particular:
Un contador de tiempo en el servidor principal para la gestión de los ciclos de ejecución del comando New log file,
Un sistema de transferencia para los "segmentos" del archivo de historial entre la máquina operacional y la máquina espejo (usando 4D Internet Commands para una transferencia vía FTP o por sistemas de mensajería, servicios web, etc),
Un proceso en la máquina espejo destinado a supervisar la llegada de nuevos "segmentos" del archivo de historial y de integrarlos usando el comando INTEGRATE MIRROR LOG FILE,
Un sistema de comunicación y de gestión de errores entre el servidor principal y el servidor espejo.
ATENCIÓN: un sistema de backup por espejo lógico no es compatible con los backup "estándar" en una base en uso ya que el uso simultáneo de estos dos modos de backup dará lugar a la desincronización de la bases operacional y espejo. Por consiguiente, debe estar seguro de que ningún backup, automático o manual, se efectúe en la base operacional. Por otra parte, es posible hacer backups de la base espejo o establecer un "espejo de espejo" (ver el siguiente párrafo).
4D Server permite efectuar backups de la base en la máquina espejo. Todos los medios convencionales se pueden utilizar para realizar backups en la máquina espejo: backup manual vía el comando de menú Archivo, backup periódico definido en las Propiedades de la base o backup programado utilizando los comandos del lenguaje.
Para evitar riesgos de desincronización con la máquina operacional, 4D bloquea automáticamente la máquina espejo cuando se está llevando a cabo una de las dos operaciones básicas: integración del archivo de historial de la máquina operacional y backup de la base espejo.
Durante la integración del archivo de historial, no es posible llevar a cabo un backup. Si se utiliza el comando BACKUP, se genera el error 1417 (ver la sección Errores de gestión de backup).
Cuando un backup está en marcha, todos los procesos se congelan y no es posible poner en marcha la integración de un archivo de historial.
A partir de 4D v14, se puede activar el archivo de historial actual en la máquina espejo, lo que significa que puede configurar un "espejo de espejo" (ver espejos en serie), o incluso una arquitectura de espejos "hub-and-spoke" (varios espejos para la misma base en operación). En el primer caso, el archivo de historial actual del espejo se envía a su vez a otro espejo (el "espejo del espejo") para integración, y así sucesivamente si se utiliza una serie de espejos.
En el segundo caso, el historial actual se envía directamente a varios servidores espejo idénticos. Este tipo de redundancia asegura la disponibilidad continua del servidor, incluso en el caso de fallo simultáneo del servidor y del espejo principal.
El siguiente escenario ilustra, desde el punto de vista de cada equipo 4D Server, la configuración y el funcionamiento de un sistema de backup con espejo:
Paso
Equipo en operación
Equipo espejo
1
Arranque de la aplicación, back up del archivo de datos. El archivo de historial se activa por defecto; para mayor seguridad, almacenar este archivo en un disco duro separado.
4D crea el archivo MyDatabase.journal. Para mayor seguridad, el archivo de historial se guarda en un disco duro separado.
Salimos de la aplicación.
Copia de todos los archivos de la base (archivo de historial incluido) en el equipo espejo.
2
Reinicio de la aplicación e inicio de la operación (verificar que no haya un backup total programado).
Inicio de la aplicación espejo. 4D Server solicita el archivo de historial actual: selección del archivo MyDatabase.journal que fue transferido de la base operacional. Este archivo se utilizará en caso de implementación de un espejo de espejo.
3
Decisión de actualizar el espejo (por ejemplo, después de un cierto periodo de operación).
Ejecución del método que contiene el comando New log file. El archivo guardado se llama MyDatabase[0001-0001].journal.
Envío por programación del archivo MyDatabase[0001-0001].journal al equipo espejo (utilizando 4DIC, Servicios web, etc.).
La base está en operación.
4
Detección de un archivo que está esperando a ser integrado. Ejecución del método que contiene el comando INTEGRATE MIRROR LOG FILE para integrar el archivo MyDatabase[0001-0001].journal. Si utiliza un espejo de espejo, ejecución en el equipo espejo de un procedimiento similar a la etapa 3 (a repetir a cada integración del historial).
5
Incidente en el equipo; la base es inutilizable. Decisión de pasar al equipo espejo.
Copia del archivo de historial actual MyDatabase.journal al equipo espejo, vía la carpeta de destino habitual.
6
Análisis del incidente y reparación.
Detección de un archivo que está esperando a ser integrado. Ejecución del método que contiene el comando INTEGRATE MIRROR LOG FILE para integrar el archivo MyDatabase.journal.
La base está en operación.
7
La máquina se repara. Remplazo de los archivos de la base por los de la base espejo. Inicio de la aplicación. 4D Server solicita el archivo de historial: selección del archivo transferido desde el equipo espejo.