Синхронизация двух серверов

  • Автор темы Автор темы ReMaRk
  • Дата начала Дата начала

ReMaRk

Новичок
Синхронизация двух серверов

Подскажить идеи плиз... как можно периодично синхронизовать данные двух серверов? Имеется два сервера с MySQL и php на оных, на каждом сервере периодически вставляются, изменяются и удаляются данные из MySQL. Необходимо "зеркалить" все изменения. Как это реализовать программным путем?
На пальцах:
сервер "А" - база 1А, база 2А, база 1Б, база 2Б
севрер "Б" - база 1А, база 2А, база 1Б, база 2Б
на сервере "А" изменяются базы 1А, 2А
на сервере "Б" изменяются базы 1Б, 2Б
необходимо, чтоб на сервер "А" попадали (синхронизировались) данные из баз 1Б, 2Б сервера "Б", а на сервер "Б" данные из баз 1А, 2А сервера "А"
Базы 1Б, 2Б на сервере "А" не меняются;
Базы 1А, 2А на сервере "Б" не меняются.
 
Базы 1Б, 2Б на сервере "А" не меняются;
Базы 1А, 2А на сервере "Б" не меняются.
Ну тогда это не синхронизация, а обычный backup. Копируй файлы (ftp/nfs/...) и всё... Только лочить в shared mode на время копирования не забывай.
 
не совсем... бэкапы это немного затруднительно, один из серверов у хостеров, по этому и сложность...
 
а зачем мне каждый раз полные дампы получать таблиц?
они же разрастаются... хотелось бы только измененные получать записи и новые...
Как это можно сделать?
 
ну так установи как ты будешь определять новая у тебя это запись или старая и делай дамп только новых записей.

или выбирай данные при помощи SELECT INTO OUTFILE, а потом используй LOAD DATA вместе с REPLACE или IGNORE в зависимости от того, что тебе надо:

http://www.mysql.com/doc/en/LOAD_DATA.html
 
дык а как мне в частности на удаленном сервере автоматизировать процесс создания дампов?
 
по поводу автоматизации читай статью "PHP Почтовый робот и CRON". Хотя лучше программно из какого-нить планировщика
 
Запускай скрипт на серваке (если хош сэкономить) или пиши программку которая будет работать локально. А принцип синхронизации один - берешь набор измененных данных (по timestamp-у) из одной таблицы, по ключу обновляешь(добавляешь) к другой
 
так и сделана "первая часть марлезонского балета" загвоздка вся во второй части... как их вставлять на стороне удаленного сервера...?
 
да, некоторые провайдеры запрещают подключение к удаленному хосту с MySQL... Но таких - меньшинство...(если вы об этом), и тем более есть возможность выполнять скрипт на их стороне. А к вопросу обновления: знач.получили пакет обновления из таблицы 1 для таблицы 2. Далее если ключ1<max(ключ2)-> update, > -> insert
Или мы не поняли друг-друга?
 
мой провайдер входит в большинство (которые запрещают подключение к удаленному хосту)
 
Сверху