跳至内容
数据库文件管理

数据库文件管理

这篇讲 SQL Server 的数据库文件构成(数据文件、日志文件、文件组)以及用 T-SQL 创建、修改、删除数据库的命令。

数据库文件构成

SQL Server 数据库由两类物理文件组成:

  • 数据文件:记录事物本身的数据,分为主数据文件辅助数据文件
  • 日志文件:用于存储恢复数据库所需的事务日志信息。

文件组:包括默认文件组(Primary)和用户自定义文件组。用户可以创建多个文件组,分别存放需要隔离的数据。

文件后缀名约定(后缀可任意指定,但为方便管理建议遵循):

后缀含义
.mdf主数据库文件
.ndf辅助数据库文件
.ldf日志数据库文件

图形化管理(SSMS)支持:创建、新建、修改、扩展、收缩、分离/附加、删除等操作。下面重点讲命令行管理。

创建数据库

单数据文件示例(若要多数据文件,在第一个文件配置的括号后加逗号,再追加配置即可):

CREATE DATABASE 数据库名
ON PRIMARY
(   -- 数据文件
    NAME = '逻辑名',
    FILENAME = '文件的存放路径',
    SIZE = 数据文件的初始大小,
    MAXSIZE = 数据文件的最大大小,
    FILEGROWTH = 文件的增长方式
)
LOG ON
(   -- 日志文件
    NAME = '逻辑名',
    FILENAME = '文件的存放路径',
    SIZE = 日志文件的初始大小,
    MAXSIZE = 日志文件的最大大小,
    FILEGROWTH = 日志文件的增长方式
)
GO
MAXSIZE(最大文件大小)指数据库文件只能增长到该容量;若继续存储增长超过该值就会报错、操作无法进行。

添加文件

添加辅助数据文件:

ALTER DATABASE 数据库名
ADD FILE
(
    NAME = '逻辑名',
    FILENAME = '文件存放的路径',
    SIZE = 初始大小,
    MAXSIZE = 最大大小,
    FILEGROWTH = 增长方式
)
GO

添加日志文件:

ALTER DATABASE 数据库名
ADD LOG FILE
(
    NAME = '逻辑名',
    FILENAME = '文件的存放路径',
    SIZE = 日志文件的初始大小,
    MAXSIZE = 日志文件的最大大小,
    FILEGROWTH = 日志文件的增长方式
)
GO

修改数据库

修改数据库名:

ALTER DATABASE 原数据库名
MODIFY NAME = 新数据库名

修改文件属性:

ALTER DATABASE 数据库名
MODIFY FILE
(
    NAME = '逻辑名',
    SIZE = 修改后的大小,
    MAXSIZE = 修改后的大小,
    FILEGROWTH = 修改后的方式
)
GO

删除空数据库文件:

ALTER DATABASE 数据库名
REMOVE FILE 文件的逻辑名

删除数据库

DROP DATABASE 数据库名

若提示数据库正在使用,可先切换到其他数据库(如系统数据库 master)再删除:

USE master   -- 切换到系统数据库
GO
DROP DATABASE 数据库名
最后更新于