Demo: Sistema de Inventario

Sistema de Inventario DesarrollandoWeb.com

Descripción General: El sistema permite manejar todo el inventario de la compañía, esto significa que el sistema permite gestionar todo lo relacionado con proveedores, productos, categorías de productos, usuarios, solicitudes y proyectos. El sistema permite conocer en tiempo real el sistema actual de los productos que se encuentra en bodega, que productos tiene ordenes de pedido... [+ info]

E-Marketing Rápido

PPC: Pay per Clic (Pague por Clic)
PPC son las campañas que se hacen en los buscadores más importantes del mundo. Esta campaña se caracteriza por que se paga por cada clic que un navegante realiza en los anuncios publicitarios de los buscadores. 
» [+ info]

SEO: Search engine optimization (Optimización para buscadores)
SEO: Search engine optimization (Optimización para buscadores) El SEO se especializa en el desarrollo de sitios Web optimizados para que los buscadores indexen las páginas del sitio web y las ubiquen en primeras posiciones sin pagar por ello. Es importante anotar que este proceso lleva tiempo y no se consigue en pocos días (cosa que ofrecen muchas empresas)  
» [+ info]

5 puntos importantes para estar bien posicionados.
Actualmente los desarrolladores de aplicaciones Web o sitio Web, nos esforzamos por crear sitios Web dinámicos, ya que el mantenimiento y administración de sitios Web estáticos es muy tediosa y francamente muy poco productiva. Este artículo menciona 5 puntos que se deben tener en cuenta para estar bien posicionados an google, yahoo, msn, y otros buscadores, aparecer en las búsquedas y ser visitados.  
» [+ info]

Guión bajo o normal en las URL
Uno de los factores mas utilizados para obtener buenos posicionamientos en los buscadores es tener URL claras. Es sabido que si una url tiene palabras claves será más fácilmente indexada por los buscadores que una que contenga múltiples identificadores y números. Por ejemplo, si una pagina web está tratando el tema, de guiones en las URL’s podría presentar el contenido de la siguiente manera:  
» [+ info]



Buenas prácticas SEO
20 puntos para saber si realizas Buenas prácticas SEO Antes de compartir esta historia quiero recalcar por k-esima vez que el SEO es algo que implica costos, tiempo y que obtener buenas posiciones requiere mucho trabajo y dedicación. Si eres desarrollador web es importante ser claro con los clientes, y los empresarios debe exigir claridad cuando empareden un proyecto de desarrollo Web. El SEO o search engine optimization es una práctica que implica tiempo, costos,... 
» [+ info]

Replicación en MySql Maestro – Esclavo

Escrito por: Andrés Villanueva Manjarres   

El presente artículo busca ser una guía para todos los desarrolladores o administradoresque necesitan configurar MySql en una arquitectura Maestros – Esclavo. En este articulo se asumirá que el usuario ya tiene instalado MySql en las dos o más maquinas en las cuales correrá la arquitectura.

Antes de comentar el proceso de configuración mencionaré algunos puntos que deben ser tenidos en cuenta para la implementación la replicación en MySql.

  • Para poder montar una arquitectura de replicación es necesario tener instalada una versión de MySql superior a 5.0.10.
  • La arquitectura de Maestro - Esclavo de MySql soporta una replicación asíncrona unidimensional, es decir, un servidor actúa como Maestro y otro servidor o varios servidores como esclavos. Esta replicación es contraria a la que realiza MySqlCLuster.
  • El servidor maestro escribe actualizaciones en el fichero de log binario, y mantiene un índice de los ficheros para rastrear los cambios de logs.
  • Estos logs son leídos por los esclavos para realizar las actualizaciones.
  • Un servidor esclavo puede servir como maestro si se requiere una cadena de replicaciones.
  • Es importante mencionar que si se realizará algún cambio en la base de datos debe hacerse sobre el esquema del maestro, nunca sobre algún esclavo pues esto puede generar problemas al momento de realizar actualizaciones.
  • Debido a la distribución de esta arquitectura es muy fácil ganar en robustez y poner como maestro a algún esclavo si el maestro falla. Esto implicará que luego el maestro debe ser actualizado antes de retomar como maestro.
  • Los tiempos de respuesta pueden mejorarse considerablemente su la carga de las consultas se distribuyen entre los esclavos, y las actualizaciones se realizan sobre el maestro, es decir, enviar todos los SELECTS a los esclavos y los INSERTS, UPDATES y DELETES al maestro.

En resumen lo que se debe hacer cuando se pretende montar una arquitectura Maestro – esclavo es crear una conexión abierta en el maestro para el esclavo o cada uno de los esclavos. Por medio de esa conexión abierta los esclavos leen los cambios realizados en el maestro y actualizan sus datos. Por medio del archivo (log-binario) que escribe el maestro y leen los esclavos, estos se actualizan ejecutan dichos cambios en sus tablas. Por medio de este log binario los esclavos siempre saben en qué punto de actualización se encuentran.

Como ya hemos mencionado, para poder montar una arquitectura Maestro – Esclavo den MySql se deben tener por lo menos dos instancias de MySql, una será maestro y la otra actuará como esclavo, la instancia del esclavo será la réplica del maestro.

Una vez mencionados estos puntos ahora si manos a la obra.

Paso 1.

El primer paso que debemos seguir es configurar los archivos de configuración de MySql tanto en el Maestro como en el esclavo.

En el maestro: 192.168.0.1

# vi /etc/my.cnf

Y en el archivo my.cnf del maestro debemos tener algo así:

[mysqld]
log-bin=mysql-bin
server-id=1
binlog-ignore-db=mysql
binlog-ignore-db=test

En el esclavo 192.168.0.2

# vi /etc/my.cnf

Y en el archivo my.cnf del maestro debemos tener algo así:

[mysqld]
server-id=2

Paso 2.

Con estos cambios realizados el paso siguiente es arrancar cada uno de los servidores

# vi /etc/inid.d/myqld start

Paso 3.

Una vez esté el servicios de MySql arriba, en el Maestro debemos crear la base de datos que vamos a replicar en el esclavo, después de crear la base de datos debemos crear las tablas de la base de datos y cargarlas con los datos iníciales para el correcto funcionamiento. Es probable q la base de datos no requiera datos iníciales, pero generalmente eso no es así. Una vez hemos creado las tablas y cargado los registros requeridos debemos bloquear las tablas para hacer el dump de la base de datos que cargaremos en el esclavo, esto lo hacemos de la siguiente manera en el Maestro.

mysql> LOCK ALL TABLES READ ONLY;
mysql> exit

Con esto debemos crear el dump de la base de datos en el maestro y cargarla luego en el esclavo

  • En el maestro

# mysqldump -u user -p DDBB > dump_para_esclavo.sql

  • En el esclavo

# mysql –u user –p DDBB < dump_para_esclavo.sql

Paso 4.

El paso siguiente es crear la replicación en el maestro, es decir, indicarle al maestro en donde residirá la replicación, para esto debemos indicar el usuario, el host desde donde se conectará e indicar a que base de datos se le hará la réplica en el esclavo indicado.

mysql> GRANT REPLICATION esclavo ON ddbb.* TO ‘usuario_replica’@’192.168.0.2’ IDENTIFIED BY ‘clave-segura’;

Una vez hemos creado la replicación el paso siguiente es conocer la situación del maestro, es decir el archivo del binario actual y la posición actual del binario. Esta situación es la que le debemos dar al esclavo para que reconozca el punto de partida de la replicación.

mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+-------------------------+
| File| Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+-------------------------+
| mysql-bin.000013 | 113 | | mysql,test |
+------------------+----------+--------------+-------------------------+
1 row in set (0.01 sec)

Los datos que debemos recordar y que utilizaremos al momento de arrancar el esclavo son File “mysql-bin.00005” y Position “57”.

Una vez obtenida esta información podemos desbloquear las tablas de la base de datos en el maestro.

mysql> UNLOCK ALL TABLES;

Paso 5.

Después de tener las bases de datos creadas y cargadas de igual manera tanto en el maestro como en el esclavo (Paso 3) y de tener la información correspondiente al estado del maestro el paso siguiente es configurar el esclavo para que empiece a hacer la réplica del maestro. Para esto se deben seguir los siguientes pasos:

mysql> CHANGE MASTER TO MASTER_HOST=192.168.0.1;
mysql> CHANGE MASTER TO MASTER_USER=’usuario_replica’;
mysql> CHANGE MASTER TO MASTER_PASSWORD=’clave-segura’;
mysql> CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000013’;
mysql> CHANGE MASTER TO MASTER_LOG_POS=113;
mysql> START SLAVE;

Una vez lanzada la última sentencia “START SLAVE” empieza la replicación del maestro al esclavo. Para verificar que la replicación se está ejecutando adecuadamente debemos correr el siguiente comando:

mysql> show slave status \G

Lo cual nos debe mostrar algo parecido a esto:

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.1
Master_User: usuario_replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000013
Read_Master_Log_Pos: 113
Relay_Log_File: localhost-relay-bin.000001
Relay_Log_Pos: 113
Relay_Master_Log_File: mysql-bin.000013
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
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: 113
Relay_Log_Space: 113
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)

ERROR:
No query specified

Lo importante de este reporte es que no nos reporte error alguno y sobretodo mirar el apartado Seconds_Behind_Master el cual nosindica el retraso de este esclavo con respecto al maestro.

Con esto podemos empezar a hacer cambios y generar registros en la base de datos del maestro y verificar si los mismos se están reportando en el esclavo.

Escribe tu comentario
Nombre:Invitado
Título:
BBCode:Web AddressEmail AddressBold TextItalic TextUnderlined TextQuoteCodeOpen ListList ItemClose List
Comentario:

Código de validación.* Code

Comentario[s]
EXCELENTE DOCUMENTO
Escrito por Invitado el 2009-11-26 13:01:21
Sirve de mucho para lo que iniciamos con Mysql. 
 
Gracias