Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>mysql mysqldup dump restore script}} ====== Система резервного копирования и восстановления данных для MySql ====== <note tip>mysql_utils shell script!</note> Система написана на shell скрипте sh. Для создания резервных копий используется mysqldump. Для создания архивов используется bz2. [[https://github.com/Mirocow/mysql_utils|]] ==== Установка ==== * cd ~ * git clone https://github.com/Mirocow/mysql_utils.git * cd mysql_utils ==== Настройка ==== Для debian систем настройка будет выполнена автоматически. Для остальных необходимо создать файл. * # nano /etc/mysql/debian.cnf <code sh> # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = master-password socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = master-password socket = /var/run/mysqld/mysqld.sock basedir = /usr </code> ==== Сохранение всех баз ==== По умолчанию упаковывается bzip2 c параметром --compress=bzip2 <code sh> # cd ~ # cd mysql_utils # bash backup.sh --compress=bzip2 --exclude="mysql" </code> === Запуск справки по скрипту === <code sh> # bash backup.sh --help usage: backup.sh options This script buckup all databases. Usage: backup.sh <[options]> Options: -e= | --exclude= Exclude databases --exclude-tables= Exclude tables -c= | --compress= Compress with gzip or bzip2 -v | --verbose Add verbose into output -l | --lifetime= Lifetime for dump files --config= Config file of Debian format --dir= Backup directory -h | --help This text Examples: backup.sh --verbose --compress= backup.sh --verbose --compress=zgip backup.sh --verbose --compress=bzip2 backup.sh --verbose --compress= --exclude="mysql" backup.sh --verbose --compress= --exclude="mysql" --lifetime="3 day ago" backup.sh --verbose --config="/etc/mysql/debian.cnf" --exclude="mysql" --lifetime="1 day ago" backup.sh --verbose --dir="/var/backups/mysql" --config="/etc/mysql/debian.cnf" --exclude="mysql" --lifetime="1 day ago" backup.sh --verbose --dir="/home/backups/mysql" --exclude="mysql" --lifetime="1 day ago" backup.sh --verbose --dir="/home/backups/mysql" --exclude="mysql" --exclude-tables="tbl_template" --lifetime="1 day ago" </code> ==== Восстановление баз за указанную дату ==== По умолчанию запакован c параметром --compress=bzip2 <code sh> # cd /var/backups/mysql/[some date] # bash ~/mysql_utils/restore.sh </code> ==== Восстановление выбранной БД ==== По умолчанию запакован c параметром --compress=bzip2 <code sh> # cd /var/backups/mysql/[some date]/[some db name] # bash ~/mysql_utils/restore_db.sh </code> ==== Установка заданий в cron ==== nano /etc/default/db_backup <code sh> START=yes </code> nano /etc/cron.daily/db_backup <code sh> #!/bin/sh . /etc/default/db_backup if [ "$START" = "yes" ]; then logger "Start databases backup system..." /bin/bash /root/scripts/mysql_utils/backup.sh --exclude="some_exclude_database" fi </code> ===== Проверка работы скрипта ===== <code sh> # tail -f /var/log/syslog May 23 12:25:34 db1 logger: BACKUP: ** Dump tecdoc.2013.ALI_COORD May 23 12:25:35 db1 logger: BACKUP: ** set perm on tecdoc.2013/AL May 23 12:25:35 db1 logger: BACKUP: ** bzip2 tecdoc.2013/ALI_COOR May 23 12:25:35 db1 logger: BACKUP: ** Dump tecdoc.2013.ARTICLES May 23 12:25:43 db1 logger: BACKUP: ** set perm on tecdoc.2013/AR May 23 12:25:43 db1 logger: BACKUP: ** bzip2 tecdoc.2013/ARTICLES May 23 12:25:43 db1 logger: BACKUP: ** Dump tecdoc.2013.ARTICLES_ May 23 12:25:43 db1 logger: BACKUP: ** set perm on tecdoc.2013/AR May 23 12:25:43 db1 logger: BACKUP: ** bzip2 tecdoc.2013/ARTICLES May 23 12:25:43 db1 logger: BACKUP: ** Dump tecdoc.2013.ARTICLE_C </code>СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal