Репликация базы данных Advantage - PullRequest
1 голос
/ 15 января 2011

У меня есть клиент, который хочет, чтобы два сайта могли синхронизировать базы данных, чтобы информация на сайте A могла синхронизироваться с сайтом B, чтобы два сайта могли просматривать одни и те же данные.

Я недаже уверен в необходимой инфраструктуре.Требуется ли VPN для подключения двух баз данных или будет работать база данных на базе Интернета, т.е. / сайт A - база данных Internet, а сайт B - база данных Internet.Каждый сайт периодически копирует в него данные, а затем база данных InternetDatabase синхронизирует их, и сайты могут затем извлекать данные.

Моя другая мысль была чем-то вроде Dropbox.Если сайт A и сайт B используют учетную запись Dropbox для синхронизации файлов ADT и т. Д., Может ли база данных на каждом сайте затем синхронизироваться с этими файлами ADT?

Спасибо

1 Ответ

2 голосов
/ 15 января 2011

Если два сайта обновляют совершенно разные таблицы, то для этого может подойти что-то вроде Dropbox.Dropbox не синхронизирует / объединяет содержимое файлов.Это означает, что если сайт A и сайт B обновили какой-либо файл, то вы должны были бы написать код для объединения изменений.

Сервер баз данных Advantage поддерживает репликацию, встроенную изначально,так что это, вероятно, будет самым простым решением.Репликация Advantage выполняется для каждой отдельной записи и обрабатывается асинхронно.Если целевая база данных не может быть достигнута, обновления сохраняются в очереди и периодически обрабатываются.Если соединение между двумя сайтами открыто / доступно постоянно, задержка между исходным обновлением и реплицированным обновлением обычно невелика, но, очевидно, зависит от пропускной способности сети и задержки.

Вы можете использовать VPN для соединения между двумя сайтами, но это не требуется.Если вы не используете какой-либо тип VPN, вы должны убедиться, что связь между двумя сайтами зашифрована (это вариант при настройке подписок).

Редактировать Длясвязь, все, что вам нужно, это "нормальное" подключение к сети.Основная проблема связана с такими вещами, как брандмауэры и NAT.С Advantage вы определяете, какой порт он использует.Если вы используете соединение TCP / IP, вам нужно убедиться, что настроенный порт разрешает входящие соединения с процессом ads.exe.Вы также можете использовать UDP, но если вы имеете дело с межсетевыми экранами, то, вероятно, будет проще с TCP.

Ваш вопрос о дубликатах ключей - хороший.Если оба сайта добавляют запись с одинаковым первичным ключом или одновременно обновляют одну и ту же запись, это приводит к конфликту.Существует возможность просто игнорировать конфликты, и в этом случае выигрывает последнее обновление.Более реалистично, вы бы хотели написать триггер ON CONFLICT для разрешения конфликтов.

...