数据库文件管理
这篇讲 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 = 日志文件的增长方式
)
GOMAXSIZE(最大文件大小)指数据库文件只能增长到该容量;若继续存储增长超过该值就会报错、操作无法进行。添加文件
添加辅助数据文件:
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 数据库名最后更新于