Корпорация Майкрософт распространяет Microsoft SQL Server 2008 с пакетом обновления 3 (SP3) и один из загружаемых файлов. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и все исправления для системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 с пакетом обновления 3 (SP3).
Проблемы
Рассмотрим следующий сценарий.
-
Вы настраиваете зеркальное отображение базы данных двух экземпляров Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2.
-
Вы настраиваете публикацию транзакций репликаций в базе данных, которая является основной базой данных для чтения и записи на основном сервере в партнерстве зеркального отображения базы данных. Инициализация репликации завершается, а затем синхронизируется с подписчиком.
-
Реплицированная база данных не передается с основного сервера на зеркальный сервер. Примечание. В этом случае бывший зеркальный сервер переключает роли, а база данных переходит в режим чтения и записи как новую основную базу данных.
-
Вы добавляете статью в публикацию в новом экземпляре участника. Инициализация репликации завершается, а затем синхронизируется с подписчиком.
-
В публикацию добавляется другая статья.
В этом случае появляются указанные ниже сообщения об ошибках.Сообщение об ошибке 1
Моментальный снимок не был создан, так как не требуется инициализация подписок.
Сообщение об ошибке 2
Сообщение 14058, уровень 16, состояние 1, процедура sp_MSrepl_addsubscription_article, Line 331Cannot создание подписки, так как она уже есть в базе данных подписки. В каждой базе данных подписки может быть только одна подписка на одну и ту же публикацию. Удалите подписку и при необходимости добавьте ее снова. Если проблема сохранится, возможно, метаданные репликации неверны. сведения об устранении неполадок см. в электронной документации
Примечание.Эта проблема по-прежнему возникает, если вы переключились на первоначальный экземпляр участника, а затем добавите ту же статью.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 R2 с пакетом обновления 2 (SP2)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 3. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 2 (SP2), щелкните следующий номер статьи базы знаний Майкрософт:
2754552 Накопительный пакет обновления 3 для SQL Server 2008 R2 с пакетом обновления 2 (SP2) Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск пакета обновления 2 (SP2) для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)
SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Исправление для этой проблемы впервые выпущено в накопительном обновлении 9. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 с пакетом обновления 1 (SP1), щелкните следующий номер статьи базы знаний Майкрософт:
2756574 Накопительный пакет обновления 9 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)
SQL Server 2008 с пакетом обновления 3
Исправление для этой проблемы впервые выпущено в накопительном обновлении 7 для SQL Server 2008 с пакетом обновления 3. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 с пакетом обновления 3 (SP3), щелкните следующий номер статьи базы знаний Майкрософт:
2738350 Накопительный пакет обновления 7 для SQL Server 2008 с пакетом обновления 3 (SP3)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 с пакетом обновления 3 (SP3). Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2629969 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2008
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Дополнительная информация
Дополнительные сведения о том, как настроить репликацию и зеркальное отображение базы данных, можно найти на веб-сайте MSDN по следующему адресу:
Настройка репликации и зеркального отображения базы данныхДополнительные сведения о зеркальном отображении базы данных можно найти на веб-сайте MSDN по следующему адресу:
Обходное решение
Чтобы устранить эту ошибку, проверьте, нет ли в списке sys. Servers.После добавления статьи server_id столбец и столбец syssubscriptions.srvid в активном экземпляре базы данных.Примечания.
-
Если столбцы не совпадают, необходимо добавить статью в публикацию из экземпляра, в котором они совпадают. Возможно, вам придется запланировать время бездействия для базы данных на экземпляре партнера.
-
Если в таблице syssubscriptions есть несколько значений srvid , удалите статью с другим значением srvid , от базу данных в экземпляр партнера, а затем снова добавьте статью.