Показаны сообщения с ярлыком backup. Показать все сообщения
Показаны сообщения с ярлыком backup. Показать все сообщения

суббота, 23 октября 2021 г.

Бэкапы mysql в 2021

 Кроме штатно mysqldump, который лочит таблицы, что вызывает в работе прода, есть весьма известный percona xtrabackup и сильно менее известный mariabackup

Отличия 2 утилит в том, что mariabackup это форк от xtrabackup, но там нужна целая матрица совместимостей -- тут можно только одним, там только другим, и между собой они совместимы не полностью. НО. Даже xtrabackup есть 2.4 и 8.0, и они тоже применимы в своих случаях! То есть 8.0 это только для mysql 8.0, для всех других версий ставить нужно строго 2.4.

Но и это не всё. mariabackup - судя по их сайту минимальная версия 10.2

The following MariaDB versions are currently supported:

mariadb-10.2

mariadb-10.3

mariadb-10.4

mariadb-10.5

Про xtrabackup можно почитать например это

https://habr.com/ru/post/520458/

Но сам бэкап ещё только пол дела, часто нужна информация о позиции в бинлоге (для поднятия слейва). Но и тут есть помощь, см

https://www.percona.com/doc/percona-xtrabackup/2.3/howtos/setting_up_replication.html

Ну и ещё чуть интересных ссылок

https://serveradmin.ru/polnyj-i-inkrementnyj-backup-mysql/

https://itc-life.ru/nastrojka-replikacii-mysql-s-pomoshhyu-xtrabackup-utility-percona/

https://minervadb.com/index.php/setup-mysql-slave-replication-with-percona-xtrabackup/

среда, 8 ноября 2017 г.

bup - backup system based on git

Very efficient backup system based on the git packfile format, providing fast incremental saves and global deduplication (among and within files, including virtual machine images).

https://github.com/bup/bup

В центоси легче всего поставить так:
1) либы
yum install python python-devel
yum install fuse-python pyxattr pylibacl
yum install perl-Time-HiRes

2) скачать сам пакет
http://dl.fedoraproject.org/pub/fedora/linux/releases/26/Everything/x86_64/os/Packages/b/bup-0.29-2.fc26.x86_64.rpm

3) rpm -Uvh bup*

4) используем.
Initialize the default BUP_DIR (~/.bup):
 bup init

Make a local backup (-v or -vv will increase the verbosity):
 bup index /etc
 bup save -n local-etc /etc

Restore a local backup to ./dest:
 bup restore -C ./dest local-etc/latest/etc
 ls -l dest/etc

Для пропуска некоторых файлов у index есть опции
--exclude
--exclude-from

Чтобы указать рабочий каталог отличный от ~/.bup, можно сделать так
export BUP_DIR=/backup/bup/...

вторник, 14 июля 2015 г.

mysqldump: убрать DEFINER из бэкапа

В некоторых версиях появилась бесполезная хрень называемая DEFINER, паразитирующая на CREATE VIEW, CREATE PROCEDURE.
Почему хрень? Потому что такой функционал востребован максимум в 5% бэкапов и должен включаться опционально, и штатно НЕ НУЖЕН. Так что 2 пути - выпиливать из кода или обработать дамп.
Первый шаг пропустим, второй - коды разные, синтаксис тоже. Коды 50017, 50013
пример на sed:
sed -i'' 's/DEFINER=[^*]*\*/\*/g' mydump.sql


http://stackoverflow.com/questions/9446783/remove-definer-clause-from-mysql-dumps

четверг, 10 октября 2013 г.

Создание плана резервного копирования

http://www.opennet.ru/base/sys/backup_plan.txt.html
Основной документ, хорошая основа, но не идеален.

http://www.certification.ru/library/articlesdir/big99.html?156

http://www.ibm.com/developerworks/ru/edu/au-restoreaix/section2.html

http://habrahabr.ru/company/veeam/blog/163405/
В основном рекламная чушь, но дельные мысли тоже есть, поэтому почитать стоит.

http://www.xakep.ru/magazine/xs/062/046/1.asp
главы "стратегия", "Пример из реальной жизни" (всё остальное там чепуха)

http://technet.microsoft.com/ru-ru/library/hh202195.aspx
http://technet.microsoft.com/ru-ru/library/hh202183.aspx
http://technet.microsoft.com/ru-RU/library/hh202194.aspx
http://technet.microsoft.com/ru-ru/library/hh202169.aspx
Несколько однобоко, но не просто слоова и теория, а неплохая основа для переработки под свои нужды.

вторник, 8 октября 2013 г.

bacula: делим конфиг файлы на части

в /etc/bacula/bacula-dir.conf вставляем

Director { ...}
Console { ... }

# Include split config files.
@/etc/bacula/conf.d/catalogs.conf
@/etc/bacula/conf.d/filesets.conf
@/etc/bacula/conf.d/jobdefs.conf
@/etc/bacula/conf.d/messages.conf
@/etc/bacula/conf.d/pools.conf
@/etc/bacula/conf.d/schedules.conf
@/etc/bacula/conf.d/storages.conf

# Read client directory for config files. Remember to bconsole "reload" after adding a client.
@|"sh -c 'cat /etc/bacula/conf.d/clients-enabled/*'"

По аналогии остальные конфиги правим.

https://gist.github.com/mashdot/2312522

четверг, 20 декабря 2012 г.

бэкап mysql без простоев

Самый простой метод бэкапа - на рабочем сервере - часто вызывает простои, поскольку на время бэкапа БД вешает локи, и на больших таблицах это бывает очень заметно. Простой способ решить эту проблему - сделать на отдельном или даже том же сервере инстанс БД в режиме slave, только не забываем выставить уникальный server-id и прописать в конфиг слейву режим read-only. И теперь можно сделать очень интересную штуку: остановим слейв (достаточно только SQL thread) и можно дампить. Из плюсов - мы даже можем дампить разные базы и таблицы в разные файлы, сохранив при этом целостность репликации! То есть можно потом загрузить на новый сервер все эти файлы, и мы будем знать master_log_pos для этой схемы! Суть в том, что поскольку слейв остановлен, master_log_pos меняться не будет, поэтому достаточно сохранить пару log_pos и log_file и мы можем использовать этот комплект при разворачивании нового слейва или даже мастера. Главное, не забыть залить полную структуру :)

Есть вариант 2, поставив flush tables with read lock и сделав снапшот, но это хоть небольшой но простой и не очень хорошо автоматизируется: из самого mysql не сказать "сделать снапшот", и нельзя закрывать соединение с базой раньше времени, иначе лок снимется. Вдобавок, если была обработках больших объёмов, можно очень долго ждать пока лок встанет, что может сильно увеличить простой системы. И опять же для правильного бэкапа нужен отдельный инсанс базы, например innodb нельзя бэкапить просто запаковав его файлы.

Вариант 3 - используя mysqldumpslow, но ничего про него сказать не могу, у нас пока не применялось. И вопрос с сохранением master_log_pos, особенно применимо к записи по разным файлам.

Для MyISAM есть метод простого копирования файлов, сделать только сначала flush tables, и снова это не сохранит позицию.

среда, 18 января 2012 г.

bacula+amazon

Основной документ
http://lucasmanual.com/mywiki/Bacula

Варианты исполнения
Через fuse-s3fs
Бэкапы через bacula на Amazon S3

Можно через s3cmd делать синхронизацию локального хранилища с удаленным.

"особо хитроумные пользователи AWS используют EC2 для бекапов и используют там rsync, а на s3 держат только снимки состояния EC2"
Но это + к стоимости за сервер. Хотя можно из скриптов запускать инстанс, ждать окончания и гасить, но если "вдруг" что-то изменится/сломается (ключ отозвали например), и мы не заметили и что-то сломалось, прощайте данные.

воскресенье, 25 сентября 2011 г.

Bitrix: бэкапим проект

Оф описание
http://dev.1c-bitrix.ru/community/blogs/howto/945.php
Как видим, сами разработчики советуют бэкапить базу + файлы штатными средствами.
mysqldump -u user -ppass dbname > dbname.sql
tar -czf proj.tgz /var/www/proj

Но эти бэкапы для разворачивания вручную, на старом месте. Если надо сделать перенос на новое место - надо сделать встроенный бэкап (файлов может быть больше 1, будет aaa.tar.gz, aaa.tar.gz.1 итд), на новом месте залить restore.php и им развернуть. Он запросит новые названия баз, юзеров итд.

"Архивы, созданные системой резервного копирования, предназначены исключительно для распаковки с помощью restore.php "
"Большие архивы автоматически делятся на части. Формат деления - исключительно своя разработка, пожалуйста, не пытайтесь их распаковать как многотомные архивы всякого рода архиваторами. "
http://dev.1c-bitrix.ru/community/forums/forum6/topic14618/

По первой ссылке есть скрипт автобэкапа, который сам парсит dbconn.php.

воскресенье, 16 января 2011 г.

s3cmd во FreeBSD

root@www1:/usr/ports# make search name=s3cmd
Port: py26-s3cmd-1.0.0.r1
Path: /usr/ports/net/py-s3cmd
Info: Unix-like tools to manipulate stored files from the command line
Maint: clsung@FreeBSD.org
B-deps: py26-elementtree-1.2.6_1 python26-2.6.6
R-deps: py26-elementtree-1.2.6_1 python26-2.6.6
WWW: http://s3tools.logix.cz/s3cmd

Требует установленного питона 2.6

суббота, 8 января 2011 г.

О бэкапах в SVN

Когда это имеет смысл? Для файлов, которые нельзя разделить на несколько (таких как access_log) - например дампы sql. Хранить такое просто, и в случае с svn легко синхронизировать с другими системами, а также заливать на amazon S3 - не надо перезаливать все файлы плюс оно уже сжато.
Хотя имеет смысл посмотреть и на распределенные системы контроля. Если набор данных единый, синхронизация делается просто и быстро.
Не имеет смысла использвать, когда много мелких часто изменяемых и удаляемых файлов. В итоге хранилище может раздуться до огромных размеров.
Также несжимаемые данные проще хранить отдельно.
Отдельно надо думать о бэкапах web-проектов, особенно малоизменяемых. Даже при 100к файлов добавление еще пары - процесс быстрый и если делаются простые архивы, а не инкрементные, выигрыш в месте может быть огромен. А вот распаковывание из такого хранилища с нуля может занимать часы, что приемлемо не всегда. Но получаем возможность откатиться до любой предыдущей версии и узнать, когда именно изменялись файлы.
Как вариант, хранить только ядро, а пользовательские файлы (особенно большие и бинарные) хранить отдельно в инкрементных архивах. А если движок сторонний, то можно еще уменьшить объем данных - хранить только наши модули-шаблоны, а оригинальные файлы при необходимости можно скачать с оф сайта. Хороший пример - битрикс. Неприменимо, если оригинальный движок был сильно переписан или есть привязка на данную версию.

среда, 10 ноября 2010 г.

Бэкапы в S3, часть 1

Для начала, определимся с языками и технологиями, а также тем, что вообще и как будем хранить.


Выгрузить файл в службы Amazon S3 с web-страницы можно несколькими способами:
  • При помощи командной строки, используя соответствующие модули CPAN.
  • При помощи командной строки, используя соответствующие модули Amazon.
  • Непосредственно из HTML-формы.
http://www.ibm.com/developerworks/ru/library/l-amazon-perl-2/

CPAN в свою очередь делятся еще на 2 части:
SOAP и REST
Модули - к примеру, s3cmd
Получить файл можно простым wget

Хранить нужно:
1) Дампы баз
2) архивы проектов (www)
3) копии репозитариев
4) рабочие файлы

Подборочка ссылок на скрипты
http://jeremy.zawodny.com/blog/archives/007641.html

s3sync пока отложил, потому что он на руби. Если часть проектов на наших серверах, где можно доставить руби, то на некоторых внешних проектах это практически нереально. Так что предпочтительно перл/пхп. Хотелось еще питон, но он по тем же причинам отложен. Хотя s3cmd зависимостями тянет питон, так что..

По установке немного:
http://habrahabr.ru/blogs/linux/72754/
http://wiki.vpslink.com/Automate_Backups_with_Amazon_S3_and_s3sync

Есть вариант duplicity + deja-dup

Получается как-то сумбурно немного, но я иначе вообще не выложу ничего...

среда, 3 ноября 2010 г.

ставим s3cmd

# cd /etc/yum.repos.d/
# wget http://s3tools.org/repo/CentOS_5/s3tools.repo
# yum -y install s3cmd
 Можно использовать.

Небольшое дополнение. s3cmd тянет в зависимостях питон.