Para la creación de una replicación enMySQL, no requerimos mas que de tres sencillos pasos:
1.-Creacion de las cuentas de replicacion en cada servidor.
2.- Configurar el maestro y el esclavo.
3.- Hacer la conexión del esclavo y que replique del maestro.
Creacion de las cuentas de replicacion en cada servidor.
Primero, para este paso, hay que mencionar que el usuario de la replicación, tiene algunos privilegios especiales ya que el procedimiento se realiza mendiante una conexion TCP/IP, y hace un uso del archivo de log del maestro, por lo que se requiere crear uno con la siguiente instrucción:
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.*
-> TO usuario_replicacion@'192.168.0.%' IDENTIFIED BY 'contrasenia';
donde:
usuario_replicacion es el nombre del usuario que tendra nuestro esclavo de la replicación.
contrasenia la palabra de acceso para nuestra cuenta
Esta cuenta se debe crear tanto en el esclavo como en el maestro. Y la cuenta esta restringida a la red local, debido a que supone un riesgo a la seguridad si sale a una red publica.
Configurando el Maestro y el Esclavo
Ahora, lo que necesitamos hacer es habilitar el Registro Binario ( log ), en el servidor maestro, esto lo haremos editando el archivo my.ini en windows o my.cnf en unix, agregando las siguientes lineas despues de mysqld en dicho archivo.
log_bin = mysql-bin
server_id = 10
una vez hecho esto necesitamos reiniciar el RDBMS y comprobar que el registro se ha habilitado mediante el comando:
mysql> SHOW MASTER STATUS;
+-------------------+----------+---------------+--------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+---------------+--------------------+
| mysql-bin.000001 | 98 | | |
+-------------------+----------+---------------+--------------------+
1 row in set (0.00 sec)
hecho esto, editamos el archivo my.ini o my.cnf en el esclavo con las siguientes instrucciones:
log_bin = mysql-bin
server_id = 2
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
e igualmente se reinicia el servidor esclavo.
Iniciar el esclavo
El siguiente paso es decirle a esclavo como conectarse al maestro y comenzar la replicacion de sus registros binarios (logs). A partir de este momento ya no es necesario editar el archivo my.ini y usar el comando CHANGE MASTER TO esta sentencia edita dicho archivo. Y la sentencia para iniciar lareplicacion es:
mysql> CHANGE MASTER TO MASTER_HOST='server1',
-> MASTER_USER='usuario_replicacion',
-> MASTER_PASSWORD='contrasenia',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=0;
los datos igual como antes, son los correspondientes al usaurio de la replicacion en el maestro, y su contraseña, y el archivo de replicacion debe ser el del log que habilitamos o que vimos en el SHOW MASTER STATUS, y el MASTER LOG es para que despues de haber realizado la replicacion podamos visualizar el estado del esclavo.
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: server1
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 4
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: No
Slave_SQL_Running: No
...omitted...
Seconds_Behind_Master: NULL
Master_Host: server1
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 4
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: No
Slave_SQL_Running: No
...omitted...
Seconds_Behind_Master: NULL
y finalmente el comando para iniciar la replicacion es (chaca-cha-chan):
mysql> START SLAVE;
y ¡Ya!
Mi gran lectura recomendada para este tema es:
High Performance MySQL, Second Edition
by Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy D. Zawodny,
Arjen Lentz, and Derek J. Balling
2008 O’Reilly Media, Inc.
No hay comentarios:
Publicar un comentario