Работа с INFORMATION_SCHEMA. Генерация shell-скриптов.

Использование таблиц INFORMATION_SCHEMA для генерации shell-скрипта.

Еще один полезный прием, который необходимо знать администраторам MySQL сервера, – генерация shell-скриптов на основе данных, из таблиц INFORMATION_SCHEMA. Полученный shell скрипт может быть запущен из командной строки. Это можно использовать, например, для создания скриптов резервного копирования каких-либо таблиц или баз данных.

Рассмотрим, конкретный пример. Предположим, нам нужно сделать скрипт для выгрузки из базы данных двух таблиц с именами: USERS и DEPARTMENTS.
Использую команду SELECT с выводом результатов во внешний файл и функциию CONCAT для объединения строк, мы получим нужный нам скрипт.

#mysql> select concat(“mysqldump -uroot -p123456 “,
  -> table_schema,” “,table_name, ” >> “,table_schema, “.sql”)
  -> from tables where table_name in (‘users’,’departments’)
  -> into outfile ‘/tmp/mydump.sh’;
Query OK, 4 rows affected (0.02 sec)

Теперь посмотрим, что в итоге у нас получилось:

#cat /tmp/mydump.sh
mysqldump -uroot -p123456 dev USERS >> dev.sql
mysqldump -uroot -p123456 dev DEPARTMENTS >> dev.sql
mysqldump -uroot -p123456 test USERS >> test.sql
mysqldump -uroot -p123456 test DEPARTMENTS >> test.sql

Таблицы USERS и DEPARTMENTS есть в двух базах данных dev и test. Если запустить полученный скрипт, эти таблицы будут выгружены с помощью mysqldump и записаны в файлы dev.sql и test.sql. Эти файлы можно при необходимости загрузить в любую базу данных.

Leave a Reply

Your email address will not be published. Required fields are marked *