у нас настроена репликация базы данных, в которой мы реплицируем все таблицы базы данных на несколько рабочих серверов.
В базе данных также есть представления, хранимые процедуры, функции и т. Д., Которые вручную развертываются в репликах с помощью сценариев TSQL.
Теперь, если, например, к публикации добавляется новая таблица, мы должны повторно инициализировать все подписки, создав новый моментальный снимок и позволить ему доставляться через распространителя (который находится на том же сервере, что и публикация). Головная боль начинается, когда агент распространителя хочет отбросить таблицу, чтобы впоследствии воссоздать ее, на некоторые таблицы ссылаются представления, на которые также ссылаются другие объекты. Дистрибьютор не может (или не будет) отбрасывать объекты и выдает ошибку типа Cannot DROP TABLE 'dbo.table' because it is being referenced by object 'thisisafunctionorview'.
Раньше у нас также были представления, функции и хранимые процедуры в публикации, но это вызывало еще большую боль (повторную инициализацию приходилось выполнять после каждого незначительного изменения в процедурах и т. Д.), А также справочные проблемы, которые действительно расстраивали.
Чтобы решить эту проблему, мы должны удалить все функции и представления (всего около 200 объектов) и воссоздать их после того, как моментальный снимок был доставлен.
Есть ли у кого-нибудь идея, как мы могли бы изменить концепцию этой репликации, чтобы мы могли изменять объекты и не устанавливать массовое время простоя (около 2 часов для 6 реплик), чтобы исправить беспорядок из-за ссылок?
Для полноты информации: мы используем MS SQL Server 2008 R2 на всех экземплярах (с выпусками Enterprise и Standard). Обновление до SQL Server 2014 запланировано на конец этого года для издателя и некоторых подписчиков. Только Публикация требует доступа для записи. Обновления схемы базы данных развертываются часто (примерно два раза в месяц), обычно есть только изменения в процедурах, но иногда добавлялись / изменялись таблицы, вот где наша концепция репликации, кажется, разваливается.
Любые предложения приветствуются. Заранее спасибо!
С уважением Дэвид