Представленные в этом разделе сведения помогают устранять неполадки репликации базы данных SQL Server сайта.

В реплике SQL Server содержатся устаревшие реплицированные объекты

При настройке репликации базы данных сайта подлежащие репликации объекты изменяются, что может привести к их устареванию при репликации таблиц базы данных. Если это происходит, в файлы журналов ddm.log и dataldr.log могут заноситься сообщения об ошибках следующего вида:

SQL-cообщение Microsoft SQL Server 2801, серьезность 16: [42000][2801][Microsoft][ODBC SQL Server Driver][SQL Server]Определение объекта 'sp_GetPublicKeyForSMSID' изменилось с момента компиляции. : sp_GetPublicKeyForSMSID

Решение

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

Примечание
Эта процедура использует объект sp_GetPublicKeyForSMSID, указанных в примере сообщения об ошибке в журнале. Данную процедуру можно применять к любому элементу репликации, вызвавшему такую ошибку и указанному в файле ddm.log или dataldr.log.

Обновление объектов, которые необходимо реплицировать на компьютере издателя SQL Server

  1. В консоли Среды SQL Server Management Studio SQL Server 2005, подключенной к серверу SQL Server, на котором размещена реплика базы данных, разверните узел Базы данных, щелкните правой кнопкой мыши имя базы данных и выберите команду Создать запрос.

  2. В области результатов запроса введите следующие команды:

    EXEC sp_recompile GetPublicKeyForSMSID

  3. Нажмите кнопку Выполнить, чтобы начать перенастройку.

  4. Проверьте, что подлежащий репликации объект успешно помечен для повторной компиляции в области сообщений.

Сообщение об ошибке 500 SMS_MP_CONTROL_MANAGER

Если во время настройки для точки управления доступа к данным сайта через реплицированную базу данных SQL Server сайта эта база данных функционирует некорректно, диспетчер точки управления (SMS_MP_CONTROL_MANAGER) выдает сообщение об ошибке 500. Поскольку диспетчер точки управления пытается получить информацию точки управления так же, как это делают клиенты, он возвращает ту же ошибку, которую вернули бы клиенты, если бы им не удалось получить доступ к информации точки управления.

Решение

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

См. также