我一直在看SQL Server:Paul Randal在 Pluralsights 上的高级损坏恢复技术。在第 4 单元中,他讨论了一个事实,即如果您丢失了日志文件,那么了解数据库是否完全关闭是很重要的。这将决定 SQL Server 是否将运行崩溃恢复。
他接着提到,可以在数据库引导页面中找到此标志(1:9 是我根据课程材料做出的假设,并通过Microsoft 上的此链接进行了备份)。但是,我没有看到页面内有任何明显的标志使用 -
DBCC TRACEON (3604);
DBCC PAGE ('stack',1, 9, 2) WITH TABLERESULTS;
DBCC TRACEOFF (3604);
在网上找这个,我找不到关于引导页的信息(1:9)。我发现sys.databases
有一列is_cleanly_shutdown
代表:
1 = 数据库完全关闭;启动时无需恢复
0 = 数据库没有完全关闭;启动时需要恢复
但是,我想继续上课,有人可以告诉我在引导页面中寻找什么吗?另外,如何让数据库显示它已完全关闭或执行此操作的正确步骤?
我正在运行 SQL Server 2012。
这是该
dbi_status
领域的一部分,正如肖恩·加拉迪 (Sean Gallardy)所说,没有记录在案,也没有人在博客上写过关于它们的内容(但是 - 所以我不想在这里详细介绍)。您可以尝试打开事务、使服务器崩溃并移动日志文件以强制数据库进入RECOVERY_PENDING
状态以观察设置了哪些位(同样,还没有关于此的博客文章)。