msdb 数据库

适用于: SQL Server Azure SQL 托管实例

msdb 数据库由SQL Server 代理用于计划警报和作业,以及其他功能(如SQL Server Management Studio、Service Broker 和数据库邮件)。

例如,SQL Server会自动在 msdb 中的表中维护完整的联机备份和还原历史记录。 这些信息包括执行备份一方的名称、备份时间和用来存储备份的设备或文件。 SQL Server Management Studio使用此信息提出还原数据库和应用任何事务日志备份的计划。 将会记录有关所有数据库的备份事件,即使它们是由自定义应用程序或第三方工具创建的。 例如,如果使用 Microsoft Visual Basic 应用程序调用 SQL Server 管理对象 (SMO) 对象来执行备份操作,则会在 msdb 系统表、Microsoft Windows 应用程序日志和SQL Server错误日志中记录该事件。 为了帮助您保护存储在 msdb中的信息,我们建议您考虑将 msdb 事务日志放在容错存储区中。

默认情况下, msdb 使用简单恢复模式。 如果使用 备份和还原历史记录 表,我们建您对 msdb使用完整恢复模式。 有关详细信息,请参阅恢复模式 (SQL Server)。 请注意,安装或升级SQL Server时,每当使用Setup.exe重新生成系统数据库时,msdb 的恢复模式会自动设置为“简单”。

重要

  • 在进行任何更新 msdb的操作后,例如备份或还原任何数据库后,我们建议您备份 msdb。 有关详细信息,请参阅备份和还原系统数据库 (SQL Server)
  • Azure SQL 托管实例 中的 msdb 数据库中的可用内容存在差异。 查看 备份透明度 以了解详细信息。

msdb 的物理属性

下表列出了 msdb 数据和日志文件的初始配置值。 对于不同版本的 SQL Server 数据库引擎,这些文件的大小可能略有不同。

文件 逻辑名称 物理名称 文件增长
主数据 MSDBData MSDBData.mdf 以 10% 的速度自动增长到磁盘充满为止。
日志 MSDBLog MSDBLog.ldf 以 10% 的速度自动增长到最大 2 TB。

若要移动 msdb 数据库或日志文件,请参阅 移动系统数据库

数据库选项

下表列出了 msdb 数据库中每个数据库选项的默认值以及该选项是否可以修改。 若要查看这些选项的当前设置,请使用 sys.databases 目录视图。

数据库选项 默认值 是否可修改
ALLOW_SNAPSHOT_ISOLATION ON
ANSI_NULL_DEFAULT OFF
ANSI_NULLS OFF
ANSI_PADDING OFF
ANSI_WARNINGS OFF
ARITHABORT OFF
AUTO_CLOSE OFF
AUTO_CREATE_STATISTICS ON
AUTO_SHRINK OFF
AUTO_UPDATE_STATISTICS ON
AUTO_UPDATE_STATISTICS_ASYNC OFF
CHANGE_TRACKING OFF
CONCAT_NULL_YIELDS_NULL OFF
CURSOR_CLOSE_ON_COMMIT OFF
CURSOR_DEFAULT GLOBAL
数据库可用性选项 ONLINE

MULTI_USER

READ_WRITE




DATE_CORRELATION_OPTIMIZATION OFF
DB_CHAINING ON
ENCRYPTION OFF
MIXED_PAGE_ALLOCATION ON
NUMERIC_ROUNDABORT OFF
PAGE_VERIFY CHECKSUM
PARAMETERIZATION SIMPLE
QUOTED_IDENTIFIER OFF
READ_COMMITTED_SNAPSHOT OFF
RECOVERY SIMPLE
RECURSIVE_TRIGGERS OFF
Service Broker 选项 ENABLE_BROKER
TRUSTWORTHY ON

有关这些数据库选项的说明,请参阅 ALTER DATABASE (Transact-SQL)

限制

不能在 msdb 数据库中执行下列操作:

  • 更改排序规则。 默认排序规则为服务器排序规则。
  • 删除数据库。
  • 从数据库中删除 guest 用户。
  • 启用变更数据捕获。
  • 参与数据库镜像。
  • 删除主文件组、主数据文件或日志文件。
  • 重命名数据库或主文件组。
  • 将数据库设置为 OFFLINE。
  • 将主文件组设置为 READ_ONLY。

建议

使用 msdb 数据库时,请考虑以下建议:

  • 始终提供 msdb 数据库的当前备份。

  • 执行以下操作后,尽快备份 msdb 数据库:

    • 创建、修改或删除任何作业、警报、代理或维护计划
    • 添加、更改或删除数据库邮件配置文件
    • 添加、修改或删除基于策略的管理策略
  • 不要在 msdb 中创建用户对象。 如果这样做,则必须更频繁地备份 msdb

  • msdb 数据库视为高度敏感,不向没有适当需求的任何人授予访问权限。 特别请记住,SQL Server 代理作业通常由 sysadmin-role 的成员拥有,因此请确保执行的代码不会被篡改。

  • 审核对 msdb 中对象所做的任何更改