MySQL tuning parámetros para cualquier motor

Muchas gente realiza instalaciones MySQL y no se preocupan de la parametrización. La parametrización es importantísima, una BD puede funcionar bien (de momento) con los parámetros por defecto, los problemas aparecen cuando la BD crece o aumenta su carga de trabajo.

En esta entrada trataremos los parámetros que pueden afectar al rendimiento de cualquier motor (los más usados son INNODB y MyISAM).

Las variables son usadas por el servidor para dimensionar estructuras de memoria cruciales para el buen rendimiento del motor de BD, los estados del servidor nos indicarán si las variables que hemos definido realmente están causando algún efecto positivo o por el contrario no sirven para absolutamente nada.

Continue reading

Poner una BD Oracle en modo QUIESCE (solo sesiones DBA)

En algunas ocasiones es necesario realizar operaciones sobre una BD cuando está abierta, por ejemplo mover datafiles o poner tablespaces en read only.

Estas operaciones generalmente se pueden realizar con la BD en producción, pero el problema surge cuando tenemos una actividad alta y tenemos que realizar cambios en masa. En estos casos lo mejor es restringir el acceso a los usuarios, permitiendo solo accesos DBA (sys o system si no hemos creado ningún otro).

Podemos poner la BD en modo quiesce (quieto o inactivo), solo sys y system pueden crear nueva sesiones, el resto siguen existiendo hasta que terminan la transacción.

Para ver el estado de la BD:

Continue reading

Sustitución de HD en un RAID por software mdRAID

En esta ocasión vamos a ver como regenerar un RAID por software en Linux.

Se ha detectado un error de tipo SMART mediante:

Diagnostico smarctl:

Source   
[root@simba ~]# smartctl -H /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.32-279.el6.x86_64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Failed Attributes:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate     0x002f   001   001   051    Pre-fail  Always   FAILING_NOW 330223

Continue reading

Uso de smartctl (monitorización de discos) en Linux

Vamos a ver como obtener el estado de un HD mediante la tecnología SMART (monitorización y análisis de HD http://es.wikipedia.org/wiki/S.M.A.R.T.).

Lo primero que necesitamos instalar es el paquete smartmontools (en Red Hat o CentOS es así, en otras distribuciones el comando es diferente):

Source   
yum install smartmontools

Podemos obtener información de un disco con:

Continue reading

Apache 2.2 autenticación básica contra un LDAP

La autenticación más básica que podemos configurar en un Apache es el acceso mediante fichero, pero en esta entrada vamos  a ver como configurar Apache para que autentique los usuarios contra un LDAP.

Las ventajas son evidentes, podemos usar un directorio centralizado de autenticación LDAP, ya sea para validarnos en aplicaciones o para acceder a los servicios web de la empresa.

Para los ejemplos se ha usado un Ubuntu 12.04, lo primero que tenemos que hacer es instalar los módulos de Apache necesarios y activarlos:

Source   
sudo aptitude install libapache2-mod-ldap-userdir
sudo a2enmod authnz_ldap

Continue reading

JBoss 7 ampliación dominio (nuevo servidor en máquina externa al controlador)

Esta entrada es la continuación de Instalación Dominio JBoss 7.

Partiendo de la base del anterior artículo, vamos a ampliar el dominio con un nuevo servidor en otra máquina aumentando la disponiblidad del servicio.

La nueva máquina se llamará clu02 (IP 192.168.128.221), se conectará a clu01 (Domain Controller (DC) en IP 192.168.128.220) y la estructura final será:

Pasos seguir:

Continue reading

Instalación Dominio JBoss 7 (varios servers en la misma máquina)

Aunque tengo bastante experiencia en servidores de aplicaciones (Weblogic sobretodo y Apache Tomcat), este es la primera entrada que voy a hacer sobre esto.

La versión 7 de JBoss podemos decir que es impresionante (http://www.jboss.org/jbossas), respecto a la versión 6. Todo está mucho más organizado y permite la creación de dominios y grupos de servidores donde desplegar/mantener de forma centralizada las aplicaciones.

En este caso vamos a montar un dominio en JBoss 7, preparado para alta disponiblidad y replicación de sesiones (más adelante configuraremos un balanceador para probar todo esto).

La documentación oficial se encuentra en:

Continue reading

iptables ddos configurar recent, impedir ataques denegación de servicio (DOS Denial Of Service) en Linux (Match extension recent )

Recientemente se ha puesto en contacto conmigo un compañero de fatigas llamado Miguel Angel (un saludo), a ver si le podía echar una mano con unos ataques que está teniendo. Evidentemente no usaré sus datos para nada en esta entrada.

En esta estrada vamos realizar un filtrado más preciso de las comunicaciones entrantes, para evitar ataques DOS.

En el anterior post «Impedir ataques denegación de servicio (DOS Denial Of Service) en Linux (Match extension limit)», se mostraba como realizar un filtrado limitando el número de accesos. La gran mejora de la extensión recent vs limit, es que recent mantiene una lista de IPs de origen de comunicación y los límites son establecidos por IP de origen. La extensión limit impone límites independientemente del origen, es un límite global.

Continue reading

Linux montar discos UUID y /etc/fstab

Quien más o quien menos sabe como añadir un montaje automático en /etc/fstab, lo que quizá no se use tanto como debería es el montaje usando UUIDS.

El UUID (Universally Unique Identifier) es un identificador único para cada sistema de ficheros. Es muy interesante porque permite utilizarlo como referencia para un montaje, es decir en lugar de usar /dev/sdb1 (referencia física de conexión) podemos usar su UUID y de esta forma podríamos cambiar las conexiones de los discos sin que los puntos de montaje se viesen afectados.

La herramienta para conocer los UUID de los discos es:

Source   
[root@test ~]# blkid
/dev/sdb1: UUID="a210f4aa-0333-4827-b4f0-4a987c3364cf" TYPE="ext4"
/dev/sdb2: UUID="2133ef48-5eb9-4413-8b42-2f5f023a765b" TYPE="ext4"
/dev/sda1: UUID="0cdd3b92-349c-407f-87d2-63242782b531" TYPE="ext4"
/dev/sda2: UUID="rNf0sI-d44o-5c3f-VJMJ-zdhk-eT4q-Lc8xXT" TYPE="LVM2_member"
/dev/mapper/vg_test-lv_root: UUID="6c9fa623-8bc4-4143-b8a5-f7d0966980c9" TYPE="ext4"
/dev/mapper/vg_test-lv_swap: UUID="b382f6a5-0a63-4ab8-aaf4-8b8c1c0b969d" TYPE="swap"

Continue reading

Volúmenes encriptados (LUKS, Linux Unified Key Setup) en RedHat/CentOS 6

En esta entrada vamos a crear un volumen encriptado, algo muy útil si trabajamos con un portátil y queremos asegurar los datos ante la posible perdida.

Se pueden hacer cosas muy interesantes, como que nos pida la clave al arrancar o tener la clave por ejemplo en un USB. A mi me parece muy buena la opción de un dispositivo USB con la clave para poder arrancar.

Vamos al asunto, los pasos a seguir son:

1- Asegurarnos que tenemos cargado el módulo de kernel dm_crypt con:

Source   
[root@test ~]# lsmod | grep dm_crypt
dm_crypt 10848 2
dm_mod 63859 11 dm_crypt

Continue reading