Mysql 4.1 backup > 1Gb

Разгильдяй

Новичок
Mysql 4.1 backup > 1Gb

Подскажите пожалуйста как и чем делать бекап базы данных на рабочей машине без остановки mysql server?

ОС: Debian
База: Mysql 4.1
Размер базы > 1Гб
 

si

Administrator
для myisam думаю mysqlhotcopy будет быстрее mysqldump. к тому же она умеет не копировать индексы, а только ее заголовок индексного файла, потом их можно восстановить при помощь myisamchk.
еще можно использовать с binlog , тогда копию базы можно делать это не каждый день, а скажем раз в
неделю, и хранить бинлоги за это время. правда на восстановление пойдет больше времени. но что при mysqldump что при mysqlhotcopy во время бакапа база будет залочена. тут вариантов решения несколько
1. использовать innodb + hotbackup для нее (платный)
2. поставить slave и делать резервирование на нем, тогда мастер будет работать без остановки.
 

Разгильдяй

Новичок
Автор оригинала: admin
mysqldump чем плох?
Медленно и систему сильно грузит. В это время ужасные тормоза на остальных машинах.

-~{}~ 04.09.06 20:44:

Автор оригинала: si
для myisam думаю mysqlhotcopy будет быстрее mysqldump. к тому же она умеет не копировать индексы, а только ее заголовок индексного файла, потом их можно восстановить при помощь myisamchk.
еще можно использовать с binlog , тогда копию базы можно делать это не каждый день, а скажем раз в
неделю, и хранить бинлоги за это время. правда на восстановление пойдет больше времени. но что при mysqldump что при mysqlhotcopy во время бакапа база будет залочена. тут вариантов решения несколько
1. использовать innodb + hotbackup для нее (платный)
2. поставить slave и делать резервирование на нем, тогда мастер будет работать без остановки.
1. А какой идеальный вариант, если бекапы нужно делать 2-3 раза в день и возможно в некоторые дни прийдется делать столько же откатов?
Ессно все на рабочей машине без остановки сервера базы данных.
2. В каких случаях удобнее хранить бекапы в бинарном формате?

Скорее всего при откате понадобится всего 1-2 строчки из всего бекапы база, которая уже > 1Гб.
 

AndreyKl

Новичок
Только на правах идеи:

mysqlhotcopy вроде бы перловый скрипт... вообще, все базы данных в mysql хранятся в файлах, и нужно скопировать эти файлы правильно, чем и занимается mysqlhotcopy, но ведь он на перле.. видимо, можно разобраться какие файлы он копирует и натравить на них rsync... не знаю, только как идея.

Ещё в mysql 5 вроде грозились построчные репликации, но тебе видимо это поможет ещё меньше чем идея выше...
 

si

Administrator
AndreyKl
mysqlhotcopy копирует не перлом а использует системную cp.
возможно в некоторые дни прийдется делать столько же откатов?
мне чтото кажется это надо решать не средствами backup.
2. В каких случаях удобнее хранить бекапы в бинарном формате?
вы про какой бинарный бакап ?
 

Разгильдяй

Новичок
Автор оригинала: si
AndreyKl
mysqlhotcopy копирует не перлом а использует системную cp.
мне чтото кажется это надо решать не средствами backup.
вы про какой бинарный бакап ?
А какими средствами? С какой стороны подходить к решению своей задачи (откаты)?
 

si

Administrator
возможно это можно сделать на уровне приложения/бизнес логики
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Ситуация похожа на агрегацию отчетов, когда данные подгоняются и надо подправить несколько цифр.

Реализация бизнес-логики может занять не одну неделю, причем потребует аналитику на выском уровне с многоступенчатым просчетом вариантов ситуаций. Скорее всего, это просто никому не надо.

Тут действительно проще всего slave, на котором можно сделать hot copy, а потом папку медленно скопировать на master.
При откате - сменить симлинки папок.
Т.о. откат произойдет за 1 минуту, а процесс бекапа не будет загружать системы.
 

Разгильдяй

Новичок
Автор оригинала: grigori
Ситуация похожа на агрегацию отчетов, когда данные подгоняются и надо подправить несколько цифр.

Реализация бизнес-логики может занять не одну неделю, причем потребует аналитику на выском уровне с многоступенчатым просчетом вариантов ситуаций. Скорее всего, это просто никому не надо.

Тут действительно проще всего slave, на котором можно сделать hot copy, а потом папку медленно скопировать на master.
При откате - сменить симлинки папок.
Т.о. откат произойдет за 1 минуту, а процесс бекапа не будет загружать системы.
1. Да, в том то и дело, что нету этих недель на реализацию бизнес логики и в сутках не хватает как минимум нескольких часов.
2. По поводу slave согласен, проанализировал все варианты и пришел к выводы, что это пожалуй наиболее оптимальное и приемлимое решение.
3. А как быть с быстрыми откатами 2-3 строк из всего бекапа?

-~{}~ 06.09.06 19:05:

П.С. "медленно скопировать", что ты под этим подразумевал?
 

si

Administrator
3. А как быть с быстрыми откатами 2-3 строк из всего бекапа?
думаю что никак, если делать это средствами бакапа - то восстанавливать всю базу придется

-~{}~ 06.09.06 20:47:

да slave вполне может быть на томже сервере.
 

Разгильдяй

Новичок
Автор оригинала: si
думаю что никак, если делать это средствами бакапа - то восстанавливать всю базу придется

-~{}~ 06.09.06 20:47:

да slave вполне может быть на томже сервере.
А что делает умный администратор, которому нужно восстановить 2 строки из 1Гб. бекапа? Фирма не выделила деньги на разработку бизнес-логики или покупку готового решение. Извращаться прийдется как всегда своими силами. Натолкни на мысль как элегантней решить проблему.


Со slave разобрались и еще очень понравилась идея с симлинками.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
"медленно скопировать", что ты под этим подразумевал?
с паузами (в народе называется ограничением скорости), чтобы винт не загружать

связано с описанием проблемы, что во время бекапа
Медленно и систему сильно грузит. В это время ужасные тормоза на остальных машинах.
slave вполне может быть на томже сервере
тоже вариант - просто выставить ему низкий приоритет

очень понравилась идея с симлинками
RTFM ;)

-~{}~ 07.09.06 17:27:

как быть с быстрыми откатами 2-3 строк из всего бекапа
partitioning по датам или по подразделениям - в MySQL 5.1
и вручную редактировать несколько строк
 
Сверху