Здравствуйте народ.
Есть схема:
Тут по подробнее...
Есть центральный офис с внутренним web-сервером, юзер на сервере может произвести настройку своего добавочного, номера (перевод звонка на другой добавочный или сотовый и т.д.), данные хранятся в MySQL в центральном офисе и реплицируется (master-slave) на локальные БД в филиалах, откуда данные считываются Asterisk'ом и выполняются определенные действия при входящем звонке. В свою очередь, в филиалах Asterisk'и пишут информацию о всех звонках в локальные БД.
Хочу все данные из филиальных БД перекидывать в БД в центральном офисе, чтобы статистику по звонкам можно было бы прикрутить к тому же web-серверу
где пользователи настраивают свои добавочные.
Есть одно НО!. Время отклика до некоторых филиалов может достигать 200-500 ms, поэтому предложения по поводу, "заставить писать филиальные asterisk'и непосредственно в БД ЦО" отпадают, т.к. в момент записи данных в БД, филиальный aster начинает безбожно тупить и звонок увеличивает продолжительность на 5-8-10 сек. Вроде и не много но, очень утомительно, кстати, именно поэтому была настроена репликация из ЦО в филиалы, чтобы астеры на местах не простаивали при поиске данных в БД ЦО.
Что можете посоветовать на счет обратного перемещения данных?
У меня есть мысль, запускать в cron'е mysqldump и выходной файл передавать на сервер в ЦО. Теоретически, периодичность выполнения скрипта не имеет значения, лучше, конечно, меньше чтобы хоть немножко на realtime было бы похоже но, и период в 5-10-15-20 минут тоже пойдут.
Думал на счет репликации master-master но, проблема в том что в таблицах могут дублироваться uniqueid, а это не есть гуд... да и с автоинкрементом не совсем правильно получается...
Есть проект spider for mysql но, что-то я не догоняю, как там что делается, да и, мне кажется, не то это...
Так как, что в этом случае можно придумать?
Спасибо всем заранее за идеи.
Нужен совет по поводу репликации нескольких БД MySQL в одну.
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- Lazy caT
- мл. сержант
- Сообщения: 101
- Зарегистрирован: 2008-09-11 9:59:17
- Откуда: Местные мы...
- Контактная информация:
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Alvares
- прапорщик
- Сообщения: 485
- Зарегистрирован: 2008-07-10 12:48:08
- Откуда: Воронеж
- Контактная информация:
Re: Нужен совет по поводу репликации нескольких БД MySQL в о
А для каждого подразделения свой ключ ввести и по нему сливать/раздавать данные в таблицах?
Бог создал людей сильными и слабыми. Сэмюэл Кольт сделал их равными...
- Lazy caT
- мл. сержант
- Сообщения: 101
- Зарегистрирован: 2008-09-11 9:59:17
- Откуда: Местные мы...
- Контактная информация:
Re: Нужен совет по поводу репликации нескольких БД MySQL в о
Спасибо за предложение... Как я понимаю, предложение касается репликации типа master-master?...Alvares писал(а):А для каждого подразделения свой ключ ввести и по нему сливать/раздавать данные в таблицах?
В этом случае вопрос. Как грамотно организовать репликацию типа master-master, несколькими мастерами и одним слэйвом?
В филиальских БД, думаю, я смогу добавить какой-нибудь признак (к примеру, поле в таблице, которое будет идентифицировать записи БД)
Хотя, хотя... не, может не сработать... Астер пишет в БД вполне определенный набор данных. Я, конечно, попробую их подменить в момент
записи в БД но, не уверен что это сработает.
- Alvares
- прапорщик
- Сообщения: 485
- Зарегистрирован: 2008-07-10 12:48:08
- Откуда: Воронеж
- Контактная информация:
Re: Нужен совет по поводу репликации нескольких БД MySQL в о
Да не, зачем? Я предлагал проще - в филиале выгружается содержимое таблицы в файл, жать, пересылать в ГО и инсертить в базу ГО. Своего рода отложенная репликация, да еще и с бекапом. Только выгружать и инсертить можно не всё подряд, а только необходимые данные. Я так понимаю, просто для статистики?
Бог создал людей сильными и слабыми. Сэмюэл Кольт сделал их равными...
- Lazy caT
- мл. сержант
- Сообщения: 101
- Зарегистрирован: 2008-09-11 9:59:17
- Откуда: Местные мы...
- Контактная информация:
Re: Нужен совет по поводу репликации нескольких БД MySQL в о
Спасибо всем за участие... Настроил всё без обратной репликации в MySQL.
В Asterisk есть возможность отложенного сохранения данных CDR. Я настроил запись CDR каждые 5-10 минут, непосредственно в БД центрального офиса.
Практическое применение показало, проблем при работе asterisk не замечено, даже при больших задержках в сети. И нечего было мудрить с обратной репликацией.
Видимо я изначально не совсем корректно выразился... Астер начинает безбожно тупить когда читает данные из MySQL. Пишет он данные нормально.
В Asterisk есть возможность отложенного сохранения данных CDR. Я настроил запись CDR каждые 5-10 минут, непосредственно в БД центрального офиса.
Практическое применение показало, проблем при работе asterisk не замечено, даже при больших задержках в сети. И нечего было мудрить с обратной репликацией.
Видимо я изначально не совсем корректно выразился... Астер начинает безбожно тупить когда читает данные из MySQL. Пишет он данные нормально.