Proceso de Replicación para el CMS Joomla! de la pagina WWW

Anuncio
Proceso de Replicación
para el CMS Joomla!
de la pagina WWW del INE
COORDINACIÓN DE SISTEMAS E INFORMÁTICA
DIRECCIÓN DE SISTEMAS Y MANEJO DE INFORMACIÓN
Lic. Alejandro Roberto Rubio Pérez
Subdirector de Sistemas INE
CMS instalado: Joomla!
Versión: 1.5.x
Consideraciones Iniciales
El procedimiento considera que la replicación será
Maestro-Esclavo, es decir, en uno de los
servidores – el maestro – Joomla! y sus plugins
serán modificados, actualizados y eliminados;
mientras que el esclavo será de lectura/respaldo y
reflejará los cambios conforme se vayan
efectuando.
Sobre los servidores:
1. Al servidor con la instalación original de Joomla! se le denominará Maestro y al
servidor que tendrá la replicación será llamado Esclavo.
2. Los servidores pueden tener diferentes características (tamaño de disco,
sistema operativo, etc.) pero cumpliendo con las necesidades mínimas.
3. Ambos equipos deben tener instalados el software MySQL, PHP y Apache; cabe
mencionar que no es necesario que sea la misma versión, sólo se requiere que
las versiones sean compatibles y que sean compilados con los mismos
parámetros, así por ejemplo un servidor puede tener MySQL 5.1.1 y el otro
MySQL 5.1.4 o PHP 4.3 y el otro PHP 5.2., para más detalles revise el
documento de instalación de Joomla!
4. El usuario de sistema operativo que se usa para instalar las aplicaciones en el
esclavo debe tener el mismo nombre, clave y privilegios que el maestro.
5. Ambos equipos deben tener instalada la misma versión de Joomla!
6. El nombre de la Base y del usuario de Mysql de Joomla! deberá ser el mismo
en ambos servidores.
7. El usuario administrador de Joomla! en el esclavo debe tener el mismo nombre y
clave que el del servidor original.
8. La ruta de instalación del Joomla! en el esclavo deberá ser la misma que la del
maestro.
Sobre el software
Joomla! guarda archivos y scripts PHP en su ruta de almacenamiento (directorio) y al
mismo tiempo hace actualizaciones en la Base de Datos, en esta caso Mysql. Por ello
hay que procesar amas cosas.
Para ejemplificar el proceso de replicación, El servidor Maestro se definirá con la ip
192.168.1.1, con usuario de Sistema Operativo webcms con password cmsw3b1, con la
Base de Datos del CMS en mysql cms-del-ine y usuario de Mysql cms-user con
pasword cmspass. Y para la replica el usuario de replicación será replicacion con
password secundario.
El servidor Esclavo se definirá con la ip 192.168.1.2, con usuario de Sistema
Operativo webcms con password cmsw3b1, con la Base de Datos del CMS en MySql
cms-del-ine y usuario de mysql cms-user con pasword cmspass.
Replicación de los archivos de Joomla!
Para replicar el directorio de Joomla! se puede usar un software de copia de subdirectorios
en este caso ftpcopy1
ftpcopy --user=webcms --pass=cmsw3b1 --tries=3 \
ftp://192.168.1.1/ruta-de-joomla-en-el-servidor-maestro/joomla /ruta-de-joomla-en-el-esclavo/joomla
Se puede hacer un script automatizado.
Replicación de la Base de Datos de Joomla!
Para replicar la base de datos hay que hacer actividades tanto para la BD Maestra
como en la BD Esclava.
Base Datos Maestra:
1. Se debe editar el archivo my.cnf (en Unix/Linux que esta en el subdirectorio /etc).
#Se debe asegurar que el servidor MySQL use la IP asignada y use el puerto por
#definición 3306.
bind-address = 192.168.1.1
# Se debe indicar el identificador de la BD (en este caso el maestro será 1)
server-id
=1
# Se debe usar el comando binlog-do-db para indicar la(s) Base(s) de Dato(s) a
#replicar
binlog-do-db=cms-del-ine
#Todas las Bases de Datos que no se van a replicar se deben listar.
binlog-ignore-db=test
binlog-ignore-db=mysql
….
2. se debe reiniciar MySQL
3. Se debe entrar como root a MySQL y verificar la funcionalidad
de la configuración.
mysql> SHOW MASTER STATUS;
File
Position
Binlog_Do_DB
Binlog_Ignore_DB
mysql-bin.000022
133144145
Cms-del-ine
test,mysql
1 row in set (0.00 sec)
4. Se creara el usuario de replicación y se actualizan los permisos de usuario.
MySQL> grant replication slave on *.* to 'replicacion'@'192.168.1.2' identified by 'secundario';
mysql>Flush priviledges;
5. Se debe hacer un respaldo de la Base de Datos
mysqldump --opt -u cms-user --password=cmspass --databases cms-del-ine
>/respaldo/respaldo.del.cms-del-ine.sql
Base de Datos Esclava:
1. Se debe editar el archivo my.cnf (en Unix/Linux esta en el subdirectorio /etc).
#Se debe asegurar que el servidor MySQL use la IP asignada y use el puerto por
#definición 3306.
bind-address = 192.168.1.2
# Se debe indicar el identificador de la BD (en este caso el esclavo será 2)
server-id
=2
#Se deben indicar los datos del servidor maestro
master-host = 192.168.1.1
master-user = replicacion
master-password = secundario
master-port = 3306
2. Se crea la copia de la base de datos y del usuario de la base de datos de Joomla!
3. Se inserta la copia de la BD.
MySQL <respaldo.del.cms-del-ine.sql
4. Se verifica la configuración de la replicación
MySQL> show slave status\G;
STart SLAVE IO_THREAD;
Slave_IO_State: Stopped
Master_Host: 192.168.1.1
Master_User: replicacion
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000022
Read_Master_Log_Pos: 131206360
Relay_Log_File: mysqld-relay-bin.000039
Relay_Log_Pos: 131206497
Relay_Master_Log_File: mysql-bin.000022
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_Do_DB:
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: 131206360
Relay_Log_Space: 131206497
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)
MySQL>start slave;
6. Se debe verificar que este operando la replicación
MySQL> show slave status\G;
…
Slave_IO_State: Waiting for master to send event
…
…
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Así, cuando el Maestro ejecute un comando DML, este se reflejará en el esclavo.
Referencias
http://www.howtoforge.com/mysql_database_replication
Proceso de Replicación
para el CMS Joomla!
de la pagina WWW del INE
COORDINACIÓN DE SISTEMAS E INFORMÁTICA
DIRECCIÓN DE SISTEMAS Y MANEJO DE INFORMACIÓN
Para mayor información
Lic. Alejandro Rubio Pérez
arubio@ine.gob.mx
Ext. 13164
Descargar