Проект, над которым я работаю, создает локальную копию базы данных SQL Server для каждой ветви SVN, над которой вы работаете. Мы запускаем SQL Server 2008 Express с расширенными службами на нашем локальном компьютере для его размещения.
Когда мы создаем новую ветвь, сценарий сборки создаст новую базу данных с идентификатором этой ветви, создаст объекты схемы и скопирует выборку данных с рабочего теневого сервера.
После создания базы данных она или другие базы данных на локальном компьютере часто переходят в режим «В процессе восстановления» на несколько минут. После нескольких обновлений он появляется и счастлив, но иногда возвращается в режим «В восстановлении».
База данных создается в простом режиме восстановления. Имена файлов не указаны, поэтому для файлов используются пути по умолчанию.
Размер базы данных после загрузки данных составляет ~ 400 мегабайт. Он работает в режиме совместимости с SQL Server 2005.
Команда, которая создает базу данных:
sqlcmd -S $ (DBServer) -Q "ЕСЛИ НЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ [имя] ИЗ БД sysdatabase WHERE [name] = '$ (DBName)') НАЧАЛО СОЗДАТЬ БАЗУ ДАННЫХ [$ (DBName)]; print 'Created $ ( DBName) '; END "
... где $ (DBName) и $ (DBServer) являются параметрами MSBuild.
Сегодня утром я получил хороший чистый файл журнала. Когда я включаю свой компьютер, он запускает все пять баз данных. Тем не менее, две из них показывают транзакции, переносимые вперед и назад. Он просто пытается запустить все пять баз данных.
2010-06-10 08:24:59.74 spid52 Starting up database 'ASPState'.
2010-06-10 08:24:59.82 spid52 Starting up database 'CommunityLibrary'.
2010-06-10 08:25:03.97 spid52 Starting up database 'DLG-R8441'.
2010-06-10 08:25:05.07 spid52 2 transactions rolled forward in database 'DLG-R8441' (6). This is an informational message only. No user action is required.
2010-06-10 08:25:05.14 spid52 0 transactions rolled back in database 'DLG-R8441' (6). This is an informational message only. No user action is required.
2010-06-10 08:25:05.14 spid52 Recovery is writing a checkpoint in database 'DLG-R8441' (6). This is an informational message only. No user action is required.
2010-06-10 08:25:11.23 spid52 Starting up database 'DLG-R8979'.
2010-06-10 08:25:12.31 spid36s Starting up database 'DLG-R8441'.
2010-06-10 08:25:13.17 spid52 2 transactions rolled forward in database 'DLG-R8979' (9). This is an informational message only. No user action is required.
2010-06-10 08:25:13.22 spid52 0 transactions rolled back in database 'DLG-R8979' (9). This is an informational message only. No user action is required.
2010-06-10 08:25:13.22 spid52 Recovery is writing a checkpoint in database 'DLG-R8979' (9). This is an informational message only. No user action is required.
2010-06-10 08:25:18.43 spid52 Starting up database 'Rls QA'.
2010-06-10 08:25:19.13 spid46s Starting up database 'DLG-R8979'.
2010-06-10 08:25:23.29 spid36s Starting up database 'DLG-R8441'.
2010-06-10 08:25:27.91 spid52 Starting up database 'ASPState'.
2010-06-10 08:25:29.80 spid41s Starting up database 'DLG-R8979'.
2010-06-10 08:25:31.22 spid52 Starting up database 'Rls QA'.
В этом случае он продолжал пытаться запускать базы данных непрерывно, пока я не выключил SQL Server в 08: 48: 19.72, 23 минуты спустя. Между тем, я на самом деле могу использовать базы данных большую часть времени.
Последняя интересная строка в файле журнала - это ...
2010-06-10 08:35:01.52 spid34s Recovery completed for database DLG-R8441 (database ID 6) in 1 second(s) (analysis 603 ms, redo 0 ms, undo 219 ms.) This is an informational message only. No user action is required.