crear bases de datos replicadas maestro

4
Crear Bases de Datos Replicadas Maestro-Esclavo con MySQL Replicar nuestras bases de datos muchas veces puede ser la solución para nuestros problemas empresariales, desde crear una carga de trabajo equitativa hasta centralizar datos desde lugares remotos en donde no existe una conexión de red constante ni estable o aumentar la velocidad de las aplicaciones cuando la velocidad es muy lenta. Obviamente ganar éstas características tiene su precio a parte del metálico, donde perdemos la capacidad de tener datos actualizados todo el tiempo, o la posibilidad de encontrarnos con conflictos al momento de hacer el “merge“. Para hacer esto mínimamente necesitaremos 2 instancias de MySQL (ya sea en uno o más servidores físicos). Configurar Maestro Paso 1 Detener el proceso de MySQL 1 sudo /etc/init.d/mysql stop Paso 2 Editamos el archivo de configuración del motor 1 vim /etc/mysql/my.cnf Paso 3 Si existen estos parámetros los comentamos o eliminamos 1 2 # skip-networking # bind-address = 127. 0.0.1 Además agregamos ésta sección dentro del bloque [mysqld] 1 2 3 4 5 # Le asignamos algun ID a nuestro antojo donde dice ? server-id = ? log_bin = mysql_bin.log innodb_flush_log_at_trx_commit = 1 sync_binlog = 1

Upload: gustavo-guerra

Post on 25-Jul-2015

70 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Crear bases de datos replicadas maestro

Crear Bases de Datos Replicadas Maestro-Esclavo con MySQLReplicar nuestras bases de datos muchas veces puede ser la solución para nuestros problemas empresariales, desde crear una carga de trabajo equitativa hasta centralizar datos desde lugares remotos en donde no existe una conexión de red constante ni estable o aumentar la velocidad de las aplicaciones cuando la velocidad es muy lenta. Obviamente ganar éstas características tiene su precio a parte del metálico, donde perdemos la capacidad de tener datos actualizados todo el tiempo, o la posibilidad de encontrarnos con conflictos al momento de hacer el “merge“.Para hacer esto mínimamente necesitaremos 2 instancias de MySQL (ya sea en uno o más servidores físicos).

Configurar MaestroPaso 1Detener el proceso de MySQL1sudo /etc/init.d/mysql stop

Paso 2Editamos el archivo de configuración del motor1vim /etc/mysql/my.cnf

Paso 3Si existen estos parámetros los comentamos o eliminamos12 # skip-networking# bind-address = 127. 0.0.1

Además agregamos ésta sección dentro del bloque [mysqld]123456789

# Le asignamos algun ID a nuestro antojo donde dice ?server-id = ?log_bin = mysql_bin.loginnodb_flush_log_at_trx_commit = 1sync_binlog = 1# Asignamos una BD para replicar o mas de una si se requiere asibinlog_do_db = db# Aqui tambien tenemos que tener cuidado, nunca se borrara el log, por lo tanto del disco puede llenarseexpire_logs_days        = 0

Paso 4Iniciamos el proceso del motor1sudo /etc/init.d/mysql start

Paso 5Bloqueamos las tablas ante escritura

Page 2: Crear bases de datos replicadas maestro

12 USE cism;FLUSH TABLES WITH READ LOCK;

Paso 6Mostramos los datos del Maestro, estos datos anótalos bien y no lo pierdas1SHOW MASTER STATUS;

Nos Aparecerá algo similar a esto+----------------------------+----------+--------------+-------------------------+| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |+----------------------------+----------+--------------+-------------------------+|mysql-bin.000001 |     106 | db |   |+----------------------------+----------+--------------+-------------------------+

Paso 7Salimos de la consola mysql1exit;

Paso 8Creamos un dump de la BD a replicar para que sean iguales al comenzar1mysqldump -u root -p --routines --opt db > db-dump.sql

Paso 8Copiamos el dump en la maquina que necesitamos montarlo, si está en la misma, omitir este paso. El método expuesto es SCP, si la otra PC no tiene habilitado esto hacerlo por algún medio disponible 1scp archivo-origen user@host:directorio-destino-en-esclavo

Paso 9Nos volvemos a conectar a nuestra base de datos y desbloqueamos las tablas (la conexión ya lo saben hacer)12 UNLOCK TABLES;exit;

Configurar el EsclavoPaso 10Nos conectamos al motor de servidor esclavo y ejecutamos lo siguiente para crear una bd nueva123

CREATE DATABASE db;# de paso se dan cuenta que se puede desloguear indistintamente con la palabra quit y exit

Page 3: Crear bases de datos replicadas maestro

quit;

Paso 11En la nueva bd creada volcaremos el dump hace un momento creado del siguiente modo1msyql -u root -p db < db-dump.sql

Paso 12Una vez hecho el paso anterior, nos volvemos a conectar a la bd esclava y le agregaremos lo siguiente, aqui deben usar los datos que anteriormente les dije que guarden bien y no lo pierdan12345678910

STOP SLAVE;CHANGE MASTER TOMASTER_HOST='IP del master',MASTER_PORT = puerto-de-mysql-del-master,MASTER_USER='user',MASTER_PASSWORD='password',MASTER_LOG_FILE='file_log_determinado?',MASTER_LOG_POS=recorded_log_position?,MASTER_CONNECT_RETRY=60 ;START SLAVE;

Paso 13El paso con el numero de la mala suerte es precisamente arrancar el esclavo, a ver si nuestra configuracion fue exitosa 1START SLAVE;

Paso 14Con esto veremos el estado de nuestra configuración1SHOW SLAVE STATUS\G