EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

Синхронизация зеркал
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
Синхронизация зеркал
Автор Сообщение
Dis
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 23.07.2007
Сообщения: 224
Откуда: Российская Федерация, Белгород
13935 Монеты

СообщениеДобавлено: Вс, 01 Фев, 2009 03:28    Заголовок сообщения: Синхронизация зеркал Ответить с цитатой

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

Отсюда вытекает вопрос: сталкивался ли кто-нибудь с такой проблемой, если да - как удавалось её решать.

Буду благодарен, если без нравоучений о пользе Гугла кто-то даст полезные ссылки на понятные материалы; поскольку мои поиски привели к чтению уж слишком специфической литературы.
_________________
"Псих!", - подумал Ёжик

"Если абсурд и существует, то лишь во вселенной человека"
- Альбер Камю
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Вс, 01 Фев, 2009 05:50    Заголовок сообщения: Ответить с цитатой

1) mysql replication - далее гугл
2а) по крону один архивирует [ и грузит] измененные за период файлы и всю или часть БД[.я использую LinuxShell + mysqldump).
[если загрузки не происходила - уведомляет зеркало о готовности файлов, зеркало само забирает файлы.(я использую LinuxShell + wget)]
2б) разархивирует данные и применяет изменения.
3) логировать запросы, отличные от SELECT. с файлами см пп2.
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dis
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 23.07.2007
Сообщения: 224
Откуда: Российская Федерация, Белгород
13935 Монеты

СообщениеДобавлено: Пн, 02 Фев, 2009 22:38    Заголовок сообщения: Ответить с цитатой

lazutov
Благодарю. Пока вопросов больше нет, буду пробовать.
_________________
"Псих!", - подумал Ёжик

"Если абсурд и существует, то лишь во вселенной человека"
- Альбер Камю
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Вт, 03 Фев, 2009 06:40    Заголовок сообщения: Ответить с цитатой

можно такой алгоритм, сервер-зеркало для каждой записи в БД хранит дату и время её модификации, когда от главного сервера поступает команда объединения он выбирает все измененые записи + все измененые файлы сайта (тут простой алгоритм обхода всех каталогов сайта с проверкой времени модификации) все архивирует и передает главному серверу тот выполняет обратную операцию.
Этот алгоритм возможен в обе стороны, т.е. каждый сервер создает архив файлов и бд и передает другому. Основная проблема если возможна не только добавления новых записей, но и редактирование и удаления записей, в этом случае возможна ситуация, что одна запись (или файл) будет изменена сразу на двух серверах в этом случае алгоритм репликации очень сильно усложняется.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dis
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 23.07.2007
Сообщения: 224
Откуда: Российская Федерация, Белгород
13935 Монеты

СообщениеДобавлено: Вт, 03 Фев, 2009 22:06    Заголовок сообщения: Ответить с цитатой

Веденин
Весьма признателен, идея интересная. Особенно если учесть, что пока нет необходимости синхронизировать оба сайта, достаточно в одну сторону.

Единственное, в чём возникают сомнения - не слишком ли сложно предложенное Вами решение? Имею в виду, что было бы проще копировать всю базу целиком, а не выбирать построчно модифицированные записи. Разве нет?
_________________
"Псих!", - подумал Ёжик

"Если абсурд и существует, то лишь во вселенной человека"
- Альбер Камю
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Вт, 03 Фев, 2009 22:25    Заголовок сообщения: Ответить с цитатой

Dis писал(а):
Веденин
Единственное, в чём возникают сомнения - не слишком ли сложно предложенное Вами решение? Имею в виду, что было бы проще копировать всю базу целиком, а не выбирать построчно модифицированные записи. Разве нет?


Если у вас база 5 Мб, то проблем тут нет проще конечно целиком, если 500Мб в zip архиве, тогда только выбор модифицированных. C точки зрения производительности можно хранить только дату модификации и построить по полю даты модификации индекс, по идее все должно быстро выбиратся.

Просто я привык чаще работать с Oracl'aми и MS Servera'ми, где все базу тащить постоянно накладно мягко говоря.

P.S. Возможно есть какое то продуктовое решение на уровне MySQL, скорее всего о нем говорил lazutov (mysql replication) для репликации нескольких зеркал
P.P.S. Если объемы сайтов небольшие, то можно по простому архив всей базы + архив всех файлов (ну может кроме скриптов CMS) и передать его на другой сервер, там разархивация и все.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Dis
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 23.07.2007
Сообщения: 224
Откуда: Российская Федерация, Белгород
13935 Монеты

СообщениеДобавлено: Вт, 03 Фев, 2009 22:45    Заголовок сообщения: Ответить с цитатой

Веденин писал(а):
передать его на другой сервер, там разархивация и все.

Вот в этом и загвоздка. Установить задания архивации для cron - не такая уж проблема; мой вопрос скорее заключается в том, каким способом автоматически связать два сервера и запустить процесс передачи.
_________________
"Псих!", - подумал Ёжик

"Если абсурд и существует, то лишь во вселенной человека"
- Альбер Камю
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Ср, 04 Фев, 2009 06:11    Заголовок сообщения: Ответить с цитатой

Dis
ssh или даже netcat.
Если это сделать нельзя, то можно написать на php скрипт, которому методом POST по http отправлять файл с архивом и он уже будет его распаковывать и восстанавливать.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Ср, 04 Фев, 2009 15:13    Заголовок сообщения: Ответить с цитатой

Dis писал(а):
Веденин писал(а):
передать его на другой сервер, там разархивация и все.

Вот в этом и загвоздка. Установить задания архивации для cron - не такая уж проблема; мой вопрос скорее заключается в том, каким способом автоматически связать два сервера и запустить процесс передачи.

Имхо, создаете zip файл на одном сервере, потом file_get_content если архив небольшой или fopen, fread и fwrite, если архив большой по моему должно работать
Правда, это не совсем безопасно (если боитесь что архив вашего сайта могут украсть), но если директория закрыта для просмотра, имя zip генерится случайным образом и zip удаляется после скачивания то вполне возможно, впрочем файл с паролями лучше в архив не добавлять.

Цитата:
ssh или даже netcat.
Если это сделать нельзя, то можно написать на php скрипт, которому методом POST по http отправлять файл с архивом

Хм, а в чем это лучше fopen, fread и fwrite c зеркала? В скорости или затрат производительности у ssh или POST ИМХО преимущества не будет.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Ср, 04 Фев, 2009 15:32    Заголовок сообщения: Ответить с цитатой

Веденин писал(а):
Правда, это не совсем безопасно

Вот в этом и преимущество.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Ср, 04 Фев, 2009 15:52    Заголовок сообщения: Ответить с цитатой

Alek$ писал(а):
Веденин писал(а):
Правда, это не совсем безопасно

Вот в этом и преимущество.

Ну тут тоже можно придумать много вещей кроме описанных выше, например отдавать zip только при запросе с указанного ip адреса или знающего определенный пароль (например выдавать архив с адреса export.php?password=2rytuwe8759827982) или закрыть директорию паролем и открывать её принимающим сервером и т.п. ssh использовать не обязательно, кстати метод передачи через POST вообще ужасно не безопасный, так как при при моем методе самое страшное это потеря архива, то при методе POST хакер легко сможет залить любую инфу на ваш главный сервер.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Ср, 04 Фев, 2009 16:14    Заголовок сообщения: Ответить с цитатой

Веденин
у меня это реализовано передачей в запросе ключа, который генерируется в зависимости от дня недели, и даты.
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dis
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 23.07.2007
Сообщения: 224
Откуда: Российская Федерация, Белгород
13935 Монеты

СообщениеДобавлено: Чт, 05 Фев, 2009 00:09    Заголовок сообщения: Ответить с цитатой

Alek$, Веденин благодарю вас за советы; при этом признаю свой промах - мне следовало бы конкретнее описать ситуацию. Возможно, в этом случае и вы будете избавлены от нецелевых рассуждений.

Написать скрипт, будь-то с методом POST, либо "fopen" - несложно. Трудность в том, что мне, к сожалению, не доводилось писать их с использованием внешних соединений.

Да, дилетант; поэтому в пределах одного сайта эти скрипты у меня работают, а все попытки "внедрения" параметров подключения к другим серверам окончились безуспешно. Либо статья по этой теме мне попалась неподходящая, либо что-то сам напутал. Но многократные проверки и переписывание результата не дали.
_________________
"Псих!", - подумал Ёжик

"Если абсурд и существует, то лишь во вселенной человека"
- Альбер Камю
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
lazutov
while (1==1);
Последний герой


Зарегистрирован: 30.04.2007
Сообщения: 3840

111220 Монеты

СообщениеДобавлено: Чт, 05 Фев, 2009 05:37    Заголовок сообщения: Ответить с цитатой

Скрипты сюда.
Мой кот-телепат уехал.
_________________
сервис DNS | разные http, DNS и прочие утилиты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Чт, 05 Фев, 2009 08:34    Заголовок сообщения: Ответить с цитатой

Dis писал(а):

Написать скрипт, будь-то с методом POST, либо "fopen" - несложно. Трудность в том, что мне, к сожалению, не доводилось писать их с использованием внешних соединений.

Насколько помню fopen'у просто укзывается url документа на внешнем сайте и все он должен с ним работа (имеется в виду только на чтение)

Dis писал(а):

Да, дилетант; поэтому в пределах одного сайта эти скрипты у меня работают, а все попытки "внедрения" параметров подключения к другим серверам окончились безуспешно. Либо статья по этой теме мне попалась неподходящая, либо что-то сам напутал. Но многократные проверки и переписывание результата не дали.

Вы уверены, что сервер настроен правильно и хостер просто не запретил использование fopen с внешними серверами?
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group


Рейтинг SIMPLETOP.NET