inpost
20.01.2013 - 19:17
Всем привет. Ежедневно админы делают бек-ап через
mysqldump , и на период создания бек-апов сайт падает из-за блокировки таблиц во время создания бек-апов. В итоге на таблицу в 25гб создаются такой командой бек-апы около 20-25 минут. Движок InnoDB.
Как верно создавать бек-апы так, чтобы сайт не ложился даже на 1 минуту?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Игорь_Vasinsky
20.01.2013 - 19:25
Цитата |
http://phpclub.ru/mysql/doc/mysqldump.html |
исходя из того текста - блокировка таблиц происходит преднамеренно
Цитата |
--add-locks Добавить команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы (для ускорения доступа к MySQL). |
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
borland
20.01.2013 - 19:27
А если попробовать через SSH это сделать?
Я бы посоветовал использовать репликации в MySQL.
Вы должны установите мастер и slave сервера.
Все права на чтение-запись в базу данных идут черер master-slave.
Цитата |
To use replication as a backup solution, replicate data from the master to a slave, and then back up the data slave. The slave can be paused and shut down without affecting the running operation of the master, so you can produce an effective snapshot of “live” data that would otherwise require the master to be shut down. |
Все backup-ы , после чего могут быть взяти через slave сервер ,без прерывания мастера.
Соотвественно Вы не лочите мастер,только slave.
Это стандартные процедуры,которые используют везде.
Вы не можите делать backup-ы ,не блокируя таблицы на чтение-запись.
Цитата |
The backup is performed against the read-only server, which then is changed back to its usual read/write operational status |
inpost
20.01.2013 - 19:59
OyemeТо есть блокировки не избежать? Значит сайт в любом случае будет падать? А как же фейсбук, гугл... неужели там не существует бек-апов?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Игорь_Vasinsky
20.01.2013 - 20:00
inpost
как я понял - Oyeme рекоменует тебе писать в 2 БД
с первой работать - со второй беккапить
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky Сервера.
У Вас всегда должно быть как минимум
2 сервера.
Вы делаете балансировку между серверами.Нагрузка распределяется равномерно между серверами.
В facebook десятки тысяч серверов,и все работают по принципу балансировки между друг другом.Выделаются отдельные сервера только на backup-ы.Отдельный сервер для кэша итд.
У Вас очень много данных.
Одним сервером Вам не обойтись.
inpost
20.01.2013 - 21:33
Я почитал про репликации, в целом понял, но есть кое-какие вопросы по этому поводу...
Это надо заказывать не 1 сервер, а 2, то есть второй сервер делать slave ? При этом необходимо хостерам платить как за 2 сервера?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Игорь_Vasinsky
20.01.2013 - 21:35
ну логично.
а чем плох вариант с 2мя БД - если hdd позволяет?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
inpost
20.01.2013 - 21:37
Я спрашиваю, потому что я могу неверно понимать, вдруг имеется ввиду на одном сервере создавать 2 отдельных Базы Данных. Или хотя бы разделить их винчестерами и всё, полноценный отдельный сервер не брать.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Игорь_Vasinsky
20.01.2013 - 21:39
нет, он меня поправил - подразумевалось несколько серверов, а не БД
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Узнайте у Вашего хостера,что они предлагают насчет репликаций.
Обычно это идет на одной огромной машине(например с 32 гигабайтами рама)
Создаются виртуальные сервера.
Например:
Первому в.серверу выделяться 4 гигабайт рама.
Второму в.серверу 8 гигабайт.
Итд.
Цитата |
VPS (англ. Virtual Private Server) или VDS (англ. Virtual Dedicated Server) — услуга, в рамках которой пользователю предоставляется так называемый Виртуальный выделенный сервер. В плане управления операционной системой по большей части она соответствует физическому выделенному серверу. В частности: root-доступ, собственные IP-адреса, порты, правила фильтрования и таблицы маршрутизации. |
http://ru.wikipedia.org/wiki/VPSКонечно Вам надо будет платить за это.
Это нормально.Ваша система ростет и растут потребности ее содержания.
В Вашем сайте более чем
25 гигабайт.Вы просто обязаны так делать.
При огромном количестве пользователей,Ваш сервер не сможет справляться с нагрузкой.К этому рано или поздно все приходят
Обычно этим занимаются админы.
Сотни конференций проходят ежедневно.Как и что лучше использовать.
Dezigo
20.01.2013 - 22:21
Я был на трёх конференции по VM. (Intel/Dell/HP).
Так для интереса ходил, так как на работе купили VM.
Один комп это не сервер, это старый век.
Так как при выходе у VM из строя одного из компонентов,то его легко заменить.
Так это выглядит ( в инете нашёл пример),не мой.
inpost
20.01.2013 - 22:33
Спасибо большое. Ещё несколько вопросов:
1) так как всё же лучше, делать через виртуальные машины, или всё же ставить 2 отдельных компа(сервера) ?
2) Oyeme, ты пишешь, что 32мб разбивается на 8мб, и т.д. разве это не будет плохо? Разве не лучше один с максимальными ресурсами для производительности?
3) Репликации настраивают админы, в целом понятно, ставится связь между серверами. Моя роль как программиста в данном случае какая должна быть? Должен ли я в своих скриптах что-то менять, или репликация - это техническая сторона без изменения скриптов?
4) Будет ли в таком случае большая нагрузка на основной сервер, ведь запросы все будут идти к нему, и он же создавать логи запросов для реплик?
5) Если будут дублироваться все запросы на второй сервер (реплику), значит на него будет аналогичная нагрузка как и на основной (INSERT,UPDATE,DELETE) ? В таком случае можно будет распределить только запросами SELECT между master и slave ? Я правильно понимаю, что именно распределение SELECT так же поможет уменьшить нагрузку на сервер и это было бы целесообразно использовать?
Извиняюсь за такие нубские вопросы, первый раз сталкиваюсь с необходимостью репликаций.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
inpost
20.01.2013 - 22:36
6) Ой, последний вопрос. К основной теме, MASTER делает запись в БД, кроме этого создает .txt (к примеру) файл со всеми запросами, которые необходимо сделать для SLAVE. В этот момент SLAVE запускается бек-ап, то получается, что он сначала сделает back-up, и только потом заберёт все запросы из созданного файла? В таком случае, если мы будем использовать бек-апы, то блокировка будет в любом случае, поэтому если мы делаем бек-апы, то 1 сервер специально для бек-апов только, а несколько других пойдут для распределения SELECT запросов?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.