0
<< предыдущая заметкаследующая заметка >>
03 июня 2020
Крах всему: помощь зала

UPD: Всем спасибо за советы, вопрос решен: оказывается, инкрементальный бэкап MySQL MariaDB не будет правильно работать до тех пор, пока базы не перевести из устаревшего формата MyISAM в формат InnoDB. Сделать это по-любому следует, формат устаревший. Перегнать MyISAM в InnoDB можно одной командой «ALTER TABLE `имя таблицы` ENGINE=InnoDB».

БЫЛО:

Вчера лишился всего, шо нажито непосильным трудом — всех своих сайтов и сетевых архивов. Потом все вернулось, но страху натерпелся...

История смешная. Короче, Linux-сервер. Я люблю, чтобы сервер, система и все прочее легко восстанавливаемое говно было где оно само захочет, но вот мои уникальные данные — где я захочу. А именно - в отдельной корневой папке, желательно даже на отдельной партиции. Мои данные уникальны, поэтому должны храниться на самом видном для меня месте. Чтоб если переезд — не бегать их собирать по кусочкам в далеких сраных папках самого разного софта, а взять и перенести. Как-то так.

Однако, nginx и особенно mysql очень не любят, когда их данные хранят не в /home/www, где они привыкли. И симлинк тоже не устраивает капризного mysql. Поэтому единственный способ вынести базы и сайты в корневую папку — это монтировать ее как bind в /home/www Поэтому у меня в fstab всегда было написано: "/home/www /R none bind 0 0" Но вчера я планово обновил систему, перезагрузился — и диск /R исчез! Увидев ПУСТУЮ папку /R, я пришел в неописуемый ужас и час страшно горевал, потому что там было всё: весь lleo.me, весь binoniq.net, все базы, вообще всё! И без бэкапа фактически, ну то есть, с бэкапом, но полугодичной давности. Потом удалось разобраться. Оказалось, "/home/www /R none bind 0 0" конечно монтирует первое во второе, поэтому вместо /R появилась пустая /home/www, а его реальное содержимое стало невидимым. Правильно наоборот: "/R /home/www none bind 0 0" Но блин, остается страшной загадкой, как оно у меня работало все это время — полгода, год? Либо я вписал это в fstab и не перегружал никогда машину (не верится), либо обновился mount, раньше он каким-то образом понимал, что строчка ошибочна, и монтировал как надо, а после обновления перестал... В общем, загадка.

Далее до полуночи я пробовал придумать наконец себе бэкап. Потому что это вообще с моей стороны дикое свинство подвергать опасности не только lleo.me, но и binoniq.net, где пользовательские данные. И оказалось, что с проблемой бэкапа до сих пор в мире всё достаточно тупо. Ну, то есть, файлы-то бэкапить не проблема, есть rsync, например. Но файлы и потерять не проблема, что там за файлы? Код движка — восстанавливается, фотки дневника (по крайней мере, моего) — они тоже копируются в разные места, в альбомы ВКонтактик, например, фотки каждой заметки исправно дублируются. В случае чего из кэшей поисковика собрать можно, у меня когда-то даже был скрипт, который собирал так убитые ЖЖ. Поэтому основная проблема бэкапа — это базы MySQL. Размер баз у меня — несколько гигабайт, и каждый вечер их в бэкап перезаливать на удаленное облако глупо. Особенно если на Яндекс-Диск, он монтируется как davfs2, а это, кто не в курсе, очень тормозная и проблемная штука, чтобы ворочать гигантскими файлами...

Окей, у mariadb есть фича инкрементального бэкапа. То есть, он якобы умеет записывать изменения. Инструкции предлагают сделать первый раз бэкап основной, а следующим шагом писать от него инкрементальный с последними изменениями относительно основного:

mariabackup --backup --target-dir=/B/backup --user=lleo --password=T,fnmNsEvysq

mariabackup --backup --target-dir=/B/inc1/ --incremental-basedir=/B/backup/ --user=lleo --password=T,fnmNsEvysq

Однако, как я ни бился, итог плачевный - "инкрементальный бэкап" по размерам получается примерно как основной, хотя за эти несколько минут в базах изменений накапливается (в основном, от ваших посещений) на копейку:

/B/backup 2486M

/B/inc1 2279M

Требуется помощь зала: что я делаю не так с инкрементальным бэкапом MariaDB? Как вы бэкапите базы?

PS: Видимо я не очень хорошо объяснил, уточню: бэкап файлов не является проблемой и софт по бэкапу файлов мне не нужен. Файлы (по сути - фотки) добавляются относительно редко, никогда потом не меняются, и они небольшие. То есть, нет никаких проблем с их бэкапом. Проблемой является именно бэкап баз MySQL MariaDB, потому что каждый чих на сайте приводит к изменению в гигабайтных файлах. С точки зрения софтинки, умеющей бэкапить файлы, когда кто-то на сайте поставил вашему комменту плюсик, то гигабайтный файл всех комментариев за последние 20 лет стал другим, и его надо срочно бежать перезаливать взамен старого. А это не дело.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок

Комментарии к этой заметке скрываются - они будут видны только вам и мне.

Оставить комментарий