Tema anterior: MYSQLR, MYSQLR64: dispositivo de base de datos MySQL apropiado para replicar

Tema siguiente: Aplicación de N niveles con replicación principal-principal (apropiada para equilibrio de carga)


Propiedades

Nombre de la propiedad

Tipo

Descripción

auto_create

Entero

Crear la base de datos si no existe. Los valores posibles son 1 para crearla y 0 para impedir la creación automática (para evitar la sobrescritura accidental en caso de volúmenes dañados). Si se establece en 0 y no hay una base de datos en el volumen de datos, el dispositivo se inicia en modo de mantenimiento (el dispositivo se iniciará correctamente pero el daemon MySQL no se iniciará para que el usuario pueda revisar el problema). El valor predeterminado es 1.

error_log_filename

Cadena

Nombre del archivo de registro de errores, relativo al sistema de archivos de registro (por ejemplo /mysql_logs/my.log). Los directorios en la ruta se crean automáticamente. Si se deja vacío, se escribe el registro de errores en el volumen de datos (/mnt/data/error.log). Valor predeterminado: vacío

error_log_level

Cadena

Nivel de registro de errores. Los valores posibles son: error: sólo registra errores, warn: registra advertencias y errores. Esta propiedad no distingue entre mayúsculas y minúsculas. Valor predeterminado: error

timezone

Cadena

Especifica la zona horaria utilizada en el dispositivo. Si esta propiedad está vacía, la zona horaria no se modifica y se deja tal cual. Puede encontrar una lista de las zonas horarias disponibles a continuación.

Importante:

Propiedades avanzadas (utilizadas en escenarios de replicación)

Nombre de la propiedad

Tipo

Descripción

server_id

Entero

ID del servidor. Los valores posibles son de 1 a 10. Esto especifica el ID del servidor al hacer la replicación. Ayuda a garantizar la configuración de ID únicos para todos los servidores que forman parte de la replicación. Valor predeterminado: 1

rpl_mode

Cadena

Modo de replicación. Los valores posibles son "none" (sin replicación), "master", "slave" y "master_and_slave" (para escenarios de replicación con varios principales donde un servidor es principal y secundario al mismo tiempo). Valor predeterminado: none

web_pwd

Cadena

Contraseña para la autenticación en la interfaz Web. Esta propiedad es opcional. Si se establece así, el servidor http del dispositivo se inicia y la interfaz Web se muestra tanto en el terminal ui como en la interfaz predeterminada, desde donde se puede acceder a él mediante la opción Inicio de sesión (Web) en el editor de CA AppLogic. Valor predeterminado: vacío

Configuración personalizada

Esta función está disponible en MYSQLR64 1.6.1 o versiones posteriores.

MYSQLR64 permite usar un archivo de configuración de MYSQL personalizado que puede proporcionar opciones de configuración adicionales o sobrescribir configuraciones existentes especificadas en /etc/my.cnf.

Para utilizar una configuración personalizada, cree un archivo denominado my.cnf y colóquelo en el directorio superior del volumen de datos. El formato del archivo deberá seguir la sintaxis de archivo de opciones MYSQL, tal y como se describe en la documentación de MYSQL.

Por ejemplo, se puede usar lo siguiente para ajustar MYSQLR64 de modo que proporcione un mejor rendimiento al utilizar InnoDB (la configuración de MYSQLR64 predeterminada se optimiza para MyISAM). El ejemplo se basa en el uso de 512 MB de memoria (valor predeterminado para MYSQLR64).

[mysqld]
# Shrink down MyISAM buffers
key_buffer = 512K
myisam_sort_buffer_size = 512K

# Make InnoDB the default storage engine (optional)
default-storage-engine = INNODB

# Set InnoDB buffer size
innodb_buffer_pool_size=350M
innodb_log_file_size=128M
innodb_log_buffer_size=4M
innodb_thread_concurrency=8

# If you do not have too many tables use this option, so you will not have uncontrolled innodb main tablespace growth which you can’t reclaim.
innodb_file_per_table=1

Importante: Cuando se use en modo de replicación, MYSQLR64 sincronizará también el archivo my.cnf en el volumen de datos cuando arregle o inicie la replicación, de modo que el secundario tendrá la misma configuración que el principal.

Interfaz Web

MYSQLR64 proporciona una interfaz Web a la cual se puede acceder tanto desde el terminal ui como desde la interfaz predeterminada mediante la opción Inicio de sesión (Web) del editor de CA AppLogic. El uso de la interfaz Web requiere autenticación HTTP. Deje en blanco el espacio de nombre del usuario y utilice el valor de web_pwd como contraseña. La interfaz tiene las funciones siguientes:

Cómo agregar replicaciones principal-secundario a dispositivos MYSQLR64

CA AppLogic le permite agregar replicaciones principal-secundario a dispositivos MYSQLR64 existentes sin perder datos.

Para agregar replicaciones principal-secundario a dispositivos MYSQLR64

  1. Establezca rpl_mode en principal en el dispositivo existente.
  2. Agregue un dispositivo MYSQLR64 nuevo a su aplicación con un volumen de datos vacío. Conecte el terminal rout al terminal rin del dispositivo actual.
  3. (Opcional) Si lo va a utilizar en replicación principal-principal, conecte el terminal retirado del dispositivo actual al terminal rin del dispositivo nuevo.
  4. Reinicie la aplicación.
  5. Conéctese a la interfaz Web del dispositivo nuevo y seleccione iniciar o reparar la replicación en la ficha de gestión de la replicación. La duración del registro depende del tamaño de los datos en el principal. Si utiliza INSSLR para acceder a MYSQLR64, asegúrese de que la propiedad de tiempo de espera se establezca en un valor alto (36.000) para evitar tiempos de espera. Compruebe que no haya tiempos de espera en ninguno de los proxies del lado del cliente (es mejor no utilizar ningún proxy).
  6. Cuando empiece la replicación, inicie sesión en la interfaz Web en los dos dispositivos MYSQLR64 y verifique el estado de la replicación. En 5 minutos o menos, la replicación debería estar ejecutándose en los dos dispositivos.
Cómo agregar dispositivos MYSQLR64 a replicaciones principal-secundario

CA AppLogic le permite agregar dispositivos MYSQLR64 nuevos a replicaciones principal-principal existentes sin perder datos.

Para agregar dispositivos MYSQLR64 a replicaciones principal-secundario

  1. Agregue un dispositivo MYSQLR64 nuevo a su aplicación con un volumen de datos vacío. Por ejemplo, dbN, entendiendo que ya tiene N-1 dispositivos MYSQLR64 (3 <= N <= 10) y cada dispositivo tiene su terminal rout conectado al terminal rin del dispositivo siguiente en una configuración circular (rout de db1 se conecta a rin de db2, etc.).
  2. Establezca rpl_mode en master_and_slave de dbN.
  3. Conecte el terminal rout del dispositivo dbN-1 al terminal rin del dispositivo dbN.
  4. Conecte el terminal rout del dispositivo dbN al terminal rin del dispositivo db1.
  5. Reinicie la aplicación para que se apliquen los cambios. Después del reinicio, la replicación no quedará sincronizada hasta el final del procedimiento. Puede que los datos escritos en un dispositivo no se repliquen en el resto de dispositivos durante el procedimiento.
  6. Conéctese a la interfaz Web del dispositivo dbN y seleccione iniciar o reparar la replicación en la ficha de gestión de la replicación. La duración del registro depende del tamaño de los datos en el principal. Si utiliza INSSLR para acceder a MYSQLR64, compruebe que la propiedad de tiempo de espera se establezca en un valor alto (36.000) para evitar tiempos de espera. Compruebe también que no haya tiempos de espera en ninguno de los proxies del lado del cliente (es mejor no utilizar ningún proxy).
  7. Después de que se inicie replicación, conéctese a la interfaz Web de dbN-1 y seleccione restablecer la posición del registro del principal. Al incluir registros, la aplicación lee los registros binarios de dbN-1 y dbN desde el principio.
  8. Conéctese a la interfaz Web de todos los dispositivos MYSQLR64 y verifique el estado de la replicación; en 5 minutos o menos la replicación debería estar ejecutándose en todos los dispositivos.
Reparación de replicación en configuraciones principal-secundario

CA AppLogic le permite reparar la replicación en una configuración principal-secundario sin perder datos.

Para reparar la replicación en configuraciones principal-secundario

  1. Inicie sesión en la interfaz Web del secundario y seleccione iniciar o reparar la replicación. La duración del registro depende del tamaño de los datos en el principal. Durante la operación, el servicio mysql en el secundario se detiene. No se introduce el tiempo de inactividad en el principal. Esta operación es equivalente a agregar un dispositivo nuevo a un dispositivo MYSQLR64 existente. Si utiliza INSSLR para acceder a MYSQLR64, compruebe que la propiedad de tiempo de espera se establezca en un valor alto (36.000) para evitar tiempos de espera. También debe comprobar que no haya tiempos de espera en ninguno de los proxies del lado del cliente (es mejor no utilizar ningún proxy).
  2. Después de que se inicie replicación, conéctese a la interfaz Web en los dispositivos MYSQLR64 secundarios y verifique el estado de replicación; en 5 minutos o menos, la replicación debería estar ejecutándose.
Reparación de replicación en configuraciones principal-principal

CA AppLogic le permite reparar la replicación en una configuración principal-principal sin perder datos.

Conéctese a la interfaz Web del dispositivo que informa de error en la replicación y seleccione iniciar o repara la replicación. La duración del registro depende del tamaño de la base de datos en el principal. Durante la operación, el servicio mysql en el dispositivo se detiene. No se introduce el tiempo de inactividad en el principal. La base de datos no quedará sincronizada entre todos los principales hasta el final de la reparación. Es posible que las actualizaciones de base de datos se repliquen en todos los dispositivos MYSQLR64 restantes mientras dure la reparación.

Todos los datos en este dispositivo se inicializan desde el principal. Si se hacen actualizaciones en la base de datos en el dispositivo actual desde el momento en que falló la replicación, se perderán. En este caso, resuelva los conflictos manualmente.

Para reparar la replicación en configuraciones principal-principal

  1. Inicie sesión en la interfaz Web del dispositivo que tiene su terminal rout conectado al dispositivo que ejecuta la reparación de la replicación. Seleccione restablecer la posición del registro del principal. Establecer el registro del principal hace que la aplicación lea los registros binarios del dispositivo reparado desde el principio. Si utiliza INSSLR para acceder a MYSQLR64, compruebe que la propiedad de tiempo de espera se establezca en un valor alto (36.000) para evitar tiempos de espera. También debe comprobar que no haya tiempos de espera en ninguno de los proxies del lado del cliente (es mejor no utilizar ningún proxy).
  2. Conéctese en a la interfaz Web de todos los dispositivos MYSQLR64 y revise el estado de la replicación. En 5 minutos o menos, la replicación debería estar ejecutándose en todos los dispositivos.
Control de la replicación

Hay una tarea de cron que controla la replicación entre dispositivos de MYSQLR64. Si está activada la replicación, la tarea de cron se ejecuta cada dos minutos y envía alertas al cuadro de mandos del grid en los casos siguientes:

En estos casos, el usuario deberá resolver el problema manualmente.

En caso de fallo en la replicación, se puede utilizar la interfaz Web para corregir la situación, tal y como se describe en la sección arriba.

Contadores personalizados

El dispositivo MYSQLR64 informa sobre los siguientes contadores personalizados a través del terminal "mon".

Los contadores siguientes pertenecen al grupo de contadores de MySql:

Nombre del contador

Descripción

Aborted Clients

Número de clientes anulados por el servidor.

Aborted Connections

Número de conexiones anuladas por el servidor.

Bytes Received

Número de bytes recibidos.

Bytes Sent

Número de bytes enviados.

Total Connections

Número de conexiones.

Questions

Número total de preguntas.

Slow Queries

Número de consultas lentas.

Threads Created

Número de subprocesos creados.

Threads Connected

Número de subprocesos conectados.

Threads Running

Número de subprocesos ejecutándose.

Max Used Connections

Número de conexiones máximas utilizadas.

Open Files

Número de archivos abiertos.

Admin Commands

Número de comandos de administrador.

Alter Table Commands

Número de comandos para modificar tabla.

Analyze Commands

Número de comandos de análisis.

Change DB Commands

Número de comandos para cambiar la base de datos.

Change Master Commands

Número de comandos para cambiar el principal.

Check Commands

Número de comandos de comprobación.

Commit Commands

Número de comandos de confirmación.

Create DB Commands

Número de comandos de creación de base de datos.

Create Function Commands

Número de comandos de creación de función.

Create Index Commands

Número de comandos de creación de índice.

Create Table Commands

Número de comandos de creación de tabla.

Delete Commands

Número comandos de supresión.

Drop DB Commands

Número de comandos para borrar la base de datos.

Drop Function Commands

Número de comandos para borrar función.

Drop Index Commands

Número de comandos para borrar el índice.

Drop Table Commands

Número de comandos para borrar tabla.

Flush Commands

Número de comandos de limpieza.

Grant Commands

Número de comandos de concesión.

Insert Commands

Número de comandos de inserción.

Insert Select Commands

Número de comandos de inserción de selección.

Kill Commands

Número de comandos de finalización.

Load Commands

Número de comandos de carga.

Lock Tables Commands

Número de comandos de bloqueo de tablas.

Optimize Commands

Número de comandos de optimización.

Purge Commands

Número de comandos de borrado definitivo.

Rename Table Commands

Número de comandos para renombrar tabla.

Repair Commands

Número de comandos de reparación.

Replace Commands

Número de comandos para reemplazar.

Replace Select Commands

Número de comandos para reemplazar selección.

Reset Commands

Número de comandos de restablecimiento.

Revoke Commands

Número de comandos de revocación.

Rollback Commands

Número de comandos de reversión.

Select Commands

Número de comandos de selección.

Set Option Commands

Número de comandos para establecer opción.

Truncate Commands

Número de comandos de truncamiento.

Unlock Tables Commands

Número de comandos de desbloqueo de tablas.

Update Commands

Número de comandos de actualización.

Mensajes de error

Los mensajes siguientes pueden aparecer en el archivo de registro del dispositivo o en el registro del sistema del controlador de grid cuando el dispositivo falla al iniciarse:

Mensaje de error

Descripción

Failed to set timezone!

No se pudo establecer la zona horaria del dispositivo de acuerdo con lo configurado mediante la propiedad de zona horaria.

Appliance is running in [$rpl_mode] replication mode but binlogs volume is missing

El dispositivo está configurado para ejecutarse como principal, secundario o master_and_slave, pero no se ha indicado ningún volumen binlogs.

Appliance is running in [$rpl_mode] replication mode but the 'rout' terminal is not connected

El dispositivo está configurado para ejecutarse como principal o master_and_slave, pero el terminal rout no está conectado.

The 'rout' terminal is connected, but the [rpl_mode] property is set to 'none'. Either configure replication via the [rpl_mode] property or disconnect the 'rout' terminal

El terminal rout está conectado, pero la propiedad [rpl_mode] está establecida en "none". Configure la replicación mediante la propiedad [rpl_mode] o desconecte el terminal rout.

Failed to start mysql due to error_log_filename set and log terminal not connected!

La propiedad error_log_filename está configurada, pero el terminal log no está conectado.

Failed to mount share through log terminal!

El dispositivo se ha configurado para escribir registros en el terminal log, pero se produjo un error al montar el recurso compartido en el terminal log.

The share through the log terminal is not writeable!

El recurso compartido en el terminal log no es de escritura.

No se pudo crear el directorio de registros [$logdir] en el terminal log.

No se pudo crear el directorio de registros [$logdir] en el terminal log.

The logdir [$logdir] is not writeable!

El directorio de registros [$logdir] en el terminal log no es de escritura.

The logfile [$error_log] is not writable!

El directorio de registros [$error_log] en el terminal log no es de escritura.

Failed to create database!

Se ha iniciado el dispositivo sin base de datos y se produjo un error al instalar las bases de datos MySQL.

Failed to setup replication!

El dispositivo dio error al configurar la replicación.

Failed to start mysql!

El daemon MySQL no se pudo iniciar.

Insufficient permissions in the mysql database!

Los permisos para "root'@'%" son insuficientes o, si se utiliza en el modo de replicación, "replication_user'@'%" no tiene permisos suficientes para ejecutar la replicación MySQL.

No se pudo iniciar la interfaz Web.

No se pudo iniciar la interfaz Web.

The data volume size should be at least 100Mb

El volumen data debe tener más de 100 megabytes. Consulte las notas sobre los requisitos de volumen.

Además, pueden aparecer los errores siguientes en el cuadro de mandos del grid mientras el dispositivo se está ejecutando:

Mensaje de error

Descripción

El espacio libre del volumen de datos se está agotando. Compruébelo.

El espacio libre del volumen de datos es inferior al 20 %.

La replicación del servidor principal no se está ejecutando. Compruébelo.

La replicación del servidor principal no se está ejecutando.

La replicación del secundario va mucho más retrasada que la del principal. Compruébelo.

La replicación del secundario va mucho más retrasada que la del principal.

El espacio libre del volumen de los registros binarios se está agotando. Compruébelo.

El espacio libre del volumen binlogs es inferior al 20 %.

Aplicación de dos niveles simple (sin replicación)

El diagrama siguiente muestra un uso típico del dispositivo MYSQLR64 en una aplicación Web de dos niveles:

Aplicación de dos niveles simple (sin replicación)

Dispositivos en uso:

La solicitud del cliente llega a la puerta de enlace user. La puerta de enlace reenvía las solicitudes al servidor Web, el cual sirve la solicitud. Cuando los scripts (por ejemplo, Perl o PHP) en web tienen que acceder a datos persistentes, usan el dispositivo db a través del terminal de salida del servidor Web. El dispositivo db se configura para almacenar sus archivos de registro dentro del directorio raíz del recurso compartido mostrado por los registros.

Mediante un explorador, los administradores se conectan a la puerta de enlace admin para consultar los archivos de registro de mysql o del servidor Web. La puerta de enlace admin envía las solicitudes al dispositivo NAS de registros.

Configuración de una propiedad de ejemplo (las propiedades que no se especifican deberían dejarse con sus valores predeterminados):

Nombre de la propiedad

Valor

Notes

auto_create

1

Crea la base de datos si los volúmenes están vacíos.

error_log_filename

db.error

Nombre del archivo de registro de errores que se almacenará en el volumen de datos de registros.

error_log_level

error

Nivel de registro de errores.

Nota: El volumen de datos se deberá configurar también en el dispositivo db, así como los dispositivos logs, content y mon. Para crear volúmenes de aplicaciones que se puedan utilizar aquí, consulte la guía del usuario del grid.

Aplicación de dos niveles escalable (sin replicación)

El diagrama siguiente muestra un uso típico del dispositivo MYSQLR64 en una aplicación Web de dos niveles en la cual la base de datos se utiliza para compartir el estado y los datos entre varios servidores Web con equilibrio de carga. Además, este ejemplo tiene una entrada independiente para mantenimiento a través de la cual un administrador puede iniciar sesión y acceder a la base de datos para mantenimiento, así como una entrada a través de la cual un administrador puede iniciar sesión y ver el registro de errores de mysql.

Aplicación de dos niveles escalable (sin replicación)

Dispositivos en uso:

La solicitud del cliente llega a la puerta de enlace user. La puerta de enlace reenvía las solicitudes al equilibrador de carga web_lb, el cual las dirige a uno de los servidores Web: web1 o web2. Los servidores Web acceden a la base de datos db.

La base de datos db y los servidores web1 y web2 escriben sus archivos de registro en el dispositivo de registros a través de los terminales de registro. Además, un administrador se puede conectar a través de la puerta de enlace maint al dispositivo de registros y consultar los archivos de registro.

Adicionalmente, un administrador se puede conectar por SSH a través de la puerta de enlace maint al servidor de administración (deben configurarse las claves públicas y privadas). Desde el servidor admin, el administrador puede acceder a la base de datos db para obtener estadísticas o cambiar el esquema de la base de datos. El servidor admin puede acceder a Internet a través de la puerta de enlace gway para, por ejemplo, descargar una versión más reciente de bibliotecas o el esquema de la base de datos.

Configuración de una propiedad de ejemplo (las propiedades que no se especifican deberían dejarse con sus valores predeterminados):

Nombre de la propiedad

Valor

Notes

auto_create

1

Crea la base de datos si los volúmenes están vacíos.

error_log_filename

db.error

Nombre del archivo de registro de errores que se almacenará en el volumen de datos de registros.

error_log_level

error

Nivel de registro de errores.

Notas:

Aplicación de N niveles con replicación principal-secundario (apropiada para copias de seguridad)

El diagrama siguiente muestra un uso típico del dispositivo MYSQL en una aplicación Web en la cual la base de datos se replica a un servidor secundario. El servidor secundario se puede usar para hacer copias de seguridad consistentes de los datos sin detener el servidor principal, introduciendo así un tiempo de inactividad cero para la aplicación.

Aplicación de N niveles con replicación principal-secundario (apropiada para copias de seguridad)

Dispositivos en uso:

La solicitud del cliente llega a la puerta de enlace user. La puerta de enlace reenvía las solicitudes al equilibrador de carga web_lb, el cual las dirige a uno de los servidores Web: web1 o web2. Los servidores Web acceden a la base de datos principal.

El dispositivo secundario se conecta al dispositivo principal y replica sus datos. Los dispositivos secundarios se pueden detener en cualquier momento para hacer copias de seguridad consistentes de los datos de SQL o los análisis de gran volumen sin interferir en el rendimiento del dispositivo principal y el resto de la aplicación.

El acceso Web a los dispositivos principales y secundarios está disponible a través de la puerta de enlace admin en los puertos 8080 y 8081.

Los dispositivos principal, secundario, web1 y web2 se configuran para almacenar sus archivos de registro dentro del directorio raíz del recurso compartido que muestran los registros. Además, un administrador puede ver los archivos de registro a través de la puerta de enlace admin.

Configuración de una propiedad de ejemplo (las propiedades que no se especifican deberían dejarse con sus valores predeterminados):

master

Nombre de la propiedad

Valor

Notes

auto_create

1

Crea la base de datos si los volúmenes están vacíos.

error_log_filename

master-db.error

Nombre del archivo de registro de errores que se almacenará en el volumen de datos de registros.

error_log_level

error

Nivel de registro de errores.

server_id

1

Servidor principal (no es obligatorio que sea 1; debe ser diferente del server_id del secundario).

rpl_mode

master

Escribir registros binarios para la tarea de replicación.

slave

Nombre de la propiedad

Valor

Notes

auto_create

1

Crea la base de datos si los volúmenes están vacíos.

error_log_filename

slave-db.error

Nombre del archivo de registro de errores que se almacenará en el volumen de datos de registros.

error_log_level

error

Nivel de registro de errores.

server_id

2

Servidor secundario (no es obligatorio que sea 2; debe ser diferente del server_id del principal).

rpl_mode

slave

Conectarse al principal.

Notas: