Проблема
Предположим, что вы создаете резервную копию заключительного фрагмента журнала для базы данных модели, которая использует параметр norecovery в Microsoft SQL Server 2014 или SQL Server 2012, и база данных переведена в состояние восстановления. После завершения резервного копирования вы не сможете перезапустить службу SQL Server, и в журнале ошибок SQL Server появится следующее сообщение об ошибке:
Примечание
<
Дата><Время> spid10s. База данных "model" помечена как RESTORING и находится в состоянии, которое не позволяет выполнять восстановление.
<
Дата><Время> spid10s Error: 927, Серьезность: 14, State: 2.
<
Дата><Время> невозможно открыть базу данных spid10s model. Он находится в центре восстановления.
<
Дата><Время> spid10s не удалось создать tempdb. Возможно, у вас недостаточно свободного места на диске. Освободите дополнительное место на диске, удалив другие файлы на диске tempdb, а затем перезапустите SQL Server. Проверьте наличие дополнительных ошибок в журнале событий, которые могут указывать, почему не удалось инициализировать файлы tempdb.
<
Дата><Время> трассировка SQL spid10s была остановлена из-за завершения работы сервера. Идентификатор трассировки = '1'. Это только информационное сообщение; не требуется никаких действий пользователя.
Причина
Эта проблема возникает из-за того, что база данных модели используется в качестве шаблона для всех баз данных, созданных на экземпляре SQL Server. Если база данных модели помечена как не разрешающая состояние восстановления, база данных tempdb не может быть создана, а служба SQL Server не может запуститься.
Решение
Сведения о пакете обновления
Чтобы устранить эту проблему, получите пакет обновления 1 (SP1) для SQL Server 2014.
- Как получить последний пакет обновления для SQL Server 2014
- Как получить последний пакет обновления для SQL Server 2012 г.
Дополнительные сведения о SQL Server 2014 с пакетом обновления 1 (SP1) см. в статье Ошибки, исправленные в SQL Server 2014 с пакетом обновления 1 (SP1).
Временное решение
Чтобы обойти эту проблему, используйте следующий метод:
- Запретить все подключения из приложения к SQL Server
- Запустите службу SQL Server вместе с флагом трассировки 3608
- Выполните команду "restore database Model with recovery" (Восстановление модели базы данных с помощью восстановления).
- Удалите флаг трассировки 3608 и перезапустите SQL Server
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».