En este post voy a explicar como instalar rapidamente MariaDB en Fedora 13
Primero vamos a descargar el ultimo release desde http://askmonty.org/wiki/MariaDB:Download#Binaries
En este caso yo descargue el binario para 64 bits (mariadb-5.1.49-Linux-x86_64.tar.gz)
Cuando lo descargamos realizamos lo siguiente:
[root@host ~]#groupadd mysql
[root@host ~]# useradd -g mysql mysql
[root@host ~]# cd /usr/local
[root@host ~]# gunzip < /home/usuario-test/Downloads/mariadb-5.1.49-Linux-x86_64.tar.gz | tar xvf -
[root@host ~]# ln -s la-ruta-a-mariadb-5.1.49-Linux-x86_64 mysql
[root@host ~]# cd mysql
[root@host ~]# chown -R mysql .
[root@host ~]# chgrp -R mysql .
[root@host ~]# scripts/mysql_install_db –user=mysql
[root@host ~]# chown -R root .
[root@host ~]# chown -R mysql data
[root@host ~]# bin/mysqld_safe –user=mysql &
La instalacion es igual que instalar MySQL, RECUERDEN QUE DEBEREMOS PONER UNA CONTRASENA A NUESTRO SERVIDOR DE MARIADB Luego de ingresar por primera vez
Del brazo de Oracle llego la tan esperada version 5.5 de MySQL con InnoDB 1.1 que se muestra como la Default Storage Engine desplazando a MyISAM.
Dentro de los principales cambios tenemos
- Bloqueo de Metadata con las transacciones
- Particion por columnas (Antes solo lo teniamos por filas)
PERFORMANCE_SCHEMA para el analisis de la performance y asi obtener mayor control a un bajo nivel.
- Replicacion semi-sincronica.
Bloqueo de Metadata con las transacciones:
Supongamos que estamos realizando una transaccion, y alguien quisiera hacer algun DDL como un Drop de la tabla t1 donde nosotros estamos realizando una transaccion y otra de las sesiones quiere realizar un drop. ¿Que pasaria? Bueno con metadata locking evitariamos un problema de esta indole.
PERFORMANCE_SCHEMA
mysql> show tables;
+———————————————-+
| Tables_in_performance_schema |
+———————————————-+
| COND_INSTANCES |
| EVENTS_WAITS_CURRENT |
| EVENTS_WAITS_HISTORY |
| EVENTS_WAITS_HISTORY_LONG |
| EVENTS_WAITS_SUMMARY_BY_EVENT_NAME |
| EVENTS_WAITS_SUMMARY_BY_INSTANCE |
| EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME |
| FILE_INSTANCES |
| FILE_SUMMARY_BY_EVENT_NAME |
| FILE_SUMMARY_BY_INSTANCE |
| MUTEX_INSTANCES |
| PERFORMANCE_TIMERS |
| PROCESSLIST |
| RWLOCK_INSTANCES |
| SETUP_CONSUMERS |
| SETUP_INSTRUMENTS |
| SETUP_OBJECTS |
| SETUP_TIMERS |
+———————————————-+
18 rows in set (0.00 sec)
Vamos a ir repasando algunas herramientas utiles para el trabajo del DBA de MySQL que nos ayudan a administrar nuestros servidores para poder ver de otra forma la performance de los mismos.
Las herramientas que vamos a ver son:
- MySQL Enterprise Monitor http://www.mysql.com/products/enterprise/monitor.html
- Monyog http://www.sqlyog.com
- dim_Stat http://dimitrik.free.fr/
- Cacti http://www.cacti.net
- HoneyMonitor
- Nagios
En este post vamos a hacer muy sencilla la replicacion con mysql y vamos a dar una intro a como podemos realizar esto para luego tratar de abordar casos un poco mas avanzados.
En el servidor Master
Debemos dejar parte de nuestro my.cnf asi:
[mysqld]
# The TCP/IP Puerto en el que escuchara nuestro MySQL
port=3306
server-id=1
binlog-do-db=BASEAREPLICAR
log-bin = /var/log/mysql/masterserver-bin.log
Luego desde el shell creamos el usuario
GRANT REPLICATION SLAVE ON *.* TO ‘usuario_slave’@'%’ IDENTIFIED BY ‘<contraseña>’;
+-----------------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+-----------------------+----------+--------------+------------------+
| masterserver-bin.004 | 206 | baseareplicar| |
+-----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
en el Slave
Como primer medida debemos volcar el dump original del master sobre nuestro SLAVE para no hacer un LOAD DATA FROM MASTER (otra opcion) y evitar lockear el servidor master. Entonces hacemos una importancion de la base del master y luego en nuestro my.cnf vamos a agregar o siguiente:
server-id=2
master-host=192.168.0.18
master-user=usuario_slave
master-password=contraseña
master-connect-retry=60
replicate-do-db=baseareplicar
Luego el siguiente paso es START SLAVE en nuestro SLAVE y si tuvieramos algun inconveniente simplemente desde consola hacemos lo siguiente:
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST=’192.168.0.18′, MASTER_USER=’usuario_slave’, MASTER_PASSWORD=’contraseña‘, MASTER_LOG_FILE=’masterserver-bin.004′, MASTER_LOG_POS=206;
START SLAVE;
START SQL_IO_THREAD;
Y listo tenemos la replicacion funcionando perfectamente.