Архивация баз данных mysql

Категория: / DEV Блог / Сервер (FreeBSD)
Скрипт для архивации всех баз данных пользователя

#!/bin/sh
 
mysqldump="/usr/local/bin/mysqldump"
mysqlparam="-u root -ppassword"
bzip2="/usr/bin/bzip2"
 
databases=`echo "show databases" | mysql ${mysqlparam} | grep -v "^D"`
dstdir="/backup/mysql"
 
fname=`date "+%Y-%m-%d`
 
# remove old
/usr/bin/find $dstdir -atime +8 -delete
 
# back it up
for dbs in $databases
do
$mysqldump $mysqlparam $dbs| $bzip2 -c -9 > ${dstdir}/${dbs}-${fname}.sql.bz2
done


Вешаем на крон и радуемся свежеиспеченным бэкапам.
Все архивы старше 8 дней беспощадно трутся с помощью утилиты find.


Добываем информацию о том чем занимется база данных

MySQL: mysqladmin processlist
PostgreSQL: select * from pg_stat_activity;
select * from pg_stat_database;
Общая статистика по работе сервера:
MySQL: mysqladmin extended-status; mysqladmin status
PostgreSQL: select * from pg_stats;