探秘MSSQL系统库的神秘名字
什么是MSSQL系统库?
MSSQL系统库是在安装 SQL Server 时创建的一组系统数据库。Sysdatabases 系统表中的每个条目表示系统数据库或用户数据库。系统数据库(例如 master、model 和 msdb)由 SQL Server 内部使用,储存新服务器和日记的信息。在本文中,我们将探索其中一个神秘的系统数据库的名称。
系统库的常见类型
在MSSQL中,有四个标准系统库:master、model、msdb和tempdb。
master:包含 SQL Server 实例的系统级元数据,包括数据库元数据。
model:是创建新数据库时 SQL Server 使用的模板数据库。
msdb:包含 SQL Server 代理作业、备份和还原历史记录等元数据。
tempdb:是用于存储临时对象(例如全局临时表)和内部对象(例如工作表变量、游标和其他临时对象)的临时数据库。
神秘的系统库名字
在上述基本的系统库之外,还有一个系统库有一个非常神秘的名字。在 SQL Server 2000 和 SQL Server 2005 中,这个系统库的名称是 SUSPECT。相反,它可能被命名为 SUSPECT_PAGES 。
那么 SUSPECT 系统库包含什么?该库对 SQL Server 数据库容错方案起着重要作用。当数据库受到崩溃或灾难性故障时,数据库可以转换成单用户模式,并且某些页可能被标记为“疑似”(SUSPECT)。
为了使数据库更容易恢复,SQL Server 会将这些疑似的页拷贝到 SUSPECT 系统库中。管理员可以使用 SUSPECT 系统库中的工具对这些页进行审查和诊断。在修复了这些受损页面后,用户可以将它们移回正常的数据库,这有助于恢复损坏的数据库。
以下是如何通过 SQL 代码访问相应的表:
-- SQL Server 2000
USE SUSPECT
SELECT * FROM sysindexes
-- SQL Server 2005
USE SUSPECT_PAGES
SELECT * FROM sys.dm_db_persisted_sku_features
总结
MSSQL系统库是 SQL Server 实例中储存元数据和其他相关信息的系统数据库,包括标准的系统库和一些为容错而设计的库,例如 SUSPECT。无论何时需要处理 SQL Server 实例的故障或损坏问题,理解这些系统库的工作原理都非常有帮助。