2010-11-01 3 views
2

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

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

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

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

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

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

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

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

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

+0

, вероятно, также следует упомянуть о том, что нам не разрешено устанавливать серверы ссылок, идущие от внешнего интерфейса к этому серверу по соображениям безопасности. – MakkyNZ

ответ

2

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

+0

Как бы вы «настроили репликацию, чтобы установить флаг»? – MakkyNZ

0

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

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

+0

Да, проблема заключается в том, что нам не разрешено настраивать серверы ссылок, идущие от внешнего интерфейса к этому серверу по соображениям безопасности. – MakkyNZ

Смежные вопросы