У нас было две базы данных на одном экземпляре SQL Server 2005 с репликацией транзакций между ними (3 таблицы в качестве статей). Этот сервер действовал как издатель и распространитель.
Тогда RAID на сервере не удалось. Однако нам удалось отсоединить и скопировать почти все .mdf
файлы перед сбоем.
После восстановления системы мы переустановили SQL Server, восстановили системные базы данных (master, model, msdb) и разместили .mdf
файлы по тем же путям. Так и началось.
Проблема появилась с репликацией. Папка « Локальные публикации » была пуста, хотя папка « Локальные подписки » содержала соответствующую подписку. Когда я попытался добавить новую публикацию, я получил:
Мастер New Publication Wizard обнаружил одну или несколько ошибок при получении названий публикаций.
Возникла исключительная ситуация при выполнении оператора или пакета Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)
Неверное имя объекта 'dbo.syspublications'. (Microsoft SQL Server, ошибка: 208)
Я решил попробовать удалить левую подписку (в конце концов мне удалось) и отключить публикацию и распространение на сервере, что дало мне:
SQL Server не удалось отключить публикацию и распространение на «someserver».
Неверное имя объекта 'dbo.syssubscription'. Число транзакций после EXECUTE указывает на отсутствие оператора COMMIT или ROLLBACK TRANSACTION. Предыдущий счетчик = 0, текущий счетчик = 1. Счетчик транзакций после EXECUTE указывает, что отсутствует оператор COMMIT или ROLLBACK TRANSACTION. Предыдущий счетчик = 0, текущий счетчик = 1. Счетчик транзакций после EXECUTE указывает, что отсутствует оператор COMMIT или ROLLBACK TRANSACTION. Предыдущий счетчик = 0, текущий счетчик = 1. Счетчик транзакций после EXECUTE указывает, что отсутствует оператор COMMIT или ROLLBACK TRANSACTION. Предыдущий счетчик = 0, текущий счетчик = 1. Счетчик транзакций после EXECUTE указывает, что отсутствует оператор COMMIT или ROLLBACK TRANSACTION. Предыдущий счетчик = 0, текущий счетчик = 1. Изменен контекст базы данных на «ведущий». (Microsoft SQL Server, ошибка: 208)
Кажется, что некоторая информация не была восстановлена из резервных копий базы данных системы (возможно, в distribution
базе данных что-то отсутствует).
Также я пытался следовать ответу, приведенному в невозможности отключить публикацию и распространение . Но безуспешно. Я пытался создать syspublications
как в master
и distribution
, но ничего не изменилось.
Итак, как я могу заставить репликацию работать на этом сервере?
Пытался опубликовать какую-то другую базу данных на сервере, и это сработало. Таким образом, проблема, похоже, связана с опубликованной базой данных. Как я могу прояснить ситуацию, чтобы создать новую публикацию поверх нее?
System Tables
В подпапке проблемной базы данных отсутствуют таблицы репликации, которые создаются при публикации базы данных.
В мониторе репликации я вижу эти старые подписки, хотя они не доступны в папке репликации .