Бэкап хранимых процедур, функций и триггеров 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 имя_базы.имя_функции;

Share Button
(Visited 544 times, 1 visits today)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *