Резервное копирование MySQL с человеческим лицом

Запись создана 23 марта, 2014

На дворе 2014-ый год, а мы всё как-то старинке снимаем mysql дампы старым mysldump, который фигачит всю ночь, блокирует таблицы и всячески бесит тех кому эти таблицы нужны.

percona-xtrabackup — настало твое время! Мало того что чудо сие не лочит таблицы, работает быстрее Mysqldump, может делать инкрементные бакапы, так ведь с его помощью можно реплику master-slave сделать прям вот на ходу, без даунтаймов, гемороя и СМС.

Но обо всём по порядку, начнем пожалуй с резервного копирования. За исходные возьмем CentOS 6.5 x86-ая архитектура, и MariaDB 5.5.
Устанавливаем xtrabackup из официального репозитория:

 mkdir -p /backup/{mysql,data}
 yum localinstall https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm -y
 yum install percona-xtrabackup -y

Устраняем необходимость вводить логин и пароль рута от БД:

cat >> /root/.my.cnf << EOF
[client]
user = root
pass = 2WJgur34r
EOF

В файле /etc/my.cnf.d/server.cnf в секцию [mysqld] добавляем:

 datadir=/var/lib/mysql

Скрипт который идет ниже ставим в крон:

#!/bin/bash
innobackupex --rsync /backup/mysql/
for i in `find /backup/mysql/ -maxdepth 1 -type d  | grep -vFx /backup/mysql/`;do innobackupex  --apply-log $i;done
for i in `find /backup/mysql/ -maxdepth 1 -type d  | grep -vFx /backup/mysql/`;do tar czf $i.tgz $i;rm -rf $i;done

Результаты выглядят так:

[root@it ~]# ls -1 /backup/mysql/
2014-03-22_20-08-08.tgz
2014-03-22_20-40-35.tgz
2014-03-22_23-07-04.tgz
2014-03-23_17-20-06.tgz

Справедливости ради, замечу что таблицы MyISAM оно похоже таки лочит. Но судя по опыту поднятия mysql-slave с 50 гиговой базой, нагрузки дает гораздо меньше, локи проходят почти не заметно.

» Запись из раздела MySQL | 1 комметарий

Комментарии



один ответ to “Резервное копирование MySQL с человеческим лицом”

  1. Light Solution on 2 октября, 2016 22:52

    Спасибо за полезный материал. Часто на практике сталкиваемся с достаточно большими о объёму базами данных.

Смс сервис рассылки rocketsms.by.


Ответить