Репликация сервера SQL с ограничениями? - PullRequest
1 голос
/ 09 ноября 2011

У меня в основном есть база данных и приложение, и я хочу создать вторую базу данных и второе приложение, которое работает в основном независимо.Настроить это легко, но сейчас мне нужно соединение между обоими, чтобы инструмент конфигурирования мог конфигурировать обе установки одновременно.В качестве простого примера можно предположить, что вся конфигурация выполняется только в одной таблице в базе данных.Таким образом, я в основном вижу два способа сделать это:

Изменить инструмент конфигурации, чтобы он мог выполнять запись на оба, а не только на один сервер, или использовать репликацию для передачи таблицы конфигурации из одной базы данных в другую.

Поскольку мне пришлось бы углубляться во множество старого кода, который я сам не писал, я бы предпочел, чтобы это было сделано путем репликации.Поскольку используется SQL Server 2008R2, у меня есть моментальная копия, репликация транзакций и репликация слиянием.Снимок - это плохо, потому что я хочу, чтобы все было "в реальном времени", а не так, как работают снимки.

Транзакционный звук и звук слияния довольно симпатичны, и я думаю, что оба были бы возможны, но у меня возникли некоторые проблемы с этим.Репликация транзакций убивает ограничения на подписчике, что недопустимо.Репликация слиянием не делает этого, но когда у меня работает вторая база данных, я не могу применить репликацию слиянием, потому что она хочет удалить таблицу, которая не может из-за существующих ограничений.

Я пытался настроить обаэти репликации без инициализации, но это не сработало вообще.Я думаю, мне нужно настроить что-то другое для этого, но я не знаю, что.

Есть ли способ заставить это работать так, как я хочу, или есть даже другой возможный способ, который я пропустил полностью?

1 Ответ

3 голосов
/ 09 ноября 2011

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

Хотя вас могут не устраивать параметры по умолчанию, предлагаемые репликацией транзакций, у вас есть большой контроль над его поведением.

Битовая маска параметров схемы, установленная при добавлении статьи в публикацию, позволяет вам контролировать практически все аспекты DDL, реплицируемого на подписчика - для получения полной информации см. Документацию по sp_addarticle , Графический интерфейс репликации предоставляет вам доступ к большинству этих параметров, но вам может понадобиться использовать сценарии T-SQL, чтобы получить именно то, что вам нужно. В настоящий момент у меня нет доступа к базе данных, чтобы проверить, все ли ограничения в проверке, ограничениях по умолчанию и внешних ключах отображаются в графическом интерфейсе.

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

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