Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с базой Distribution  [new]
nk13
Member

Откуда:
Сообщений: 137
Между двумя серверами настроена репликация. На сервере издателя по какой-то причине бд distribution перешла в состояние "ожидание восстановления" в связи с чем в данный момент все репликации скорее всего не работают. При попытке просмотреть агент либо состояние какой-либо подписки или публикации выдается ошибка:

+

ЗАГОЛОВОК: Свойства подписки
------------------------------

SQL Server не удалось завершить операцию.

Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft SQL Server&ProdVer=11.0.5058.0&EvtSrc=Microsoft.SqlServer.Management.UI.SubscriptionPropertiesErrorSR&EvtID=CantComplete&LinkId=20476

------------------------------
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

Произошла ошибка при попытке доступа к подписке. (Свойства подписки)

------------------------------

При выполнении инструкции или пакета Transact-SQL возникло исключение. (Microsoft.SqlServer.Rmo)

------------------------------

Database 'distribution' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details. (Microsoft SQL Server, ошибка: 945)

Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft SQL Server&ProdVer=11.00.5058&EvtSrc=MSSQLServer&EvtID=945&LinkId=20476

------------------------------
КНОПКИ:

ОК
------------------------------



Если посмотреть журнал ошибок, то выдается два сообщения:

+
Дата 03.05.2016 21:55:00
Журнал Агент SQL Server (Текущий - 03.05.2016 21:45:00)

Сообщение
[298] Ошибка SQLServer: 18456, Login failed for user 'LOGIN'. [SQLSTATE 28000]

Все права логина корректны, срок действия не ограничен.

Вторая ошибка:
+
Дата 03.05.2016 21:55:00
Журнал Агент SQL Server (Текущий - 03.05.2016 21:45:00)

Сообщение
[298] Ошибка SQLServer: 4060, Cannot open database "distribution" requested by the login. The login failed. [SQLSTATE 42000]



При этом файлы бд distribution и ее журнала на месте, никуда не удалялись и не перемещались. Бэкап к сожалению для distribution не делался.

Вопрос, что делать с distribution, как можно оперативнее восстановить работу репликаций, желательно не пересоздавая их? При создании репликаций в свое время я сохранил все необходимые скрипты, но после этого в репликации были добавлены некоторые таблицы, информация о которых в скриптах нет. Найти можно, но потребует некоторого времени, все же хотелось каким-то образом оживить то, что есть сейчас.


автор
Сервер-издатель:
Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
May 14 2014 18:34:29
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: )

Сервер-подписчик:
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
3 май 16, 18:13    [19131075]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой Distribution  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
В журнале агента вы ничего не найдете.
Ошибку, приведшую к recovery pending, нужно искать в журнале SQL Server.
3 май 16, 20:29    [19131304]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с базой Distribution  [new]
nk13
Member

Откуда:
Сообщений: 137
Проблема решена была достаточно простым способом. Вот команды перевода базы рабочий режим:

автор
ALTER DATABASE database_name SET EMERGENCY;
GO

ALTER DATABASE database_name SET SINGLE_USER;
GO

DBCC CHECKDB (database_name)
GO
-- ошибок в структуре не было выявлено

ALTER DATABASE database_name SET MULTI_USER;
GO

ALTER DATABASE database_name SET ONLINE;
GO


Причина также оказалась банальной в момент возникновения проблемы возникла нехватка места на носителе без повреждения самой базы. Для тех у кого могут возникать подобные проблемы посоветую бэкапирование бд distribution и держать актуальными скрипты на создание репликаций. Ну и CHECKDB наше все. Надеюсь кому-нибудь будет полезно.
4 май 16, 09:05    [19132045]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить