master 数据库

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

master 数据库记录 SQL Server 系统的所有系统级信息。 这包括实例范围的元数据(例如登录帐户)、端点、链接服务器和系统配置设置。 在 SQL Server 中,系统对象不再存储在 master 数据库中,而是存储在 Resource 数据库中。 此外,master 数据库还记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server 的初始化信息。 因此,如果 master 数据库不可用,则 SQL Server 无法启动。

重要

对于 Azure SQL 数据库单一数据库和弹性池,仅 master 数据库和 tempdb 数据库适用。 有关详细信息,请参阅什么是 Azure SQL 数据库服务器。 有关 Azure SQL 数据库上下文中关于 tempdb 的讨论,请参阅 Azure SQL 数据库中的 tempdb 数据库。 对于 Azure SQL 托管实例,所有系统数据库都适用。 若要详细了解 Azure SQL 数据库托管实例,请参阅什么是托管实例

master 数据库的物理属性

下表列出了 SQL Server 和 Azure SQL 托管实例的 master 数据和日志文件的初始配置值。 对于不同版本的 SQL Server,这些文件的大小可能略有不同。

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

有关如何移动 master 数据和日志文件的信息,请参阅 移动系统数据库

重要

对于 Azure SQL 数据库服务器,用户无法控制 master 数据库的大小。

数据库选项

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

重要

对于 Azure SQL 数据库单一数据库和弹性池,用户无法控制这些数据库选项。

数据库选项 默认值 是否可修改
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


No

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 选项 DISABLE_BROKER
TRUSTWORTHY OFF

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

限制

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

  • 添加文件或文件组。
  • 备份,主数据库上只能执行完整的数据库备份。
  • 更改排序规则。 默认排序规则为服务器排序规则。
  • 更改数据库所有者。 master 的所有者是 sa
  • 创建全文目录或全文索引。
  • 在数据库的系统表上创建触发器。
  • 删除数据库。
  • 从数据库中删除 guest 用户。
  • 启用变更数据捕获。
  • 参与数据库镜像。
  • 删除主文件组、主数据文件或日志文件。
  • 重命名数据库或主文件组。
  • 将数据库设置为 OFFLINE。
  • 将数据库或主文件组设置为 READ_ONLY。

建议

使用 master 数据库时,请考虑下列建议:

  • 始终有一个 master 数据库的当前备份可用。

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

    • 创建、修改或删除任意数据库
    • 更改服务器或数据库的配置值
    • 修改或添加登录帐户
  • 不要在 master中创建用户对象。 否则,必须更频繁地备份 master

  • 不要针对 master 数据库将 TRUSTWORTHY 选项设置为 ON。

当 master 不可用时怎么办

如果 master 数据库不可用,则可以通过下列两种方式之一将该数据库返回到可用状态:

  • 从当前数据库备份还原 master

    如果你可以启动服务器实例,则应该能够从完整数据库备份还原 master 。 有关详细信息,请参阅还原 master 数据库 (Transact-SQL)

  • 完全重新生成 master

    如果由于 master 严重损坏而无法启动 SQL Server,则必须重新生成 master。 有关详细信息,请参阅 重新生成系统数据库

    重要

    重新生成 master 将重新生成所有系统数据库。