•
Instalación de un servidor LAMP III (herramientas para MySQL)
Una vez instalado el MySQL deberemos instalar diferentes herramientas para la gestión del mismo, como pueden ser los backups el los comandos de mantenimiento de las tablas.
Las herramientas que vamos a instalar mediante los siguientes comandos son:
- Rotación semanal de los logs de MySQL, tanto las slowqueries como el log general
- Actualizar la información sobre la distribución de los valores de la tabla mediante el comando ANALYZE
- Desfragmentar las tablas eliminando espacio que no se usa mediante el comando OPTIMIZE
- Backup con mysqldump cada semana para tener un backup lógico de la base de datos
Estas herramientas usan el Maatkit, por lo que deberemos instalar los siguientes módulos de perl:
- DBI
- DBD::mysql
yum install perl-Class-DBI perl-DBD-MySQL -y
mkdir -p /usr/local/bin
svn export http://nagios-systemadmin.googlecode.com/svn/trunk/auxiliars/rotate.mysql.logs.sh /usr/local/bin/rotate.mysql.logs.sh
chmod +x /usr/local/bin/rotate.mysql.logs.sh
wget http://www.maatkit.org/get/mk-find -O /usr/local/bin/mk-find
chmod +x /usr/local/bin/mk-find
cat > /usr/local/bin/optimize.mysql.sh <<EOF
#!/bin/bash
exec /usr/local/bin/mk-find -p \$(cat /var/mysql/.mysql.root.pass) --exec 'optimize table %D.%N;'
EOF
chmod +x /usr/local/bin/optimize.mysql.sh
cat > /usr/local/bin/analyze.mysql.sh <<EOF
#!/bin/bash
exec /usr/local/bin/mk-find -p \$(cat /var/mysql/.mysql.root.pass) --exec 'analyze table %D.%N;'
EOF
chmod +x /usr/local/bin/analyze.mysql.sh
cat > /usr/local/bin/backup.mysqldump.sh <<EOF
#!/bin/bash
#set -xv
BACKUP=/var/backup/mysqldump
SCHOME=/usr/local/bin
touch \$BACKUP/mysqldump.\$(date +%Y%m%d).err
for taula in \$(\$SCHOME/mk-find -u root -p \$(cat /var/mysql/.mysql.root.pass));
do
db=\$(echo \$taula | sed 's/\`.\`/ /' | sed 's/\`//g' | awk '{ print \$1 }')
taula=\$(echo \$taula | sed 's/\`.\`/ /' | sed 's/\`//g' | awk '{ print \$2 }')
/usr/local/mysql/bin/mysqldump -uroot -p\$(cat /var/mysql/.mysql.root.pass) --routines --opt --host="127.0.0.1" --force \$db \$taula 2>> \$BACKUP/mysqldump.\$(date +%Y%m%d).err | gzip -c > \$BACKUP/backup_\${db}_\${taula}_\$(date +%Y%m%d).sql.gz
done
/usr/bin/find \$BACKUP -mtime +14 -type f -exec rm -f {} \;
cat \$BACKUP/mysqldump.\$(date +%Y%m%d).err | grep -v "use locks with log tables"
exit 0
EOF
chmod +x /usr/local/bin/backup.mysqldump.sh
mkdir -p /var/backup/mysqldump
A continuación definiremos los siguientes crons:
cat >> /var/spool/cron/root <<EOF
#mysqldump
0 3 * * 0 /usr/local/bin/backup.mysqldump.sh
0 8 * * 0 /usr/bin/find /var/backup/mysqldump -mtime +14 -type f -exec rm -f {} \;
# analyze
0 6 * * * /usr/local/bin/analyze.mysql.sh
# optimize
30 6 * * 0 /usr/local/bin/optimize.mysql.sh
#logs mysql
0 0 * * 0 /usr/local/bin/rotate.mysql.logs.sh
EOF
pkill -1 crond
Relacionados
Imprimir
Deja un comentario: