Назад | Перейти на главную страницу

Подписчик репликации моментальных снимков SQL Server (редактируемый или только для чтения)

Мне нужно создать копию моей базы данных SQL 2008 R2 Enterprise и разместить ее на том же сервере, что и оригинал. Я буду использовать эту вторую копию базы данных в качестве целевого веб-сайта в основном только для чтения. Я понимаю, что если я создам эту копию базы данных с помощью репликации моментальных снимков, все изменения данных в базе данных подписчика будут перезаписаны в случае следующей репликации. Веб-приложение попытается выполнить запись в эту базу данных для записи попыток входа в систему и т. Д. И завершится ошибкой, если его исходная база данных доступна только для чтения. В моем случае мне не нужно хранить эти записи аудита, и поэтому они могут перезаписываться каждый раз, когда применяется новый снимок.

Мой вопрос в том, заставляет ли SQL Server базу данных подписчиков быть доступной только для чтения и есть ли способ обойти это?

Спасибо,

Нейт

SQL Server не делает подписывающуюся базу данных доступной только для чтения. Вы можете изменить таблицу, которая реплицируется на подписчике. Просто обратите внимание на следующие проблемы:

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

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

Вероятно, вы знаете, что можете создать обновляемую подписку с помощью репликации транзакций: http://technet.microsoft.com/en-us/library/ms152769(SQL.90).aspx