SlideShare ist ein Scribd-Unternehmen logo
1 von 3
Downloaden Sie, um offline zu lesen
Replicación Maestro - Esclavo en MySQL >5.0
La replicación en MySQL funciona de una manera muy sencilla. Existe un maestro, que
es el encargado de propagar los cambios y los esclavos, que son los que reciben estos
cambios a fin de tener una copia exacta de lo que tiene el maestro.

Para que esto suceda, los esclavos tienen una conexión abierta contínua con el maestro
para recibir estos cambios. Con esta conexión se comprueba desde el esclavo la última
posición escrita en el log binario del maestro -eso es, se replican por medio del log
binario. Cuando sucede algún cambio en el log binario del maestro, se remiten estos
cambios a los esclavos, que posteriormente ejecutan estos cambios en sus tabla.s

Para empezar una replicación maestro esclavo sencilla hay que tener como mínimo dos
instancias del servidor MySQL, una que haga de maestro y otra que haga de esclavo.

En el maestro tienen que estar las siguientes líneas en el fichero de configuración
[my.cnf]:
log-bin=mysql-bin
server-id = 1

Por otro lado, en el esclavo tendremos que tener las siguientes lineas:
server-id = 2

Una vez configurados los servidores, podemos arrancarlos -obviamente aún no van a
replicar porque no les hemos indicado que empiecen a replicar.

Cuando estén arrancados, en el maestro creamos o instalamos las tablas y la base de
datos que queremos replicar. Cuando estén creadas y hayamos insertado los datos
necesarios dentro de las tablas entonces tendremos que hacer un volcado de la base de
datos a un archivo de texto. La razón de esto es que vamos a instalar esta misma base de
datos en el esclavo. Para ello lo podremos hacer así:
mysql> GRANT REPLICATION PRIVILEGES ON *.bbdd TO
‘usuario_replicacion’@'192.168.0.3′ IDENTIFIED BY ‘pass_replicacion’;
mysql> flush privileges;
mysql> LOCK ALL TABLES READ ONLY
mysql> exit

Ahora desde la línea de comandos sacamos un DUMP del maestro:
joax@maestro> mysqldump bbdd > bbdd_dump_20071202.sql
Una vez terminado el proceso, tenemos que recordar la situación del log binario en el
master:
mysql> SHOW MASTER STATUS;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000005 | 98 | | |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

Con esto ya podemos desbloquear las tablas en el maestro:
mysql> UNLOCK ALL TABLES;

Y con ello, en el esclavo ahora ejecutamos lo siguiente:
joax@esclavo> mysql bbdd < bbdd_dump_20071202.sql

Y una vez que el esclavo tenga generada la base de datos, lo configuramos para que esté
posicionado con respecto al maestro:
mysql>   CHANGE MASTER    TO   MASTER_HOST = ‘192.168.0.2′;
mysql>   CHANGE MASTER    TO   MASTER_USER = ‘usuario_replicacion’;
mysql>   CHANGE MASTER    TO   MASTER_PASSWORD = ‘pass_replicacion’;
mysql>   CHANGE MASTER    TO   MASTER_LOG_FILE = ‘mysql-bin.000005′;
mysql>   CHANGE MASTER    TO   MASTER_LOG_POS = 98;
mysql>   start slave;

Ahora el esclavo comenzará la replicación con el maestro. Quedándose a 0 segundos de
él una vez copiado todo el log binario que le resta de lo sucedido hasta la fecha. Para
comprobar que realmente está replicando, tendremos que ejecutar el siguiente comando
en la consola de MySQL:
mysql> show slave status G

Eso muestra:
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.2
Master_User: usuario_replicacion
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000005
Read_Master_Log_Pos: 98
Relay_Log_File: esclavo-relay-bin.000001
Relay_Log_Pos: 98
Relay_Master_Log_File: mysql-bin.000005
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: bbdd
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 98
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)

Lo importante es lo que sigue a Seconds_Behind_Master: porque es el valor que
indica el retraso de este esclavo con respecto al maestro.

En definitiva y a modo de resumen:

1. Cambiar la configuración del maestro con las líneas:
server-id=1
log-bin=mysql-bin

2. Cambiar la configuración del esclavo:
server-id=2

3. Bloquear las tablas del maestro y hacer un dump:
mysql> LOCK ALL TABLES READ ONLY
mysql> SHOW MASTER STATUS
mysql> exit
joax@maestro> mysqldump bbdd > bbdd_dump_20071202.sql

4. Instalar la base de datos en el esclavo:
joax@esclavo> mysql bbdd < bbdd_dump_20071202.sql
mysql> CHANGE MASTER TO MASTER_HOST = ‘192.168.0.2′;
mysql> CHANGE MASTER TO MASTER_USER = ‘usuario_replicacion’;
mysql> CHANGE MASTER TO MASTER_PASSWORD = ‘pass_replicacion’;
mysql> CHANGE MASTER TO MASTER_LOG_FILE = ‘mysql-bin.000005′;
mysql> CHANGE MASTER TO MASTER_LOG_POS = 98;
mysql> start slave;

En un cluster podremos incluir tantos esclavos como necesitemos. He llegado a ver
clusteres de varias decenas de esclavos sobre el mismo maestro. Pero son puntos donde
a lo mejor tienes que tomar una estrategia de particionado de la base de datos. Estrategia
que veremos próximamente.

 

Weitere ähnliche Inhalte

Was ist angesagt?

Slony i
Slony iSlony i
Slony imao87t
 
Gns3 paso a paso
Gns3 paso a pasoGns3 paso a paso
Gns3 paso a pasobarbarasud
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en WindowsErick Cruz
 
Manual del cluster mysql
Manual del cluster mysqlManual del cluster mysql
Manual del cluster mysqlquiqueohio
 
Replicacion de base de datos
Replicacion de base de datosReplicacion de base de datos
Replicacion de base de datostickyandres
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionhugoAlvidrez
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMiguel Angel Nieto
 
Instalacion zoneminder
Instalacion zoneminderInstalacion zoneminder
Instalacion zonemindericetrue
 
Instalar msql server en debian
Instalar msql server en debianInstalar msql server en debian
Instalar msql server en debianDaniel Zavala
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuDavid Vevelas
 
Mapa conceptual phpmyadmin_apache_mysql_crisdamar
Mapa conceptual phpmyadmin_apache_mysql_crisdamarMapa conceptual phpmyadmin_apache_mysql_crisdamar
Mapa conceptual phpmyadmin_apache_mysql_crisdamarCRISDAMAR_MENDOZA_FALCON
 
Manual my sql Utu atlantida 2015
Manual my sql Utu atlantida 2015Manual my sql Utu atlantida 2015
Manual my sql Utu atlantida 2015Bruno Regusci
 

Was ist angesagt? (19)

Slony i
Slony iSlony i
Slony i
 
Mysql
MysqlMysql
Mysql
 
Gns3 paso a paso
Gns3 paso a pasoGns3 paso a paso
Gns3 paso a paso
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en Windows
 
Manual del cluster mysql
Manual del cluster mysqlManual del cluster mysql
Manual del cluster mysql
 
Flashback
FlashbackFlashback
Flashback
 
Replicacion de base de datos
Replicacion de base de datosReplicacion de base de datos
Replicacion de base de datos
 
Instalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacionInstalación y configuración de sgbd presentacion
Instalación y configuración de sgbd presentacion
 
Manual replicación transaccional
Manual replicación transaccionalManual replicación transaccional
Manual replicación transaccional
 
Manual de fragmentación vertical
Manual de fragmentación vertical Manual de fragmentación vertical
Manual de fragmentación vertical
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Manual replicación instantanea
Manual replicación instantaneaManual replicación instantanea
Manual replicación instantanea
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
Instalacion zoneminder
Instalacion zoneminderInstalacion zoneminder
Instalacion zoneminder
 
Instalar msql server en debian
Instalar msql server en debianInstalar msql server en debian
Instalar msql server en debian
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
 
Mapa conceptual phpmyadmin_apache_mysql_crisdamar
Mapa conceptual phpmyadmin_apache_mysql_crisdamarMapa conceptual phpmyadmin_apache_mysql_crisdamar
Mapa conceptual phpmyadmin_apache_mysql_crisdamar
 
MYSQL
MYSQL MYSQL
MYSQL
 
Manual my sql Utu atlantida 2015
Manual my sql Utu atlantida 2015Manual my sql Utu atlantida 2015
Manual my sql Utu atlantida 2015
 

Andere mochten auch

Query browser-es
Query browser-esQuery browser-es
Query browser-esjaiverlh
 
Jsf tutorial
Jsf tutorialJsf tutorial
Jsf tutorialjaiverlh
 
Software architecture2008 ejbql-quickref
Software architecture2008 ejbql-quickrefSoftware architecture2008 ejbql-quickref
Software architecture2008 ejbql-quickrefjaiverlh
 
Introduccion my sql
Introduccion my sqlIntroduccion my sql
Introduccion my sqljaiverlh
 
Tema5 3.jsf
Tema5 3.jsfTema5 3.jsf
Tema5 3.jsfjaiverlh
 
El internet y sus principales componentes
El internet y sus principales componentesEl internet y sus principales componentes
El internet y sus principales componentesJavier Ramos
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Andere mochten auch (8)

Query browser-es
Query browser-esQuery browser-es
Query browser-es
 
Jsf tutorial
Jsf tutorialJsf tutorial
Jsf tutorial
 
Software architecture2008 ejbql-quickref
Software architecture2008 ejbql-quickrefSoftware architecture2008 ejbql-quickref
Software architecture2008 ejbql-quickref
 
Introduccion my sql
Introduccion my sqlIntroduccion my sql
Introduccion my sql
 
Tema5 3.jsf
Tema5 3.jsfTema5 3.jsf
Tema5 3.jsf
 
El internet y sus principales componentes
El internet y sus principales componentesEl internet y sus principales componentes
El internet y sus principales componentes
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Ähnlich wie Configuración replicación MySQL maestro-esclavo

Crear bases de datos replicadas maestro
Crear bases de datos replicadas maestroCrear bases de datos replicadas maestro
Crear bases de datos replicadas maestroGustavo Guerra
 
Manual Técnico Para Hacer Réplica
Manual Técnico Para Hacer RéplicaManual Técnico Para Hacer Réplica
Manual Técnico Para Hacer RéplicaAndrés Pizarro
 
Manual del cluster mysql
Manual del cluster mysqlManual del cluster mysql
Manual del cluster mysqlquiqueohio
 
Postfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian WheezyPostfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian WheezyHenry Cristian Cuesta Vega
 
Monitoreo auditoria 2
Monitoreo auditoria 2Monitoreo auditoria 2
Monitoreo auditoria 2CEST
 
Postfix y Dovecot con cuentas MariaDB en Debian Bullseye
Postfix y Dovecot con cuentas MariaDB  en Debian BullseyePostfix y Dovecot con cuentas MariaDB  en Debian Bullseye
Postfix y Dovecot con cuentas MariaDB en Debian BullseyeHenry Cristian Cuesta Vega
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBAcyberleon95
 
Conexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLConexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLIvan Luis Jimenez
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysqlGiovanni Peruch
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sasRafael Toro
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sqlJulio Pari
 
Mysql(1)
Mysql(1)Mysql(1)
Mysql(1)Iri Lis
 
Resetear contrase myslq bloc de notas
Resetear contrase myslq  bloc de notasResetear contrase myslq  bloc de notas
Resetear contrase myslq bloc de notasRicardoLopez508
 
Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2Telefónica
 

Ähnlich wie Configuración replicación MySQL maestro-esclavo (20)

Crear bases de datos replicadas maestro
Crear bases de datos replicadas maestroCrear bases de datos replicadas maestro
Crear bases de datos replicadas maestro
 
Manual Técnico Para Hacer Réplica
Manual Técnico Para Hacer RéplicaManual Técnico Para Hacer Réplica
Manual Técnico Para Hacer Réplica
 
Introducción a MySql
Introducción a MySqlIntroducción a MySql
Introducción a MySql
 
File
FileFile
File
 
Manual del cluster mysql
Manual del cluster mysqlManual del cluster mysql
Manual del cluster mysql
 
Postfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian WheezyPostfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
Postfix y Dovecot con usuarios virtuales mysql en Debian Wheezy
 
Monitoreo auditoria 2
Monitoreo auditoria 2Monitoreo auditoria 2
Monitoreo auditoria 2
 
Postfix y Dovecot con cuentas MariaDB en Debian Bullseye
Postfix y Dovecot con cuentas MariaDB  en Debian BullseyePostfix y Dovecot con cuentas MariaDB  en Debian Bullseye
Postfix y Dovecot con cuentas MariaDB en Debian Bullseye
 
Manual de mysql
Manual de mysqlManual de mysql
Manual de mysql
 
Integración LDAP + SAMBA
Integración LDAP + SAMBAIntegración LDAP + SAMBA
Integración LDAP + SAMBA
 
Conexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQLConexión remota a base de datos con Oracle y MySQL
Conexión remota a base de datos con Oracle y MySQL
 
Bases distribuidas en mysql
Bases distribuidas en mysqlBases distribuidas en mysql
Bases distribuidas en mysql
 
Servidor LAMP en CentOS 6.3
Servidor LAMP en CentOS 6.3Servidor LAMP en CentOS 6.3
Servidor LAMP en CentOS 6.3
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sql
 
Mysql(1)
Mysql(1)Mysql(1)
Mysql(1)
 
Resetear contrase myslq bloc de notas
Resetear contrase myslq  bloc de notasResetear contrase myslq  bloc de notas
Resetear contrase myslq bloc de notas
 
Mysql
MysqlMysql
Mysql
 
Mysql
MysqlMysql
Mysql
 
Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2
 

Kürzlich hochgeladen

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Kürzlich hochgeladen (10)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Configuración replicación MySQL maestro-esclavo

  • 1. Replicación Maestro - Esclavo en MySQL >5.0 La replicación en MySQL funciona de una manera muy sencilla. Existe un maestro, que es el encargado de propagar los cambios y los esclavos, que son los que reciben estos cambios a fin de tener una copia exacta de lo que tiene el maestro. Para que esto suceda, los esclavos tienen una conexión abierta contínua con el maestro para recibir estos cambios. Con esta conexión se comprueba desde el esclavo la última posición escrita en el log binario del maestro -eso es, se replican por medio del log binario. Cuando sucede algún cambio en el log binario del maestro, se remiten estos cambios a los esclavos, que posteriormente ejecutan estos cambios en sus tabla.s Para empezar una replicación maestro esclavo sencilla hay que tener como mínimo dos instancias del servidor MySQL, una que haga de maestro y otra que haga de esclavo. En el maestro tienen que estar las siguientes líneas en el fichero de configuración [my.cnf]: log-bin=mysql-bin server-id = 1 Por otro lado, en el esclavo tendremos que tener las siguientes lineas: server-id = 2 Una vez configurados los servidores, podemos arrancarlos -obviamente aún no van a replicar porque no les hemos indicado que empiecen a replicar. Cuando estén arrancados, en el maestro creamos o instalamos las tablas y la base de datos que queremos replicar. Cuando estén creadas y hayamos insertado los datos necesarios dentro de las tablas entonces tendremos que hacer un volcado de la base de datos a un archivo de texto. La razón de esto es que vamos a instalar esta misma base de datos en el esclavo. Para ello lo podremos hacer así: mysql> GRANT REPLICATION PRIVILEGES ON *.bbdd TO ‘usuario_replicacion’@'192.168.0.3′ IDENTIFIED BY ‘pass_replicacion’; mysql> flush privileges; mysql> LOCK ALL TABLES READ ONLY mysql> exit Ahora desde la línea de comandos sacamos un DUMP del maestro: joax@maestro> mysqldump bbdd > bbdd_dump_20071202.sql
  • 2. Una vez terminado el proceso, tenemos que recordar la situación del log binario en el master: mysql> SHOW MASTER STATUS; +——————+———-+————–+——————+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +——————+———-+————–+——————+ | mysql-bin.000005 | 98 | | | +——————+———-+————–+——————+ 1 row in set (0.00 sec) Con esto ya podemos desbloquear las tablas en el maestro: mysql> UNLOCK ALL TABLES; Y con ello, en el esclavo ahora ejecutamos lo siguiente: joax@esclavo> mysql bbdd < bbdd_dump_20071202.sql Y una vez que el esclavo tenga generada la base de datos, lo configuramos para que esté posicionado con respecto al maestro: mysql> CHANGE MASTER TO MASTER_HOST = ‘192.168.0.2′; mysql> CHANGE MASTER TO MASTER_USER = ‘usuario_replicacion’; mysql> CHANGE MASTER TO MASTER_PASSWORD = ‘pass_replicacion’; mysql> CHANGE MASTER TO MASTER_LOG_FILE = ‘mysql-bin.000005′; mysql> CHANGE MASTER TO MASTER_LOG_POS = 98; mysql> start slave; Ahora el esclavo comenzará la replicación con el maestro. Quedándose a 0 segundos de él una vez copiado todo el log binario que le resta de lo sucedido hasta la fecha. Para comprobar que realmente está replicando, tendremos que ejecutar el siguiente comando en la consola de MySQL: mysql> show slave status G Eso muestra: *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.2 Master_User: usuario_replicacion Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000005 Read_Master_Log_Pos: 98 Relay_Log_File: esclavo-relay-bin.000001 Relay_Log_Pos: 98 Relay_Master_Log_File: mysql-bin.000005 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: bbdd Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0
  • 3. Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 98 Relay_Log_Space: 98 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 1 row in set (0.00 sec) Lo importante es lo que sigue a Seconds_Behind_Master: porque es el valor que indica el retraso de este esclavo con respecto al maestro. En definitiva y a modo de resumen: 1. Cambiar la configuración del maestro con las líneas: server-id=1 log-bin=mysql-bin 2. Cambiar la configuración del esclavo: server-id=2 3. Bloquear las tablas del maestro y hacer un dump: mysql> LOCK ALL TABLES READ ONLY mysql> SHOW MASTER STATUS mysql> exit joax@maestro> mysqldump bbdd > bbdd_dump_20071202.sql 4. Instalar la base de datos en el esclavo: joax@esclavo> mysql bbdd < bbdd_dump_20071202.sql mysql> CHANGE MASTER TO MASTER_HOST = ‘192.168.0.2′; mysql> CHANGE MASTER TO MASTER_USER = ‘usuario_replicacion’; mysql> CHANGE MASTER TO MASTER_PASSWORD = ‘pass_replicacion’; mysql> CHANGE MASTER TO MASTER_LOG_FILE = ‘mysql-bin.000005′; mysql> CHANGE MASTER TO MASTER_LOG_POS = 98; mysql> start slave; En un cluster podremos incluir tantos esclavos como necesitemos. He llegado a ver clusteres de varias decenas de esclavos sobre el mismo maestro. Pero son puntos donde a lo mejor tienes que tomar una estrategia de particionado de la base de datos. Estrategia que veremos próximamente.