Бэкап SQL Базы

Технические вопросы по UTM 5.0
xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Бэкап SQL Базы

Сообщение xxxupg »

Уважаемые знатоки :)

Каким образом лучше всего снимать бэкап с sql базы?
SQL 5.1 x64
и когда это лучше всего делать?

вообще такой вопрос, можно ли не останавливая ядра UTM'a делать:

mysqldump -u root -p utm5 > ??

может кто поделится как это лучше всего делать и как кто делает?

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

А для кого написан скрипт идущий в комплекте?
# /netup/utm5/bin/utm5_backup.sh

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

kirush писал(а):А для кого написан скрипт идущий в комплекте?
# /netup/utm5/bin/utm5_backup.sh
Простите, там где это нужно делать UTM поставили на Windows 2003

gil
Сообщения: 355
Зарегистрирован: Вт ноя 11, 2008 14:28

Сообщение gil »

в папке bin посмотрите, аналогично

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

gil писал(а):в папке bin посмотрите, аналогично
у меня в bin'e:

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

gil
Сообщения: 355
Зарегистрирован: Вт ноя 11, 2008 14:28

Сообщение gil »

ок, ошибся значит.
стандартный скрипт просто запускает mysqldump/pg_dump.

Код: Выделить всё

$ cat /netup/utm5/bin/utm5_backup.sh
#!/bin/sh
# e-mail:info@netup.ru
# Copyright &#40;c&#41; 2001-2004 NetUP Inc. <info@netup.ru>. All rights reserved.
#
#$Id&#58; utm5_backup.sh 4516 2004-08-30 05&#58;32&#58;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 &#91; "$database_type" = "mysql" &#93;
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 &#91; "$database_type" = "postgres" &#93;
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
можно по аналогии сделать bat-ничек.

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

gil писал(а):ок, ошибся значит.
стандартный скрипт просто запускает mysqldump/pg_dump.

Код: Выделить всё

$ cat /netup/utm5/bin/utm5_backup.sh
#!/bin/sh
# e-mail&#58;info@netup.ru
# Copyright &#40;c&#41; 2001-2004 NetUP Inc. <info@netup.ru>. All rights reserved.
#
#$Id&#58; utm5_backup.sh 4516 2004-08-30 05&#58;32&#58;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 &#91; "$database_type" = "mysql" &#93;
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 &#91; "$database_type" = "postgres" &#93;
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
можно по аналогии сделать bat-ничек.
да, вот... собственно вопрос в чём... ничего что utm продолжает работать с базой когда она бэкапится?

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

да, вот... собственно вопрос в чём... ничего что utm продолжает работать с базой когда она бэкапится?
Это очень херово.

Я уже 100500 раз объяснял как надо делать бекапы:
ставим слейв сервер, в момент бекапа, останавливаем синхронизацию на слейве с мастером, далее останавливаем слейв, далее копируем файлы базы данных (можно тем же Acronis True Image инкрементно),
запускаем слейв, включаем синхронизацию...
В этом случае вы гарантированно получаете срез базы данных на конкретную секунду, экономите место на диске, при проблемах на мастере время восстановления базы 10 минут.

alexeyp5
Сообщения: 28
Зарегистрирован: Пт ноя 06, 2009 11:15

Сообщение alexeyp5 »

Останавливать слейв не нужно. достаточно остановить синхронизацию.

#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 {} \;

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

Уважаемый, Вы не поняли. Евгений предлагает фантастический по своей сути вариант. Не дампим, а просто копируем. Плюсы этого решения в том, что реально время восстановления мастера равно времени копирования файлов. При дампе восстановление идет ооооочень долго из-за пересчета индексов. Есть еще дамп в csv и импорт из него, это быстрее чем просто дамп/ресторе, но медленнее чем простое копирование.

alexeyp5
Сообщения: 28
Зарегистрирован: Пт ноя 06, 2009 11:15

Сообщение alexeyp5 »

Ну можно конечно и так.

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

Кстати слышал краем уха, что Mysql давно умеет делать бекап по типу снапшотов. и остановка базы не нужна.
но так и не добрался почитать доки по этой теме =)

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

alexeyp5 писал(а):Ну можно конечно и так.

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

Кстати слышал краем уха, что Mysql давно умеет делать бекап по типу снапшотов. и остановка базы не нужна.
но так и не добрался почитать доки по этой теме =)
Счас есть слава богу архивация базы, а вот когда ее небыло, бекап с помошью mysqldump занимал нехилое время, а восстановление вообще несколько суток, так что копирование файлов это единственно приемлемый способ был. Хотя и счас тоже. Мы этим способом пользуемся уже не первый год, и на мой взгляд это самый безопасный способ. Да еще проследите чтобы бинлог хранился несколько суток. Краем уха я тоже слышал про снапшоты, но помоему там речь шла только о горячем копировании файлов муисам, и нет бесплатных инструментов для копирования иннодб базы.

moog
Сообщения: 15
Зарегистрирован: Пн фев 08, 2010 10:25

Сообщение moog »

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

Стоит ОС 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
Так в папке в которой указаны бекапы..сами файлы создаются,но они пустые,почему так?при запуске самого скрипта.бекап шикарно создается..

alexeyp5
Сообщения: 28
Зарегистрирован: Пт ноя 06, 2009 11:15

Сообщение alexeyp5 »

Сравните
cat /etc/crontab | grep PATH

Со своим пользовательским PATH

Либо пропишите полные пути в скрипте.

moog
Сообщения: 15
Зарегистрирован: Пн фев 08, 2010 10:25

Сообщение moog »

alexeyp5 писал(а):Сравните
cat /etc/crontab | grep PATH

Со своим пользовательским PATH

Либо пропишите полные пути в скрипте.
Вот что выдает при сравневании :

PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/var/backup ,т.е путь прописан,но все равно,пустые бекапы он делает..

Ответить