Стратегия передачи данных db между серверами sql

Я хотел бы получить несколько советов о наилучшем подходе к передаче данных БД с одного сервера SQL на другой.

Это мой сценарий:

  • Клиенты могут делать заказы на товары либо через наш веб-сайт (размещенный внешний интерфейс), либо через наш колл-центр в офисе (внутренний интерфейс).

  • Клиенты, вошедшие в систему, имеют баланс в долларах, который отображается на веб-сайте. Этот баланс извлекается из внутреннего sql. Этот баланс также доступен через колл-центр. Продукты, которые можно заказать, определяются этим балансом $$.

  • Заказы, сделанные из колл-центра, сохраняются во внутренней базе данных sql. Заказы, сделанные с веб-сайта, сохраняются во внешней базе данных sql, но их необходимо как можно скорее перенести в ту же внутреннюю базу данных sql, что и заказ колл-центра, чтобы группа выполнения заказов могла начать работу над ним. Команда выполнения заказов не имеет доступа к интерфейсу.

  • Баланс $$, отображаемый на веб-сайте, должен учитывать заказы, которые еще не были переведены в серверную часть. В настоящее время у нас есть битовый флаг «HasBeenTransferred» в записи заказа, указывающий, был ли он передан или нет.

Каким будет лучший способ для передачи этих заказов из нашего внешнего интерфейса в нашу серверную базу данных SQL?

Я изучил репликацию SQL, но проблема, с которой я столкнулся, заключается в том, что я не смогу надежно установить битовый флаг «HasBeenTransferred», используя этот метод, и это критично для работы системы.

Любая помощь будет принята с благодарностью.


person MakkyNZ    schedule 01.11.2010    source источник
comment
вероятно, следует также упомянуть, что нам не разрешено настраивать серверы ссылок, идущие от внешнего интерфейса к этому внутреннему, по соображениям безопасности.   -  person MakkyNZ    schedule 02.11.2010


Ответы (2)


Вы, вероятно, все еще должны рассмотреть вопрос о репликации для этого. Если не считать установки флажка, ваш сценарий идеально подходит для воспроизведения. И вы можете настроить репликацию, чтобы можно было установить флаг. Хотя, если вы используете репликацию транзакций, информация может быть передана до того, как кто-либо сможет оценить флаг «HasBeenTransferred».

person bobs    schedule 01.11.2010
comment
Как бы вы настроили репликацию, чтобы можно было установить флаг? - person MakkyNZ; 02.11.2010

Если вам нужно передать данные немедленно, используйте либо непрерывную репликацию SQL Server, либо триггер, который выполняет SPROC, который заполняет данные на другом сервере через вызов связанного сервера.

Если вам это не нужно немедленно, используйте задание SQL Server, которое синхронизирует данные через заданный интервал времени.

person RPM1984    schedule 01.11.2010
comment
да, проблема в том, что нам не разрешено настраивать серверы ссылок, идущие от внешнего интерфейса к этому внутреннему, по соображениям безопасности. - person MakkyNZ; 02.11.2010