Параметры для обработки поврежденного MSDB файла PDF
Спецификации: Мы используем SQL Server 2005 с репликацией транзакций.
Наш файл MSDB .LDF недавно был поврежден, в результате чего база данных MSDB была помечена как "подозрительная". Мы прочитали кучу вещей онлайн и узнали, что для исправления этого вам нужно либо восстановить из резервной копии, либо перестроить MSDB из сценария установки sql.
Поскольку у нас нет резервной копии, мы попытались запустить скрипт установки instmsdb.sql (после сброса базы данных msdb, запустив службу сервера sql, используя параметры запуска -T3806 -m -c и все такое прочее).
Это было успешно, поэтому я планировал перестроить дистрибутивные базы данных и издателей, а затем заново инициализировать подписчиков. Однако, когда я пытался получить доступ к чему-либо в меню Sql Server Mgmt Studio, касающемуся репликации, я получал ошибку об отсутствующих таблицах в msdb. Одна из конкретных ошибок - "недопустимый объект msdb.dbo.MSdistributordbs".
Поэтому я решил, что система находится в промежуточном состоянии - таблица системы распределения создана, но необходимые для репликации таблицы и sps отсутствуют в базе данных msdb.
Итак, мой вопрос один из:
- Какие сценарии или хранимые процедуры необходимо запустить, чтобы msdb был готов к репликации, и / или
- Как вручную удалить издателей и другие объекты, связанные с репликацией, чтобы я мог заново создать все компоненты репликации?
- Можно ли даже загрузить MSDB без файла PDF, где я пропустил?
Редактировать: еще одна вещь, которую я попробовал - я включил репликацию на сервере подписчика, скопировал его MSDB и файлы журнала на "плохой" сервер, и попытался прикрепить их. Однако я забыл, что базы данных будут несовместимы, так как издатель - SQL Server 2005, а подписчик - SQL Server 2008. Вздох. Это могло бы сработать иначе (по крайней мере, дошло до того, что я мог удалить и воссоздать репликацию).
(И как примечание, наш 'sysadmin', отвечающий за сценарии резервного копирования базы данных, не делал резервных копий ни одной из системных баз данных. Это было исправлено. Вздох).
2 ответа
Вы можете прикрепить базу данных только с mdf. это ссылка на системный хранимый процесс, который будет это делать, она также содержит ссылку на актуальный оператор CREATE DATABASE, который заменил этот процесс. Я не знаю, как это будет работать с системной базой данных.
Другой вариант - этот документ, который объясняет, как удалить репликацию с помощью системных хранимых вызовов proc. Мне пришлось использовать его один раз, чтобы починить реплицированную базу данных, в которой крутились скейлеры. Я не могу вспомнить детали, но студия управления не позволила бы вам удалить репликацию, потому что она не была настроена, и вы не могли создать публикацию, потому что она уже существовала.
ОБНОВЛЕНИЕ: Вы пытались использовать процедуру sp_dropdistributor. Я попробую это, затем попробую пересоздать / настроить издателя и распространителя.
Прошло много времени с тех пор, как мне приходилось использовать репликацию (и, возможно, вы пробовали это), но разве вы не можете использовать мастер, чтобы отключить издатель и дистрибутив db, а затем снова включить их?