Jump to content

Backup MySQL на удаленный сервер


Recommended Posts

Есть сервер с поднятым на нем биллингом. На расстоянии двух пачкордов от него стоит сетевой HDD.Задача: раз в сутки должна делаться копия всей MySQL базы, так же несколько каталогов с файлами билинга архивироваться и все это по FTP заливаться на сетевой HDD. При этом хотелось бы чтоб софтина автоматом проверяла на наличие старых архивов на ФТП серваке и автоматически удаляла все старше одной недели.Кто что посоветует?

Link to post
Share on other sites

Если база на отдельном разделе, то можно делать snapshot файловой системы, если нет, то mysqldump. Заливать бекап базы и файлы лучше не по FTP, а с помощью rsync. Архивировать gzip.

Удалять все что старше недели

/usr/bin/find /home/backup -name "*.gz" -mtime +7d -delete

Link to post
Share on other sites

Percona XtraBackup + то что советовали выше (rsync + отслеживание даты создания).

Link to post
Share on other sites

для одного из тривиальных серверов я делал резервирование в 3 источника.

 

1.Local Storage

2.FTP

3.Amazon S3

 

Локальное хранилище хранит резервные копии за 31 день

FTP сервер хранит все резервные копии.

Amazon S3 хранит за 31 день истории.

 

Резервируются файлы и база данных биллинга.

директории файлов соответственно Include и exclude, чтобы избежать избыточности.

 

пример упростил, потому как у меня таблицы лочатся, на время выполнения дампа и конечно же не вся БД сливается.

репликация конечно классно, но в данном случае малоэффективна.

 

 

#!/bin/sh

FILENAME=billing_files
INCFILE="/etc/backup/include.lst"
EXCFILE="/etc/backup/exclude.lst"
NOW=`date "+%Y-%m-%d"`
TMPNAME=/root/backup/billing/$FILENAME-$NOW.tar.bz2
tar -jc -T $INCFILE -X $EXCFILE --absolute-names -f $TMPNAME

#create sql dump
/usr/bin/mysqldump -uusernname -ppassword namedb | /usr/bin/bzip2 > /root/backup/billing/db_billing_$NOW.bz2

#rotate files
cd /root/backup/billing;
find . -name \*.tar.bz2 -mtime +31 -delete
find . -name \*.bz2 -mtime +31 -delete

#upload to FTP server
/usr/bin/lftp -u billing_backup,billing_backuppassword 1.2.3.4 -e "mput $FILENAME-$NOW.tar.bz2;quit"
/usr/bin/lftp -u billing_backup,billing_backuppassword 1.2.3.4 -e "mput db_billing_$NOW.bz2;quit"

#Amazon
/usr/local/bin//s3cmd-1.0.1/s3cmd --acl-private --bucket-location=EU --guess-mime-type --delete-removed sync /root/backup/billing s3://billing/

Link to post
Share on other sites

репликация конечно классно, но в данном случае малоэффективна.

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

Link to post
Share on other sites

репликация конечно классно, но в данном случае малоэффективна.

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

ну в данном случае есть только NAS :)

Link to post
Share on other sites

для одного из тривиальных серверов я делал резервирование в 3 источника.

 

1.Local Storage

2.FTP

3.Amazon S3

 

Локальное хранилище хранит резервные копии за 31 день

FTP сервер хранит все резервные копии.

Amazon S3 хранит за 31 день истории.

 

Резервируются файлы и база данных биллинга.

директории файлов соответственно Include и exclude, чтобы избежать избыточности.

 

пример упростил, потому как у меня таблицы лочатся, на время выполнения дампа и конечно же не вся БД сливается.

репликация конечно классно, но в данном случае малоэффективна.

 

 

#!/bin/sh

FILENAME=billing_files
INCFILE="/etc/backup/include.lst"
EXCFILE="/etc/backup/exclude.lst"
NOW=`date "+%Y-%m-%d"`
TMPNAME=/root/backup/billing/$FILENAME-$NOW.tar.bz2
tar -jc -T $INCFILE -X $EXCFILE --absolute-names -f $TMPNAME

#create sql dump
/usr/bin/mysqldump -uusernname -ppassword namedb | /usr/bin/bzip2 > /root/backup/billing/db_billing_$NOW.bz2

#rotate files
cd /root/backup/billing;
find . -name \*.tar.bz2 -mtime +31 -delete
find . -name \*.bz2 -mtime +31 -delete

#upload to FTP server
/usr/bin/lftp -u billing_backup,billing_backuppassword 1.2.3.4 -e "mput $FILENAME-$NOW.tar.bz2;quit"
/usr/bin/lftp -u billing_backup,billing_backuppassword 1.2.3.4 -e "mput db_billing_$NOW.bz2;quit"

#Amazon
/usr/local/bin//s3cmd-1.0.1/s3cmd --acl-private --bucket-location=EU --guess-mime-type --delete-removed sync /root/backup/billing s3://billing/

а можно увидеть листинг файлов /etc/backup/exclude.lst и etc/backup/include.lst

Спасибо!

Link to post
Share on other sites

include.lst:

/usr/local/billing

/var/www/html/billing

 

exclude.lst

/usr/local/billing/sql-cache/

огромное спасибо!

 

а команда такого плана будет работать? т.е. задача удалять старые архивы с ФТП автоматом...

 

/usr/bin/lftp -u billing_backup,billing_backuppassword 1.2.3.4 -e "mput $FILENAME-$NOW.tar.bz2;find . -name \*.tar.bz2 -mtime +31 -delete;quit"

Link to post
Share on other sites
а команда такого плана будет работать? т.е. задача удалять старые архивы с ФТП автоматом...

нет, lftp просто сливает данные.

в частности команда mput

 

для задачи с удалением данных, лучше подойдет какой-то синхронизатор.

делать ftp велосипед не нужно, он должен получать массив данных с сервера, сравнивать с существующим, или же сравнивать даты создания файлов.

rsync например

Link to post
Share on other sites
а команда такого плана будет работать? т.е. задача удалять старые архивы с ФТП автоматом...

нет, lftp просто сливает данные.

в частности команда mput

 

для задачи с удалением данных, лучше подойдет какой-то синхронизатор.

делать ftp велосипед не нужно, он должен получать массив данных с сервера, сравнивать с существующим, или же сравнивать даты создания файлов.

rsync например

ок! Понял!

подумаю на счет rsync

Link to post
Share on other sites

А поподробней что за NAS большинство сейчас поддерживает базы данных или установку альтернативных прошивок.?

Если умеет NFS.

То NFS+http://sourceforge.net/projects/automysqlbackup/ и будет вам счастье без никакого гемора.

Но вариант со слейв базой ИМХО самый оптимальный по многим причинам.

Link to post
Share on other sites

А поподробней что за NAS большинство сейчас поддерживает базы данных или установку альтернативных прошивок.?

Если умеет NFS.

То NFS+http://sourceforge.net/projects/automysqlbackup/ и будет вам счастье без никакого гемора.

Но вариант со слейв базой ИМХО самый оптимальный по многим причинам.

NAS Buffalo LinkStation Live - LS-CHL Внутри винт на 2 Тб

Link to post
Share on other sites

Пишут что мукуль есть если со слейвом вариант не нравится то тогда по smb монтировать и лить. Но я бы совместил эти два варианта.

Link to post
Share on other sites

Пишут что мукуль есть если со слейвом вариант не нравится то тогда по smb монтировать и лить. Но я бы совместил эти два варианта.

сделал скриптом, которым поделился Saanchezz. Мне кажется что если не дай Бог что-то случится (тьфу-тьфу-тьфу) этими архивами будет проще всего восстановить работоспособность биллинга

Link to post
Share on other sites

Смотри вариант на насе резерв билинга когда основной упал он там се спокойно работает хоть и тормозит. Бэкапишь БД если нужно откатиться.

Link to post
Share on other sites

Смотри вариант на насе резерв билинга когда основной упал он там се спокойно работает хоть и тормозит. Бэкапишь БД если нужно откатиться.

я писал какой у меня нас... На нем биллинг я не запущу... на сайте производителя красивое описание, но реально там все намного примитивней...
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Karfax
      Всем привет!
       
      Делал миграцию ubilling на новую машину - установил новыю юбилинг в режиме "миграция с существующего сервера", затем вкатил дамп БД.
      Всё перенеслось нормально, но вот только заметил что Пользователи (Система/Права администраторов) не переносится. В дампе БД даже нет намека на этих пользователей. Скажите, где находится их конфиг?
    • By Hope
      IPTV потоки для любых проектов  как основные так и бекап.
      UA AZ AM RUS DE TUR BL UK USA Ge Pribaltika  sport all
      писать в личку .
    • By ixer
      Привіт! Потрібен сервер з онлайн ~ 90% у робочий час. Від 2Тб простору з можливістю в майбутньому розширитись при необхідності. Доступ по FTP, чи інше (що запропонуєте). Під реселінг, тобто я буду надавати доступ до конкретних даних конкретним користувачам, і для цього потрібна можливість створювати користувачів самостійно. Великий трафік в нічний час. Бажано гігабітний канал для швидкого завантаження даних користувачів. Пріоритет - мінімальна ціна та гарантія захисту даних від втрати. 
    • By Oleg2018
      При переносе биллинга на новый сервер сделал восстановоление базы строго по инструкции. Все данные получил. Пользователи работают. Но есть проблема, при создание копии базы через вебинтерфейс создается файл с размер 100 килобайт. База при переносе занимала 18 мегабайт. При проверке целосности базы нашел проблему из представлением op_customers выдает ошибку  #1449 - The user specified as a definer ('root'@'%') does not exist. Кто решал и как эту проблему
    • By bulgar
      Коллеги, очередной вопрос по BDCOM OLT
       
      BDCOM(tm) P3608-2TE Software, Version 10.1.0E Build 46085 Copyright by Shanghai Baud Data Communication CO. LTD.  
      Даём интернет абонентам по схеме vlan-per-user. Не используем темплейты вовсе, настраиваем все онушки ручками. Конфиг онушки всегда примерно следующего вида:
      interface EPON0/1:4 description Trineva-23 epon onu description Trineva-23 epon onu port 1 ctc vlan mode tag 1104 priority 0 Собственно в чем сабж - при бэкапе конфига посредством костылей (скрипт на копирование по tftp запланированный в cron) скачивается конфиг несколько иного вида:
      interface EPON0/1:4 description Trineva-23 epon onu description Trineva-23 Соответственно, при (НЕ ДАЙ БОГ!) выхода из строя пона и залива бэкапа на другой пон - все онушки придётся настраивать ручками, что при использовании даже 4-х лазерного пона мягко говоря вызывает благоговейный ужас. Есть какой-то ритуальный танец для слива полного актуального конфига? Или, возможно, кто-то мостил ещё более извращенные костыли - буду благодарен за ЛЮБОЙ вариант решения данной проблемы.
×
×
  • Create New...