Site Tools


backup

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
backup [2016/04/27 20:06]
conovaloff
backup [2016/06/27 13:39] (current)
conovaloff
Line 22: Line 22:
   Если много картинок,​ бинарных файлов или архивов,​ которые не изменяются построчно - то rsync (rdiff все равно не получит diff)   Если много картинок,​ бинарных файлов или архивов,​ которые не изменяются построчно - то rsync (rdiff все равно не получит diff)
   Если много текстовых файлов не подверженных архивации - то rdiff (так как он архивирует это все)   Если много текстовых файлов не подверженных архивации - то rdiff (так как он архивирует это все)
-  ​+ 
 + 
 +==== Backup mysql ==== 
 + 
 +<​code>​ 
 +Средства для бэкапа:​ 
 + 
 +mysqldump  
 + 
 +mysqlbackup – утилита является частью MySQL Enterprise ($5000per\year). Базируется на копирование файлов баз данных. Доступны инкрементные бэкапы (дифференциальные бэкапы)  
 + 
 +xtrabackup – бесплатный аналог mysqlbackup от percona. Базируется на копирование файлов баз данных. Позиционирует себя как самый быстрый способ получения бэкапов. 
 + 
 +mysqlbackup + git or rdiff-backup 
 + 
 +AutoMySQLBackup – https://​sourceforge.net/​projects/​automysqlbackup/​ – скрипт для настройки автоматического бэкапа (ежедневный\ежемесячный и т.д.)  
 + 
 +MysqlIncrementalBackup – https://​sourceforge.net/​projects/​mysqlincrementalbackup/​ – базируется на AutoMySQLBackup,​ но добавляет инкрементацию за счет копирования участков бинарного лога 
 + 
 +============================= 
 + 
 +Если мы говорим о крупных компаниях,​ то золотым стандартном резервного копирования является xtrabackup. 
 + - Он копирует базы на уровне самих файлов (в /​var/​lib/​mysql/​). 
 + - Он не блокирует таблицу во время создания дампа 
 + - Присутствует возможность создавать инкременты за счет использования бинарных логов 
 + 
 +Минусы:​ 
 + - отсутствие возможности простого импорта,​ так как у нас бинарные файлы а не sql запросы. 
 + - чтобы восстановить базу данных,​ нужно: stop mysql ; cp /​backup/​20.04.2016/​* /​var/​lib/​mysql/​ ; start mysql 
 + 
 +============================= 
 + 
 +MysqlIncrementalBackup — не очень распространенный скрипт,​ который делает следующую вещь: 
 +  - берет базовый sql дамп через mysqldump. 
 +  - берет инкрементальные бэкапы за счет бинарного лога, просто распихивая необходимые диапазоны бинарного лога по файлам. 
 + 
 +Восстановление происходит следующим образом:​ 
 +Восстанавливаем базовый дамп: 
 +  zcat /​backup/​some_name2016-04-20_12h02m.sql.gz | mysql some_name 
 +Восстанавливаем последующие инкременты:​ 
 +  mysql some_name < /​backup/​Incremental/​some_name_IncrementalBackup_2016-04-20_12h04m.1 
 +  mysql some_name < /​backup/​Incremental/​some_name_IncrementalBackup_2016-04-20_12h11m.2 
 + 
 +Минусы:​ 
 +  - скрипт мало распространен и не используется миллионами людей. Так что, это бэта версия на свой страх и риск. 
 + 
 +============================= 
 +Модификация способа с получением diff от построчного sql дампа 
 + 
 +== возможно использовать rdiff-backup вместо git и иных VCS. 
 +Преимущество:​ Возможность подчищать то, что перестало быть актуальным. 
 +Например:​ 
 + 
 +  Если ты запихнешь в базу 5 гигов данных —> сделаешь коммит —> удалишь эти 5 гигов —> сделаешь коммит —> то эти 5 гигов будут с тобой на всегда в бэкапах. 
 + 
 +  Если ты запихнешь в базу 5 гигов данных —> сделаешь инкрементальный бэкап за счет rdiff-backup —> удалишь эти 5 гигов —> сделаешь инкрементальный бэкап —> то эти 5 гигов будут жить пока живут эти базовые бэкапы и инкременты к нему. 
 +Тоесть,​ когда пройдет 30 дней и ты сделаешь rdiff-backup —remove-older-than 15D то старые бэкапы,​ старше 15 дней потрутся,​ а вмести сними и 5гб неактуальных бэкапов. 
 + 
 + 
 +== Ускорение при импорте 
 +Если скорость импорта является проблемой,​ то можно его несколько повысить. 
 + 
 +Вот пример для 13762 строк INSERT: 
 +root@3d9cd353e38a:#​ time mysql some < ./some.sql  
 +real  2m24.312s 
 +user  0m1.941s 
 +sys  0m0.425s 
 + 
 +Если запихивать перед этим: 
 +set autocommit=0;​ 
 +set unique_checks=0;​ 
 +set foreign_key_checks=0;​ 
 + 
 +<sql дамп>​ 
 + 
 +commit; 
 + 
 +то скорость несколько увеличивается:​ 
 +root@3d9cd353e38a:#​ time mysql some < ./some.sql  
 +real  0m42.284s 
 +user  0m1.663s 
 +sys  0m0.195s 
 + 
 + 
 +Исходный sql дамп без —extended-insert=FALSE:​  
 +# time mysql beget_racktables < beget_racktables.sql  
 +real  0m40.821s 
 +user  0m1.556s 
 +sys  0m0.118s 
 + 
 + 
 +============================= 
 + 
 +Вообщем,​ я за mysqldump —extended-insert=FALSE + rdiff-backup 
 +</​code>​
backup.txt · Last modified: 2016/06/27 13:39 by conovaloff

Page Tools