Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.
Синхронизация зеркал
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Ивансон
- phpBB 1.4.1
- Сообщения: 48
- Стаж: 16 лет 1 месяц
- Благодарил (а): 3 раза
Синхронизация зеркал
Господа, подскажите как реализовать синхронизацию двух сайтов расположенных на разных хостингах? Нужно чтобы хотя бы раз в день копировалась база данных с одного сайта на другой, за исключением инфы стилей и конфига.
-
PorohoD
- phpBB 1.0.0
- Сообщения: 7
- Стаж: 15 лет 3 месяца
Re: Синхронизация зеркал
Некропостером прошу не считать, но присоединюсь к вопросу.
Есть два хостинга: основной и зеркало
как сделать их синхронизацию раз в пол часа
Движок PhpBB 3.0.8
Есть два хостинга: основной и зеркало
как сделать их синхронизацию раз в пол часа
Движок PhpBB 3.0.8
-
PorohoD
- phpBB 1.0.0
- Сообщения: 7
- Стаж: 15 лет 3 месяца
Re: Синхронизация зеркал
потому что есть недоброжилатели которые основной хостинг периодически ДДоСят, и в случае падения основного надо чтобы продолжал работать резервный хост с полностью идентичной (актуально) базой
-
PorohoD
- phpBB 1.0.0
- Сообщения: 7
- Стаж: 15 лет 3 месяца
-
MIT
- Former team member
- Сообщения: 2500
- Стаж: 17 лет 7 месяцев
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 3 раза
- Поблагодарили: 351 раз
Re: Синхронизация зеркал
И что? Если к сайту есть доступ у простого пользователя, доступ будет и у злоумышленников.
-
PorohoD
- phpBB 1.0.0
- Сообщения: 7
- Стаж: 15 лет 3 месяца
-
MIT
- Former team member
- Сообщения: 2500
- Стаж: 17 лет 7 месяцев
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 3 раза
- Поблагодарили: 351 раз
Re: Синхронизация зеркал
Большая. Зачем делать вещи, не имеющие смысла и не приносящие пользы? Выбранное решение проблемы не всегда является оптимальным и наиболее верным. Если тебе надо защищаться от DDoS`а, то надо именно защищаться, а не ерундой страдать.
А что до синхронизации — крон тебе в помощь, пусть с одного сервака на другой через SSH кидается дамп базы, а также новые вложения и аваторки. Но второй хост будет в режиме ReadOnly, по-другому твоя задача с таким подходом нерешаема. Только не говори что у тебя шаред-хостинг и ты не знаешь что такое SSH и Cron.
А что до синхронизации — крон тебе в помощь, пусть с одного сервака на другой через SSH кидается дамп базы, а также новые вложения и аваторки. Но второй хост будет в режиме ReadOnly, по-другому твоя задача с таким подходом нерешаема. Только не говори что у тебя шаред-хостинг и ты не знаешь что такое SSH и Cron.
-
PorohoD
- phpBB 1.0.0
- Сообщения: 7
- Стаж: 15 лет 3 месяца
Re: Синхронизация зеркал
нет не шаред, что такое ссш знаю, а вот крон что то где то слышал но никогда не видел
-
PorohoD
- phpBB 1.0.0
- Сообщения: 7
- Стаж: 15 лет 3 месяца
Re: Синхронизация зеркал
предположим, мне нужен второй зеркальный хост на случай неизвестного падения первого, а не для защиты от ддоса, какие варианты есть тогда?
-
MIT
- Former team member
- Сообщения: 2500
- Стаж: 17 лет 7 месяцев
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 3 раза
- Поблагодарили: 351 раз
Re: Синхронизация зеркал
Если тебе нужен второй хост в режиме ReadOnly, то схема, вкратце описанная выше, тебе подойдёт.
Если же тебе необходимы два параллельно работающих хоста, то вариантов несколько:
1) Использование одной базы данных. Подразумевается, что база существует в одном экземпляре и к ней одновременно подключены два хоста. Данный подход требует некоторых изменений скрипта форума (для использования разных таблиц конфигурации, например), однако стоит понимать, что падение сервера, на котором находится база, приведёт к неработоспособности обоих хостов. Как вариант, база может находится на третьем сервере, к которому подключаются оба форума.
2) На каждом из серверов имеется своя собственная база, все изменения проходят в режиме репликации в реальном времени. При грамотной модернизации скрипта форума можно добиться независимости форумов друг от друга, однако подобное решение довольно сложно в реализации.
Если же тебе необходимы два параллельно работающих хоста, то вариантов несколько:
1) Использование одной базы данных. Подразумевается, что база существует в одном экземпляре и к ней одновременно подключены два хоста. Данный подход требует некоторых изменений скрипта форума (для использования разных таблиц конфигурации, например), однако стоит понимать, что падение сервера, на котором находится база, приведёт к неработоспособности обоих хостов. Как вариант, база может находится на третьем сервере, к которому подключаются оба форума.
2) На каждом из серверов имеется своя собственная база, все изменения проходят в режиме репликации в реальном времени. При грамотной модернизации скрипта форума можно добиться независимости форумов друг от друга, однако подобное решение довольно сложно в реализации.
-
PorohoD
- phpBB 1.0.0
- Сообщения: 7
- Стаж: 15 лет 3 месяца
-
MIT
- Former team member
- Сообщения: 2500
- Стаж: 17 лет 7 месяцев
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 3 раза
- Поблагодарили: 351 раз
Re: Синхронизация зеркал
Если подразумевается использование локальных серверов баз данных, то система может быть раелизована следующим образом:
Каждый из форумов запросы на изменение структуры/данных (UPDATE, INSERT, DELETE и т.п.) должен поочерёдно выполнить в двух базах. Сначала в своей базе, затем удалённо подключиться ко второму серверу и выполнить команды там.
Реализовать подобную синхронизацию можно либо общими транзакциями (если не выполнилось на втором хосте, то не выполнять и на локальном), а можно через систему отложенных заданий.
Работать она может так: если сервер выполнил команду в своей базе, но ему не удалось выполнить её на удалённой, то команда записывается в специальный журнал отложенных заданий. Второй форум, при каждой инициализации, должен запрашивать у первого этот журнал и выполнять команды по нему локальной транзакцией в строгой очерёдности, а после успешного их выполнения сообщать первому, что журнал можно очистить. И наоборот.
При этом надо осознавать, что не каждый запрос на изменение должен подвергаться репликации (вспомним, опять же, про таблицу конфигурации). Также необходимо реализовать систему локальной блокировки базы данных на время отработки команд из журнала, что бы более поздние запросы реального времени не вызвали конфликт с отложенными.
Однако такая реализация абсолютно непригодна для построения систем защиты от DDoS`а. Она не только не поможет, но и с радостью перегрузит второй хост, если атака направлена на нагрузку сервера, а не забивку канала. К тому же система достаточно сложна в реализации, а при каких-либо конструктивных ошибках возможна потеря важных данных.
Если же возвращаться к проблеме высоких нагрузок, то куда как лучше подойдут системы одноранговой репликации транзакций, построенные, например, на основе нескольких узлов MSSQL. Не знаю насчёт аналогичных комплексных решений для MySQL, но Microsoft потратила немало усилий на создание довольно мощных инструментов в версии Server 2008.
Так что если хочешь попрактиковаться в написании подобных систем — пожалуйста. Но уверяю, от DDoS`а ты не защитишься (разве что если рассматривать другие два варианта синхронной работы, которые я описал выше). А если тебе нужна реальная защита, то почитай инфу по MSSQL, например тут: http://msdn.microsoft.com/ru-ru/library/ms151196.aspx. При желании можно построить даже отказоустойчивый кластер, но это уже и деньги и знания нужны существенные.
Каждый из форумов запросы на изменение структуры/данных (UPDATE, INSERT, DELETE и т.п.) должен поочерёдно выполнить в двух базах. Сначала в своей базе, затем удалённо подключиться ко второму серверу и выполнить команды там.
Реализовать подобную синхронизацию можно либо общими транзакциями (если не выполнилось на втором хосте, то не выполнять и на локальном), а можно через систему отложенных заданий.
Работать она может так: если сервер выполнил команду в своей базе, но ему не удалось выполнить её на удалённой, то команда записывается в специальный журнал отложенных заданий. Второй форум, при каждой инициализации, должен запрашивать у первого этот журнал и выполнять команды по нему локальной транзакцией в строгой очерёдности, а после успешного их выполнения сообщать первому, что журнал можно очистить. И наоборот.
При этом надо осознавать, что не каждый запрос на изменение должен подвергаться репликации (вспомним, опять же, про таблицу конфигурации). Также необходимо реализовать систему локальной блокировки базы данных на время отработки команд из журнала, что бы более поздние запросы реального времени не вызвали конфликт с отложенными.
Однако такая реализация абсолютно непригодна для построения систем защиты от DDoS`а. Она не только не поможет, но и с радостью перегрузит второй хост, если атака направлена на нагрузку сервера, а не забивку канала. К тому же система достаточно сложна в реализации, а при каких-либо конструктивных ошибках возможна потеря важных данных.
Если же возвращаться к проблеме высоких нагрузок, то куда как лучше подойдут системы одноранговой репликации транзакций, построенные, например, на основе нескольких узлов MSSQL. Не знаю насчёт аналогичных комплексных решений для MySQL, но Microsoft потратила немало усилий на создание довольно мощных инструментов в версии Server 2008.
Так что если хочешь попрактиковаться в написании подобных систем — пожалуйста. Но уверяю, от DDoS`а ты не защитишься (разве что если рассматривать другие два варианта синхронной работы, которые я описал выше). А если тебе нужна реальная защита, то почитай инфу по MSSQL, например тут: http://msdn.microsoft.com/ru-ru/library/ms151196.aspx. При желании можно построить даже отказоустойчивый кластер, но это уже и деньги и знания нужны существенные.

