Сценарий
В нашей схеме репликации мы реплицируем несколько таблиц, включая таблицу photos
, которая содержит данные двоичного изображения. Все остальные таблицы воспроизводятся должным образом, а таблица фотографий - нет. Я подозреваю, что это связано с большим объемом данных в таблице фотографий или, возможно, потому, что данные изображения представляют собой поле varbinary
. Однако использование меньших varbinary
полей не помогло.
Информация о конфигурации
Вот некоторая информация о конфигурации:
- Каждое изображение может иметь размер от 65 до 120 Кб.
- Редакция и утвержденная копия хранятся вместе с эскизами, поэтому одна строка может достигать ~ 800 КБ.
- Однажды у меня были проблемы с полем конфигурации
max text repl size
, но я установил его на максимальное значение, используяsp_configure
иreconfigure with override
- Фотографии фильтруются на основе поля «опубликовано», как и другие рабочие таблицы.
- Базы данных используют один и тот же локальный сервер базы данных (в среде разработки) и настроены для репликации транзакций.
- Реплицированная база данных использует «принудительную» подписку.
Кроме того, я заметил, что иногда восстановление снимка и повторная инициализация подписки приводили к репликации изображений. Принимая это во внимание, я настроил агент моментальных снимков для регенерации моментального снимка каждую минуту или около того для целей отладки (очевидно, это излишек для производственной среды). Однако это не помогло.
Вопрос
Что является причиной того, что таблица photos
не реплицируется, в то время как у всех остальных нет проблем? Это можно обойти? Если нет, как мне продолжить отладку?
Примечания
Я использовал SQL Server Profiler для поиска ошибок, а также монитор репликации. Ошибок нет. Насколько я могу судить, операция просто терпит неудачу.
Я использую SQL Server 2005 с пакетом обновления 3 в Windows Server 2003 с пакетом обновления 2.
[Обновить]
Я на собственном опыте убедился, что Филипп Грондье абсолютно прав в своем ответе ниже. Изображения, видео и другие двоичные файлы не должны храниться в базе данных. IIS обрабатывает эти файлы гораздо эффективнее, чем я.