msdb 数据库

适用于:SQL ServerAzure SQL 托管实例

SQL Server 代理使用 msdb 数据库来计划警报和作业,SQL Server Management Studio、Service Broker 和数据库邮件等其他功能也使用该数据库。

例如,SQL Server 在 msdb 中的表中自动保留一份完整的联机备份和还原历史记录。 这些信息包括执行备份一方的名称、备份时间和用来存储备份的设备或文件。 SQL Server Management Studio 利用这些信息来提出计划,以还原数据库和应用任何事务日志备份。 将会记录有关所有数据库的备份事件,即使它们是由自定义应用程序或第三方工具创建的。 例如,如果使用调用 SQL Server 管理对象 (SMO) 对象的 Microsoft Visual Basic 应用程序执行备份操作,则事件将记录在 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
加密 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 中对象的任何更改