Está en la página 1de 10

Crear un servidor replica esclavo en mysql

Escrito por Reyneltutoriales el 07-07-2014 en crear. Comentarios (0)
Lo primero que debes hacer es configurar el servidor maestro para que
almacene el log binario y asignarle un identificador. Para ello editamos
el my.cnf añadiendo (o editando si ya las tiene) las siguientes entradas:
#Identificador único del servidor maestro
server-id=1
#Nombre del fichero binario donde se almacenarán las transacciones
log-bin=mysql-bin
sync_binlog=1
#Tamaño del fichero de log tras lo que se truncara
max-binlog-size=500M
expire_logs_days=4
innodb_flush_log_at_trx_commit=1
Como siempre que modificamos un my.cnf hay que reiniciar el servicio
deMySql para que acepte los cambios.
Luego tenemos que hacer lo propio con el (o los) esclavo(s). Modificar el my.cnf
con los siguientes parámetros y luego reiniciar el servicio:
#Indentificador único del esclavo
server-id=2
relay-log=mysqld-relay-bin
max-relay-log-size=500M
relay_log_purge=1
Ya tenemos un servidor maestro y un esclavo pero ahora necesitamos crear
unusuario para que el esclavo se conecte al maestro y pueda leer el log de
transacciones. Para ello vamos a crear un nuevo usuario llamado "replicador"
(el nombre y pass puede variar) en el master con privilegios de "REPLICATION
SLAVE":

.0. MASTER_USER='replicador'.1.* TO 'replicador'@'%' IDENTIFIED BY 'el password'. MASTER_PORT=3306. Lo primero es cargar una copia de seguridad de base de datos que queremos replicar del master al esclavo (puedes usar el método que quieras. Vamos al servidor esclavo y lo terminamos de configurar. FLUSH TABLES WITH READ LOCK. MASTER_LOG_POS=492. START SLAVE. SHOW MASTER STATUS.0. MySql Workbench. FLUSH PRIVILEGES.. El SHOW MASTER STATUS muestra dos valores que debemos anotar que son el "File" y "Position". Y luego le damos los permisos de REPLICATION SLAVE: GRANT REPLICATION SLAVE ON *. una vez restaurada. MASTER_PAS MASTER_LOG_FILE='mysql-bin. Ya tenemos los servidores bien configurados y el usuario que usaremos como replicador por lo que lo próximo que tenemos que hacer es crear una copia inicial o "snapshot" de la base de datos que queremos replicar para luego poder indicar al servidor esclavo desde dónde tiene que empezar a leer. Fíjate que tenemos que indicar elFiley la Position que hemos obtenido antes del SHOW MASTER STATUS: CHANGE MASTER TO MASTER_HOST='10.000001'.CREATE USER replicador IDENTIFIED BY 'el password'. Ten en cuenta que al hacer "READ LOCK" estamos bloqueando la tabla para que nadie cambie nada por lo que lo que viene a continuación deberíamos hacerlo lo más rápidamente posible. configurar el esclavo e iniciarlo. mysqldump.1.10'. En este ejemplo vamos a suponer que el servidor maestro está alojado en 10. Para hacer el snapshot primero ejecutamos las siguientes consultas: FLUSH TABLES. . HeidSql. Necesitaremos indicárselos al servidor de réplica una vez hayamos cargado la copia inicial.10.) y.

etc. La replicación copia y mantiene los objetos de las bases de datos en las múltiples bases de datos que levantan un sistema distribuido. un gestor de base de datos Mysql común. . Actualmente (Junio-2011). para el primero se utiliza MySql clúster mientras que para el segundo. La replicación puede mejorar el funcionamiento y proteger la disponibilidad de las aplicaciones. esto con el objetivo de mantener redundancia.8. por que alterna opciones de acceso de los datos existentes. el sistema sigue funcionando aún en caso de caída de uno de los nodos. un sistema distribuido debe lucir exactamente igual que un sistema que no es distribuido” La replicación en MySql se puede dar de forma síncrona (clustering) o asíncrona. se explicaran las ventajas y desventajas de poseer una base de datos distribuida con mysql de forma asíncrona. tienen la capacidad de realizar procesamientos autónomos y globales (replicarse). En nuestro caso la versión 5.Bases de datos distribuidas con Mysql Una Base De Datos Distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos e interconectados por una red de comunicaciones. en lugar de a toda la base de datos. balanceo de carga.5. Es un sistema de base de datos almacenado en varios servidores y que es vista por el cliente como una sola. Ahora bien. “Ante el usuario. mysql clúster existe solamente para plataformas Linux. VENTAJAS   Disponibilidad: un fallo en una parte del sistema solo afectará a un fragmento. Aumento del paralelismo: Varios nodos pueden realizar consultas en paralelo sobre la misma tabla.

se debe lidiar con varios sistemas diferentes que pueden presentar dificultades únicas. Modularidad: se pueden modificar. Software de Mysql instalado (Descargar mysql 5. El diseño de la base de datos se tiene que trabajar tomando en cuenta su naturaleza distribuida. Procedimiento: Configurando el servidor Maestro  Editar el archivo "C:\Program Files\MySQL\MySQL Server 5. así como de los procedimientos de recuperación de fallos del sistema.rar) Conexión física y configuraciones de red entre ambos equipos. Carencia de estándares: aún no existen herramientas o metodologías que ayuden a los usuarios a convertir un DBMS (Sistema de Administración de Base de Datos) centralizado en un DBMS distribuido. lo cual permite balancear la carga en los servidores.5\my.5. Base de datos “Agenda” (Descargar base de datos). agregar o quitar sistemas de la base de datos distribuida sin afectar a los demás sistemas (módulos). Cuando se realiza una actualización sobre una de ellas. es más difícil asegurar el funcionamiento correcto de los algoritmos.8. Mayor probabilidad de errores: Como los nodos que constituyen el sistema funcionan en paralelo.ini" con los siguientes datos: [mysqld] . por lo cual no podemos pensar en hacer consultas JOIN que afecten varios sistemas. DESVENTAJAS     Complejidad: Se debe asegurar que la base de datos sea transparente.   Aumento de la sobrecarga en las actualizaciones: El sistema debe asegurar que todas las réplicas de la tabla sean consistentes. Seguridad: se debe trabajar en la seguridad de la infraestructura así como cada uno de los sistemas. una que desempeñará el papel de maestro y la otra de esclavo. los cambios deben propagarse a todas a lo largo del sistema distribuido. Rendimiento: Los sistemas trabajan en paralelo. mientras las actualizaciones se realizan en el maestro. ¿COMO CONFIGURARLO? Recursos:     Dos pc’s. se hacen todas las consultas SELECT a un servidor esclavo.

binlog-do-db=agenda replicate-do-db=agenda   Reiniciar el servicio de Mysql. log-bin="C:\Mysql\mysql_log. crearlo en cualquier ruta con un Notepad. Si no existe. Acceder a la consola Mysql (colocando los datos correctos en donde aparecen corchetes): . en él se guardarán las actualizaciones y se utilizará para sincronización y #replicación. no se debe de repetir entre ellos. server-id=3 #Archivo log.bin" #Base de Datos a vincular y replicar entre ambos servidores.# Id del servidor de BD.

o sustituirlo por el porcentaje ‘%’.5\bin> mysql –u [usuario] –p Crear usuario para replicación: Mysql> grant replication slave on *.C:\>mysql –u [usuario] -p Si no reconoce el comando. ya que se utilizarán para configurar el esclavo. Mysql>flush tables with read lock.  Otorgar privilegios Mysql>flush privileges. Anotar los parámetros mostrados en la tabla. ejecutarlo en la ruta:  C:\Program Files\MySQL\MySQL Server 5. Se puede crear un usuario de forma gráfica. Mysql>use agenda.  Parámetros de configuración Mysql>show master status. El dominio puede ser la IP de la pc esclavo. se detallará más adelante.* to ‘usuario’@’dominio’ identified by 'password'. .

Crear la base de datos (desde la consola de mysql): Mysql> create database agenda. Hacer un back up de la base de datos “agenda” para crearla en el servidor esclavo. Reiniciar el servicio de mysql. master_log_file=’mysql_log. Mysql> change master to mater_host=’192.1. master_user=’wil’. C:\> mysql –u root –p agenda < c:\agenda. Mysql> start slave.1.2 para el servidor maestro y haremos uso de los datos de la figura anterior: Mysql> slave stop.  Para verificar el estado de la replicación.168. master_log_pos=107. Mysql> exit. agregando la misma configuración que en el maestro.168.sql Esto suponiendo que el archivo .sql Configurando el servidor Esclavo    Editar el archivo my. . supondremos la ip:192.000026’.ini.2’.sql se ha colocado en C:\  Sincronización de maestro y esclavo para replicación. master_password=’p123’. C:\>mysqldump –u root –p --opt agenda > agenda. podremos ejecutar el siguiente comando: Mysql> show slave status.

hay solo un maestro y un esclavo que replica en él los cambios del maestro. es necesario hacer ambos servidores maestro y esclavo a la vez con la configuración antes mencionada. en la ventana principal de mysql elegir la opción Manage Security. Recordemos que con esta configuración solamente se ha creado replicación en una dirección. ya que se encuentra disponible en el sitio web de mysql. Para la creación del usuario es igual de sencillo que en la consola de mysql.Ahora solo nos queda probar la replicación agregando/editando registros en un servidor y comprobándolos en el otro. Para tener una configuración maestro-maestro y que los cambios en cualquier servidor se vean reflejados en el otro. CREANDO USUARIOS Y RESTAURANDO BD DE FORMA GRÁFICA Se aconseja utilizar Mysql Workbench. mas no en sentido contrario. . es decir.

se crea de forma diferente un usuario para replicación. Para exportar una base de datos y guardarla en un archivo *. . En la pestaña de Roles Administrativos se conceden los permisos que se deseen al usuario.La ventana siguiente nos muestra las opciones de administración de seguridad que mysql workbench nos ofrece para nuestros esquemas. luego agregamos los datos correspondientes para crear el usuario. En la parte de usuarios y privilegios. dar clic en Agregar Cuenta.sql. accedemos a "Exportar y Extraer datos" en "Administración de Seguridad" o "Manage Security". seleccionar la pestaña "Exportar en disco". Con esto. Para Exportar o importar bases de datos. recordando que el símbolo % significa “cualquier host” y posteriormente aplicar los cambios.

. clic en la opción "Importar auto-contenido desde archivo" y elegimos la ruta del archivo *.sql. Finalmente damos clic en "comenzar a importar" y ya tendremos cargada la base de datos en nuestro sistema. Esperamos este post sea de utilidad. Para restaurar una base de datos basta con dar clic en la pestaña "Importar desde archivo" : Se nos presentan diversas opciones para restaurar una base de datos. sin embargo resulta necesario aplicar técnicas más avanzadas de seguridad si queremos tener integridad en nuestros datos. seleccionamos la base o bases de datos a exportar. Hemos tratado de presentar una opción para mantener nuestras bases de datos a prueba de fallos de hardware principalmente.En las opciones. Como siguiente paso nada mas nos queda comenzar a exportar. seguido en "Exportar autocontenido a archivo" indicamos la ruta y nombre del archivo donde se guardará la base de datos. cualquier comentario u observación no duden en contribuir.