Стратегия для передачи данных БД между серверами SQL - PullRequest
2 голосов
/ 02 ноября 2010

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

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

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

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

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 02 ноября 2010

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

0 голосов
/ 02 ноября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...