mysqldump лочит таблицы на запись и во время дампа база фактически простаивает.
Решения:1. Репликация и бэкап со слейва;
2. mysqlhotcopy, делает "read lock" на и копируются файлы баз, т.е.:
FLUSH TABLES WITH READ LOCK;
// копировать файлы MyISAM таблиц
UNLOCK TABLES;FLUSH TABLES WITH READ LOCK может занять много времени т.к. он будет ждать окончания выполнений всех запущенных запросов.
3. Минимизация блокировки через использование снапшотов ФС:
FLUSH TABLES WITH READ LOCK;
Делаем снэпшот ФС, где лежат базы мускула
UNLOCK TABLES;
Копируем директории с базой или отдельные таблицы
Отцепляем снэпшотСкрипт для Linux (использует LVM снапшот): http://lenz.homelinux.org/mylvmbackup/
Cкрипт для FreeBSD:
(echo "FLUSH TABLES WITH READ LOCK;"; echo "\! ${MOUNT} -u -o snapshot /${SNAPPART}/.snap/backup /${SNAPPART}"; echo "UNLOCK TABLES;" ) |
${MYSQL} --user=root --password=`${CAT} ${MYSQLROOTPW}`
URL: http://community.livejournal.com/ru_highload/8082.html
Обсуждается: http://www.opennet.me/tips/info/1407.shtml
Увы, тока для myisam, innodb_flush_log_at_trx_commit создаст проблемы.
Почему?
почитай за innodb хранилище.
оно вообще в мускуле геморное....
да инноддб геморное, а включеный bin-log мускуля конкретно снижает производительность в нагруженых базах
Но наверно друго-го нормального выхода кроме как репликация нет.
Разве что плевать в мускуль и стягивать бабло в оракл :)
Денег правда больше чем на пару мощных серверов :)))