backup mysql

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

backup mysql

Сообщение xxxupg »

Уважаемые!

Подскажите как Вы делаете бэкапы Вашей базы? так чтобы не надо было "стопать" билинг. Ищется самый "безопасный" способ учитывая что сервер с backup машиной будет находится в другом конце страны и возможны "обрывы" связи и не качественный канал между железками.

Аватара пользователя
ZeM
Сообщения: 371
Зарегистрирован: Чт фев 17, 2011 08:38

Сообщение ZeM »

А в чем проблема сбэкапится на диск и по scp копирнуть куда надо? Я бэкаплю не стопая биллинг. И все ресторю без каких то проблем.
Ну могу скриптом поделится он правда весьма прост. /usr/bin/mysqldump.

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

Сообщение xxxupg »

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

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

Сообщение Magnum72 »

xxxupg писал(а):ZeM вопрос такой, не получится ли так что во время бэкапа, залочится какая-то таблица в которую в этот же момент будет "записывать" что-то билинг? что собственно и приведёт к чему-то непредвиденному?
Именно так и получится.


По идее самое правильное:
1) Стопнуть биллинг,
2) Тормознуть репликацию на слейв
3) Запустить биллинг
4) Скопировать файл базы со слейва
5) Продолжить репликацию на слейв

Но так как биллинг падает частенько и без особых последствий то достаточно:
1) Тормознуть репликацию на слейв
2) Скопировать файл базы со слейва
3) Продолжить репликацию на слейв

Аватара пользователя
ZeM
Сообщения: 371
Зарегистрирован: Чт фев 17, 2011 08:38

Сообщение ZeM »

Согласен что самое лучшее останавливать utm5 core.
(Сам хочу сделать что то типа Heartbeat из 3 х тачек для mysql. Тема интересная. Физически пока нет серверов для экспериментов.)
Такое у меня происходит когда делается месячная копия в 4 утра. И запускается когда копия создалась.
Ну в моей ситуации все так. Во первых у меня raid 5 где базы лежат - физический вылет винтов не страшен - думаю у всех райды + 1 винт в hot spare (mdadm).
Во вторых если делаю бэкап на ходу то на тестовой копии билинга разворачиваю и все нормально без каких то проблем.
P.S. Может разработчики предложат "правильный" механизм дампа БД UTM средствами MYSQL/реализуют некий механизм бэкапа на уровне биллинга.
Кстати поправьте если ошибаюсь - когда ядро UTM остановлено - улетает в трубу вся статистика по юзеру на период остановки utm core и прочая инфа.
P.S.S. Кстати как то использовал mysqlhotcopy помимо (mysqldump --c ключом lock-tables - но тут есть минусы).
Хотя думаю еще в сторону LVM если там разместить только mysql и снимать образ тома без хлама.
Репликация тоже вариант но пока у меня нет возможности настроить хотя если кто то DROPнет что то - то этот косяк будет на обоих серверах.
Но на мой взгляд самый вариант бекапа на лету ---> это реплика и снятие бекапа с нее. И нет проблем с залоченными таблицами.
Ну идеального варианта нет вообщем.

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

Сообщение xxxupg »

Magnum72 можете скинуть конфиг слейв сервера который не "испортит" базу основного? слышал что после остановки слейва, снятия бэкапа и запуска слейва он тоже чтото может наделать с основной базой? или это всё просто решается прописыванием для слейва ограниченных только на чтение логина и пароля к sql?

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

Сообщение Magnum72 »

xxxupg писал(а):Magnum72 можете скинуть конфиг слейв сервера который не "испортит" базу основного? слышал что после остановки слейва, снятия бэкапа и запуска слейва он тоже чтото может наделать с основной базой? или это всё просто решается прописыванием для слейва ограниченных только на чтение логина и пароля к sql?
Как слейв может что-то сделать с мастером если он забирает с него только бинлоги?

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

Сообщение Magnum72 »

ZeM писал(а):Согласен что самое лучшее останавливать utm5 core.
(Сам хочу сделать что то типа Heartbeat из 3 х тачек для mysql. Тема интересная. Физически пока нет серверов для экспериментов.)
Такое у меня происходит когда делается месячная копия в 4 утра. И запускается когда копия создалась.
Ну в моей ситуации все так. Во первых у меня raid 5 где базы лежат - физический вылет винтов не страшен - думаю у всех райды + 1 винт в hot spare (mdadm).
Во вторых если делаю бэкап на ходу то на тестовой копии билинга разворачиваю и все нормально без каких то проблем.
P.S. Может разработчики предложат "правильный" механизм дампа БД UTM средствами MYSQL/реализуют некий механизм бэкапа на уровне биллинга.
Кстати поправьте если ошибаюсь - когда ядро UTM остановлено - улетает в трубу вся статистика по юзеру на период остановки utm core и прочая инфа.
P.S.S. Кстати как то использовал mysqlhotcopy помимо (mysqldump --c ключом lock-tables - но тут есть минусы).
Хотя думаю еще в сторону LVM если там разместить только mysql и снимать образ тома без хлама.
Репликация тоже вариант но пока у меня нет возможности настроить хотя если кто то DROPнет что то - то этот косяк будет на обоих серверах.
Но на мой взгляд самый вариант бекапа на лету ---> это реплика и снятие бекапа с нее. И нет проблем с залоченными таблицами.
Ну идеального варианта нет вообщем.
Самый идеальный вариант:
1) Сервер с рабочей версией базы
2) Сервер для горячей замены
3) Реплицируемый сервер с отложенный репликацией на х часов (мускул умеет начиная с 5.6)

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

Сообщение xxxupg »

Magnum72 писал(а):Как слейв может что-то сделать с мастером если он забирает с него только бинлоги?
Когда начал изуть вопрос про репликацию, прочёл статью ( http://habrahabr.ru/post/56702/ ), не понравился такой момент:
Переносим данные

Здесь нам придется заблокировать БД для записи. Для этого можно либо остановить работу приложений, либо воспользоваться установкой флажка read_only на мастере......
собственно это тоже приведёт к ничему хорошему :)
?

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

Сообщение xxxupg »

а еще вопрос про "извращённое" копирование, что если сделать так:

делаем на рабочей базе бэкап с помощью mysqldump, и в параметрах просто указываем что НЕ надо делать бэкап таблиц с сессиями (discount_transactions_all, discount_transactions_iptraffic_all, dhs_sessions_log, dhs_sessions_detail и их архивы... ) размер базы в данном случае у меня максимум 80Мб, бэкап занимает 20сек не думаю что чтото плохое может произойти?

p.s. задача - сохранить абонентскую базу для быстрого развёртывания "резервного" билинга со всеми счетами и т.п. но отчёты по сессиям не понадобятся.

Аватара пользователя
ZeM
Сообщения: 371
Зарегистрирован: Чт фев 17, 2011 08:38

Сообщение ZeM »

Ну если архивацию БД делаете - то потери минимальны. Там 7 архивных таблиц (отчеты по трафику и т.д.).
Если в конце дампа написано -- Dump completed on - то все огонь.

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

Сообщение xxxupg »

меня интересуют "потери" которые могут возникнуть в момент того когда я делаю бэкап а билинг чтото пишет в базу.

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

У меня настроена репликация и дамп делается со слейва, перед этим репликация останавливается, а после снова запускается. Проблем пока не видал.

Ответить