Бэкап хранимых процедур, функций и триггеров MySQL
MySQL 5 ввел некоторые новые интересные функции, такие как хранимые процедуры и триггеры. Я покажу в этой маленькой заметке, как можнозабэкапить и восстановить эти компоненты с использованием mysqldump.
По умолчанию утилита mysqldump
забэкапит все триггеры, но НЕ хранимые процедуры/функций. Есть 2 параметра, которые говорят MySQLDump
что делать:
- routines - FALSE по умолчанию
- triggers - TRUE, по умолчанию
Если вы хотите, чтобы включить в существующий сценарий резервного копирования также триггеры и хранимые процедуры вам нужно только добавить --routines
как параметр командной строки:
mysqldump -routines имя_базы > имя_файла.sql
Если мы хотим сделать резервную копию ТОЛЬКО хранимых процедур и триггеров, а не MySQL таблиц и данных (это может быть полезно, чтобы импортировать их в другую базу/сервер, который уже имеет данные, но не сохраненные процедуры и/или триггеры), то мы должен выполнить что-то в вроде:
mysqldump -routines -no-create-info -no-data -no-create-db -skip-opt имя_базы > имя_файла.sql
Восстанавливается все очень просто:
mysql имя_базы < имя_файла.sql
Просмотреть функции и процедуры можно выполнив следующие команды:
SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
Или так:
select name from mysql.proc;
Следующая команда вернет в ответ SQL для создания функции:
show create function имя_базы.имя_функции;