Как известно в MySQL 5 была включена потдержка таких возможностей как создание хранимых процедур (stored procedures) и триггеров (triggers).
При попытке создать дамп базы, используя mysqldump, обнаружил в нем отсутствие комманд для создания хранимых процедур.
Как оказалось это было вызвано тем, что mysqldump по-умолчанию сохраняет только триггеры, пропуская хранимые процедуры. Существует два параметра, которые управляют этим поведением:
- —routines – по-умолчанию имеет значение FALSE
- —triggers – по-умолчанию имеет значение TRUE
Это означает, что для того чтобы включить в существующий сценарий резервного копирования триггеры и хранимые процедуры, нам нужно только к вызову комманды mysqldump добавить параметр —routines:
mysqldump -u root -p --routines [ИМЯ_БАЗЫ_ДАННЫХ] > dump.sql
Еслы же необходимо сохранить только хранимые процедуры и триггеры, без MySQL—таблиц и данных (скажем, чтобы импортировать их в другую базу данных), для этого можно использовать что-то вроде:
mysqldump -u root -p--routines --no-create-info --no-data --no-create-db --skip-opt
[ИМЯ_БАЗЫ_ДАННЫХ] > dump.sql
Чтобы импортировать данные в другую БД используя полученный дамп, следует воспользоваться следующей коммандой:
mysql -u root [ИМЯ_БАЗЫ_ДАННЫХ] < dump.sql
Автор: Sergiy Kamolov
Дата публикации: 2011-03-24T00:09:00.005+02:00