Jump to content
XPEnology Community

Авто-бэкап БД в PHPMyAdmin или как?


Recommended Posts

Всех с Новым Годом и наступающим Рождеством Христовым!

 

Создаю сайт с магазином на Prestashop из Апп-центра на сервере.

 

Подскажите пожалуйста, как смастерить авто-бэкапирование БД?

Бэкап всех файлов сайта организован автоматически, средствами моего 1-го сервера (на котором сайт), на 2-ой сервер по любому расписанию, или необходимости.

А вот с бэкапом БД пока не разобрался, т.е. делаю экспорт БД сайта в PhPMyAdmin вручную, после бэкапа файлов сайта. А как настроить в PhPMyAdmin автоматическое бэкапирование БД по расписанию (как с файлами сайта)? Чтоб, допустим раз в 2 суток автоматом выполнялся бэкап БД сайта (в свою папку на 2-ом сервере).

 

Спасибо.

Link to comment
Share on other sites

Я нашел куда запилить виртуалочку :smile:

mysqldump ttrss -u ttrss -p123 > /volume1/1/backup.sql

mysqldump ;комманда

ttrss ;имя базы

-u ttrss ;имя пользователя для доступа к базе. раздельно

-p123 ;пароль 123. Обязательно слитно.

> /volume1/1/backup.sql ;символ > означает сохранить из базы и дальше путь к файлу. можно написать mysqldump ttrss -u ttrss -p123 < /volume1/1/backup.sql и это восстановит базу из бэкапа.

 

сам скрипт я запускаю через планировщик от root.

Link to comment
Share on other sites

Спасибо, почитал по ссылке, почти понял (я далёк от командной строки), но не понял, как должен называться файл бэкапа.

Если БД называется testshop, то так вроде должен называться файл бэкапа testshop.sql ? (если из PHPMyAdmin экспорт - так называется)

 

И за пример спасибо, т.е.:

 

mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshop.sql

 

и получаю бэкап нужной БД локально, в указанной папке, по расписанию в планировщике?

А есть возможность ложить файл бэкапа по сети, на другой сервер? И вопрос в файле бэкапа - он один и каждый раз будет перезаписан?

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

 

В PHPMyAdmin есть настройка репликации, но моих скудных знаний хватило понять, что на втором сервере будет такая же БД, синхронизируемая с Основной. Но есть ли возможность откатиться к БД нужной даты?

 

С бэкапом файлов сайта тоже погорячился, сейчас буду разбираться. Думал уже есть возможность указать для репликации конкретную папку, а не всю общего доступа. У Qnap есть. Тоже хотелось бы каждый бэкап папки сайта testshop, отдельной папкой.

Link to comment
Share on other sites

Файл бэкапа может называться как угодно. Для добавления даты в имя файла:

 mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql

на выходе получится файл: testshopDB_2016-01-06_20_07.sql

Второй сервер на какой операционке работает?

Файлы проще забирать вторым сервером из папки на первом.

Edited by Guest
Link to comment
Share on other sites

Для архивации файлов сайта проще всего использовать встроенный архиватор tar:

tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/*

Архиватор tar

 

/volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar куда положить и как назвать файл

/volume1/web/testshop/* путь к папке с сайтом и * - архивировать все файлы и подпапки

Link to comment
Share on other sites

Файл бэкапа может называться как угодно. Для добавления даты в имя файла:

 mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql

на выходе получится файл: testshopDB_2016-01-06_20_07.sql

Второй сервер на какой операционке работает?

Оба сервера одинаковы, в подписи.

Файлы проще забирать вторым сервером из папки на первом.

Не соображу, как. Ежели забирать вторым сервером по сети, то забирать и файл бэкапа БД, и файлов сайта.

Edited by Guest
Link to comment
Share on other sites

Для архивации файлов сайта проще всего использовать встроенный архиватор tar:

tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/*

Архиватор tar

 

/volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar куда положить и как назвать файл

/volume1/web/testshop/* путь к папке с сайтом и * - архивировать все файлы и подпапки

 

Т.е. использовать не репликацию/резервирование, а использовать встроенный архиватор tar, и планировщик задач с заданиями, для запуска скриптов по созданию и бэкапа БД, и файлов сайта?

И таким образом я получаю желаемый результат бэкапов по установленным в планировщике параметрам/датам?

Буду пробовать реализовать.

 

Спасибо.

Со Святым вечером и Рождеством Христовым!

Link to comment
Share on other sites

Т.е. использовать не репликацию/резервирование, а использовать встроенный архиватор tar, и планировщик задач с заданиями, для запуска скриптов по созданию и бэкапа БД, и файлов сайта?

И таким образом я получаю желаемый результат бэкапов по установленным в планировщике параметрам/датам?

Буду пробовать реализовать.

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

 

На первом сервере получается:

mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql
tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/*
find /volume1/public/testshopbackup/ -type f -mtime +7 -delete

и включить службу FTP сервера

 

На втором сервере.

wget -P /volume1/testshopbackup_server2/ --user=admin --password 123 -nc ftp://192.168.1.37/public/testshopbackup/testshop*.*
find /volume1/public/testshopbackup/ -type f -mtime +30 -delete

Manpage:wget

 

-P /volume1/testshopbackup_server2/ папка в которую будет качать wget

--user=admin --password 123 пользователь и пароль от ftp на первом сервере. обязательно два минуса.

-nc пропускать уже скачанные файлы

ftp://192.168.1.37/public/testshopbackup/testshop*.* откуда собственно качать файлы. ну и адрес сервера и путь к файлам свои подставить

find /volume1/public/testshopbackup/ -type f -mtime +7 -delete удаляет в папке файлы старше 7 и 30 дней соответственно.

 

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

  • Like 1
Link to comment
Share on other sites

Мы слушаем, восхищаемся и жуем попркорн :wink:. Не правда круто. Прямо тру линуксвэй...

Из умного (но для меня чужого опыта) можно задействовать cloudstation (делать копию архива на win, др. syno и т.д.) и cloud Sync (выкладывать в облако хранящее старые копии [вроде dropbox и еще кто-то умеет] шифрованные архивы). Только это все скорее отказоустойчивость...

Link to comment
Share on other sites

Всех с Рождеством Христовым!

 

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

 

Именно, т.е. полный как бы срез сайта в опред промежуток времени.

 

На первом сервере получается:

mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql
tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/*
find /volume1/public/testshopbackup/ -type f -mtime +7 -delete

и включить службу FTP сервера

 

На втором сервере.

wget -P /volume1/testshopbackup_server2/ --user=admin --password 123 -nc ftp://192.168.1.37/public/testshopbackup/testshop*.*
find /volume1/public/testshopbackup/ -type f -mtime +30 -delete

Manpage:wget

 

-P /volume1/testshopbackup_server2/ папка в которую будет качать wget

--user=admin --password 123 пользователь и пароль от ftp на первом сервере. обязательно два минуса.

-nc пропускать уже скачанные файлы

ftp://192.168.1.37/public/testshopbackup/testshop*.* откуда собственно качать файлы. ну и адрес сервера и путь к файлам свои подставить

find /volume1/public/testshopbackup/ -type f -mtime +7 -delete удаляет в папке файлы старше 7 и 30 дней соответственно.

 

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

 

Вот это да. Спасибище. Попробую разобраться с этим трешем, и воспроизвести для своих железок.

Link to comment
Share on other sites

Мы слушаем, восхищаемся и жуем попркорн :wink:. Не правда круто. Прямо тру линуксвэй...

Да, скоро азы начну понимать.

Из умного (но для меня чужого опыта) можно задействовать cloudstation (делать копию архива на win, др. syno и т.д.) и cloud Sync (выкладывать в облако хранящее старые копии [вроде dropbox и еще кто-то умеет] шифрованные архивы). Только это все скорее отказоустойчивость...

Есть dropbox. Не охота внешнее хранение использовать. Три сервака в сетке - места суммарно почти 15 ТБ.

Link to comment
Share on other sites

Три сервака в сетке - места суммарно почти 15 ТБ.

Приличный объем. У меня все скромнее. Главное что бы электричество не подвело. У меня один раз свет мигнул - прощай два БП PC, встроенный на материнки LAN, и Роутер с 5 Lan портами превратился в Wi-Fi репитор.

Link to comment
Share on other sites

Три сервака в сетке - места суммарно почти 15 ТБ.

Приличный объем. У меня все скромнее. Главное что бы электричество не подвело. У меня один раз свет мигнул - прощай два БП PC, встроенный на материнки LAN, и Роутер с 5 Lan портами превратился в Wi-Fi репитор.

 

Про Qnap забыл, итого почти 18 ТБ. Фильмотека (все блю-рей) + музыка (Hi-Res).

 

С электричеством так нельзя. Я тоже как-то раз халатно отнесся к подводу интернета в свой демо-офис (114 м кабель 6 кат для наружных работ, с крыши дома, по наружной стене). Возьми и прилепи сразу два грозо-разрядника по 15$, тем более имея в офисе реальную землю. Неа, ЛЕНЬ, все же работает, итернет есть, полный гигабит, ну а кабель; да и ладно, он натянут по углу, не достанет. Ага! Первая нормальная гроза и считаем минусы:

минус роутер - 120 долл.

минус свич с ПоЕ 4 порта Хьюлит П - 107 долл. стоял за рутером, спас вроде все остальное

минус кабель от прова ко мне (видать сплавилась изоляция на жилах) и теперь имею полных 100 мбит/с вместо 1000 (на уцелевших жилах)

минус свич провайдера (зато теперь и они землю дотянули до своего нового свича)

минус соответственно сумма на все переделки. Думаю весной прокинуть оптику, вместо меди с крыши, и закрыть эту печальку.

 

Но на данный момент, вся моя сеть выглядит так: на входном калеченном кабеле - грозо-разрядники и на стороне прова, и на моей стороне с заземлением, далее - роутер, свичи, РС, сервера, IP камеры, контроллеры и все то, что постоянно в локалке работает - воткнуто в сетевые фильтры и далее на ИБП, которых 2 шт. ИБП обычные АРС 650 вроде. Всё чётко.

Link to comment
Share on other sites

На первом сервере получается:

mysqldump testshop -u testshop -ptestshop > /volume1/public/testshopbackup/testshopDB_`date +%Y-%m-%d_%H_%M`.sql
tar -cf /volume1/public/testshopbackup/testshopFiles_`date +%Y-%m-%d_%H_%M`.tar /volume1/web/testshop/*
find /volume1/public/testshopbackup/ -type f -mtime +7 -delete

и включить службу FTP сервера

 

На втором сервере.

wget -P /volume1/testshopbackup_server2/ --user=admin --password 123 -nc ftp://192.168.1.37/public/testshopbackup/testshop*.*
find /volume1/public/testshopbackup/ -type f -mtime +30 -delete

 

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

А возможно в планировщике задач в Поле Скрипт ввести все три строки команд (как ранее было две строки при ручном обновлении DSM)?

И соответственно три строки на втором сервере.

Link to comment
Share on other sites

Спасибо огромное, всё получилось: по расписанию выполняет бэкапы, второй сервер забирает (пронаблюдал даже)!

С датами - все четко.

Команды вписал сразу все в одну задачу: и на 1, и соответственно на 2 сервере. Вроде работает.

 

Но возник вопрос. Перед запуском выполнения задач, сделал экспорт БД из PHPMyAdmin. Затем пронаблюдал выполнение задач, смотрю, что размеры файлов БД разные. Из PHPMyAdmin экпорт 2,8 МБ, а полученный дамп по команде - 2,6 МБ. Или он поджимается и это нормально?

Link to comment
Share on other sites

Скорее всего phpmyadmin дописывает служебную инфу для себя. Точно незнаю. Бэкап базы можно открыть любым текстовым редактором и сравнить. Можно загрузить бэкап в соседнюю тестовую базу и проверить все ли нормально

Link to comment
Share on other sites

  • 2 months later...

to antihrist2002

Привет.

 

Недавно пробовал развернуть сайт из бэкапа - получилось. Единственно, в бэкапе файлов сайта, после распаковки архива, не было одного файла (по сравнению с бэкапом папки сайта с сервера на РС через WinSCP). Забыл, как называется файл (не очень я сайтовод), но методом сравнения добавил недостающий файл. В общем вроде все поднялось и работает, и даже обновил копию без проблем. Ещё раз спасибо.

 

На днях потренируюсь ещё, вспомню, что отсутствовало. Отпишусь.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...