Назад | Перейти на главную страницу

Как ЗАМЕРЗАТЬ / остановить / заблокировать базу данных MYSQL? Тогда как мне вернуть базу данных в нормальное состояние?

В принципе, мне нужно это остановить. (Чтобы я мог делать резервную копию без новых данных). Все «заморожено».

Тогда как мне включить его, чтобы люди снова могли вносить в него изменения?

Чтобы расширить ответ 3dinfluence. mysqldump заблокирует таблицы блокировкой чтения перед их сбросом (это то, что вам нужно, когда вы говорите «заморозить»). В зависимости от вашего механизма хранения UPDATES (и, возможно, SELECTS) будут помещены в очередь до тех пор, пока не будет завершен дамп (в этот момент он разблокирует таблицы).

если вы хотите сделать это вручную, команда, которая вам понадобится, будет выглядеть примерно так (отрегулируйте, если вам не нужна глобальная блокировка).

flush tables with read lock;

Это применит глобальную блокировку и очистит кеш запросов. Затем вы можете снять блокировку с помощью

unlock tables;

Вы можете просто использовать команду mysqldump, чтобы получить моментальный снимок работающей базы данных, не блокируя или не замораживая ее.

если ваша база данных хранится на lvm - используйте функцию моментальных снимков. вы можете использовать собственный скрипт или, например, mylvmbackup.

если вы используете базу данных innodb - вы можете использовать mysqldump с опцией одиночной транзакции или можете попробовать xtrabackup.

со всеми этими параметрами вам не придется отключать базу данных во время резервного копирования.