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