Бэкап SQL Базы
Бэкап SQL Базы
Уважаемые знатоки
Каким образом лучше всего снимать бэкап с sql базы?
SQL 5.1 x64
и когда это лучше всего делать?
вообще такой вопрос, можно ли не останавливая ядра UTM'a делать:
mysqldump -u root -p utm5 > ??
может кто поделится как это лучше всего делать и как кто делает?
Каким образом лучше всего снимать бэкап с sql базы?
SQL 5.1 x64
и когда это лучше всего делать?
вообще такой вопрос, можно ли не останавливая ядра UTM'a делать:
mysqldump -u root -p utm5 > ??
может кто поделится как это лучше всего делать и как кто делает?
у меня в bin'e:gil писал(а):в папке bin посмотрите, аналогично
get_nf_direct.exe
gigabase.dll
gigastub.dll
libeay32.dll
libmysql.dll
msvcp71.dll
msvcr71.dll
pthreadVC2.dll
ssleay32.dll
utm5_core.exe
utm5_flowgen.exe
utm5_payment_tool.exe
utm5_radgen.exe
utm5_radius.exe
utm5_rfw.exe
utm5_unif.exe
utm5_urfaclient.exe
ок, ошибся значит.
стандартный скрипт просто запускает mysqldump/pg_dump.можно по аналогии сделать bat-ничек.
стандартный скрипт просто запускает mysqldump/pg_dump.
Код: Выделить всё
$ cat /netup/utm5/bin/utm5_backup.sh
#!/bin/sh
# e-mail:info@netup.ru
# Copyright (c) 2001-2004 NetUP Inc. <info@netup.ru>. All rights reserved.
#
#$Id: utm5_backup.sh 4516 2004-08-30 05:32:48Z aospan $
# Now all parametrs get from.cfg
. /netup/utm5/utm5.cfg
sqldump_path=`which mysqldump`
database_password=--password=$database_password
backup_path=/netup/utm5/backup
dst_dir=`date +%y_%m_%d`
#do database copy
if [ "$database_type" = "mysql" ]
then
echo "Database type mysql. Dumping and archiving database ... please wait."
$sqldump_path -u $database_login $database_password $database | gzip > $backup_path/UTM5.$dst_dir.gz
echo "Done."
fi
# if postgresql
if [ "$database_type" = "postgres" ]
then
echo "Database type postgres. Dumping and archiving database ... please wait."
pg_dump -U $database_login $database | gzip > $backup_path/UTM5.$dst_dir.gz
echo "Done."
fi
да, вот... собственно вопрос в чём... ничего что utm продолжает работать с базой когда она бэкапится?gil писал(а):ок, ошибся значит.
стандартный скрипт просто запускает mysqldump/pg_dump.можно по аналогии сделать bat-ничек.Код: Выделить всё
$ cat /netup/utm5/bin/utm5_backup.sh #!/bin/sh # e-mail:info@netup.ru # Copyright (c) 2001-2004 NetUP Inc. <info@netup.ru>. All rights reserved. # #$Id: utm5_backup.sh 4516 2004-08-30 05:32:48Z aospan $ # Now all parametrs get from.cfg . /netup/utm5/utm5.cfg sqldump_path=`which mysqldump` database_password=--password=$database_password backup_path=/netup/utm5/backup dst_dir=`date +%y_%m_%d` #do database copy if [ "$database_type" = "mysql" ] then echo "Database type mysql. Dumping and archiving database ... please wait." $sqldump_path -u $database_login $database_password $database | gzip > $backup_path/UTM5.$dst_dir.gz echo "Done." fi # if postgresql if [ "$database_type" = "postgres" ] then echo "Database type postgres. Dumping and archiving database ... please wait." pg_dump -U $database_login $database | gzip > $backup_path/UTM5.$dst_dir.gz echo "Done." fi
Это очень херово.да, вот... собственно вопрос в чём... ничего что utm продолжает работать с базой когда она бэкапится?
Я уже 100500 раз объяснял как надо делать бекапы:
ставим слейв сервер, в момент бекапа, останавливаем синхронизацию на слейве с мастером, далее останавливаем слейв, далее копируем файлы базы данных (можно тем же Acronis True Image инкрементно),
запускаем слейв, включаем синхронизацию...
В этом случае вы гарантированно получаете срез базы данных на конкретную секунду, экономите место на диске, при проблемах на мастере время восстановления базы 10 минут.
Останавливать слейв не нужно. достаточно остановить синхронизацию.
#cat /netup/utm5/utm5_backup.sh
#!/bin/sh
/bin/echo "SLAVE STOP;" | /usr/local/bin/mysql -uroot -pPASS
sleep 2
/usr/local/bin/mysqldump -uroot -pPASS --opt UTM5 > /data/UTM5-`date "+%Y-%m-%d"`.sql
sleep 2
/bin/echo "SLAVE START;" | /usr/local/bin/mysql -uroot -pPASS
sleep 2
/usr/bin/find /data/ -name UTM5-\*.sql -type f -mtime +5 -exec rm -f {} \;
#cat /netup/utm5/utm5_backup.sh
#!/bin/sh
/bin/echo "SLAVE STOP;" | /usr/local/bin/mysql -uroot -pPASS
sleep 2
/usr/local/bin/mysqldump -uroot -pPASS --opt UTM5 > /data/UTM5-`date "+%Y-%m-%d"`.sql
sleep 2
/bin/echo "SLAVE START;" | /usr/local/bin/mysql -uroot -pPASS
sleep 2
/usr/bin/find /data/ -name UTM5-\*.sql -type f -mtime +5 -exec rm -f {} \;
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Уважаемый, Вы не поняли. Евгений предлагает фантастический по своей сути вариант. Не дампим, а просто копируем. Плюсы этого решения в том, что реально время восстановления мастера равно времени копирования файлов. При дампе восстановление идет ооооочень долго из-за пересчета индексов. Есть еще дамп в csv и импорт из него, это быстрее чем просто дамп/ресторе, но медленнее чем простое копирование.
Ну можно конечно и так.
Хотя что-то мне подсказывает, что при попытке использовать этот способ людьми которые не уверенны надо ли останавливать УТМ для дампа,
возможен нехилый наезд на грабли.
Кстати слышал краем уха, что Mysql давно умеет делать бекап по типу снапшотов. и остановка базы не нужна.
но так и не добрался почитать доки по этой теме =)
Хотя что-то мне подсказывает, что при попытке использовать этот способ людьми которые не уверенны надо ли останавливать УТМ для дампа,
возможен нехилый наезд на грабли.
Кстати слышал краем уха, что Mysql давно умеет делать бекап по типу снапшотов. и остановка базы не нужна.
но так и не добрался почитать доки по этой теме =)
Счас есть слава богу архивация базы, а вот когда ее небыло, бекап с помошью mysqldump занимал нехилое время, а восстановление вообще несколько суток, так что копирование файлов это единственно приемлемый способ был. Хотя и счас тоже. Мы этим способом пользуемся уже не первый год, и на мой взгляд это самый безопасный способ. Да еще проследите чтобы бинлог хранился несколько суток. Краем уха я тоже слышал про снапшоты, но помоему там речь шла только о горячем копировании файлов муисам, и нет бесплатных инструментов для копирования иннодб базы.alexeyp5 писал(а):Ну можно конечно и так.
Хотя что-то мне подсказывает, что при попытке использовать этот способ людьми которые не уверенны надо ли останавливать УТМ для дампа,
возможен нехилый наезд на грабли.
Кстати слышал краем уха, что Mysql давно умеет делать бекап по типу снапшотов. и остановка базы не нужна.
но так и не добрался почитать доки по этой теме =)
Добрый вечер,думаю хозяин этого поста не обидится.если я тоже задам вопрос
Стоит ОС FreeBSD 8.0,на нем висит модуль телефонии,
в кроне указал параметры бекапов
Стоит ОС FreeBSD 8.0,на нем висит модуль телефонии,
в кроне указал параметры бекапов
Так в папке в которой указаны бекапы..сами файлы создаются,но они пустые,почему так?при запуске самого скрипта.бекап шикарно создается..# UTC time. See adjkerntz(8) for details.
1,31 0-5 * * * root adjkerntz -a
0 0 * * 1,2,3,4,5,6 root /netup/utm5/bin/utm5_backup.sh