我正在处理的项目为您处理的每个 SVN 分支创建 SQL Server 数据库的本地副本。我们在本地机器上运行带有高级服务的 SQL Server 2008 Express 来托管它。
当我们创建一个新分支时,构建脚本将使用该分支的 ID 创建一个新数据库,创建模式对象,并从生产影子服务器复制选择的数据。
创建数据库后,它或本地计算机上的其他数据库通常会进入“In Recovery”模式几分钟。几次刷新后,它会出现并且很开心,但偶尔会回到“恢复中”模式。
数据库是在简单恢复模式下创建的。未指定文件名,因此它使用文件的默认路径。
加载数据后的数据库大小约为 400 兆。它在 SQL Server 2005 兼容模式下运行。
创建数据库的命令是:
sqlcmd -S $(DBServer) -Q "IF NOT EXISTS (SELECT [name] FROM sysdatabases WHERE [name] = '$(DBName)') BEGIN CREATE DATABASE [$(DBName)]; print 'Created $(DBName)' ; 结尾”
...其中 $(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'.
在这种情况下,它一直尝试连续启动数据库,直到我在 23 分钟后的 08:48:19.72 关闭 SQL Server。同时,我实际上大部分时间都可以使用数据库。
日志文件中最后一个有趣的行是...
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.