MSDB数据库

适用于:SQL ServerAzure SQL 托管实例

SQL Server 代理 利用msdb数据库来调度警报和作业。 其他使用msdb的功能包括 SQL Server Management Studio、Service Broker 和 数据库邮件。

例如,SQL Server 会自动维护完整的在线备份和恢复历史,存储在 中的msdb表中。 这些信息包括执行备份的方名称、备份时间以及存储备份的设备或文件。 SQL Server Management Studio 利用这些信息来提出计划,以还原数据库和应用任何事务日志备份。 系统会记录所有数据库的备份事件,即使这些事件是由自定义应用程序或第三方工具创建的。 例如,如果你使用一个调用 SQL Server 管理对象(SMO)进行备份操作的 C# 应用程序,该事件会被记录在msdb系统表、Windows 应用日志和 SQL Server 错误日志中。 为了保护存储 msdb 的信息,考虑将交易日志放在 msdb 容错存储上。

默认情况下,使用 msdb 简单的恢复模型。 如果你使用备份和恢复历史表,请使用完整的恢复模型。msdb 有关详细信息,请参阅 恢复模型(SQL Server)。 当你安装或升级SQL Server或使用 Setup.exe 重建系统数据库时,安装会自动将恢复msdb模型设置为简单。

重要

在进行任何更新 msdb操作后,比如备份或恢复任何数据库,都会备份 msdb。 有关详细信息,请参阅备份和还原:系统数据库(SQL Server)。

msdb该数据库在 Azure SQL 托管实例 中提供了不同的选项。 更多信息请参见 备份透明度

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

局限性

你不能对数据库执行以下操作 msdb

  • 更改排序规则。 默认排序规则为服务器排序规则。

  • 删除数据库。

  • 从数据库中删除 guest 用户。

  • 启用变更数据捕获。

  • 参与数据库镜像。

  • 删除主文件组、主数据文件或日志文件。

  • 重命名数据库或主文件组。

  • 将数据库设置为 OFFLINE

  • 将主文件组 READ_ONLY设置为 。

建议

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

  • 一定要随时准备数据库的最新备份 msdb

  • 在完成以下操作后尽快备份 msdb 数据库:

    • 创建、修改或删除任何作业、警报、代理或维护计划
    • 添加、更改或删除 数据库邮件 配置文件
    • 添加、修改或删除基于策略的管理策略
  • 不要在 msdb. 如果有,就更频繁地倒车 msdb

  • 把数据库当 msdb 作高度敏感,没有必要不要授权任何人访问。 系统管理员固定服务器角色的成员通常也拥有 SQL Server 代理 作业。 确保没有人能篡改运行的代码。

  • 审计 中对象的任何变更 msdb