SQLServer 添加数据文件

发布时间 2023-12-16 13:48:58作者: abce

限制:
1.backup语句正在运行时,不能添加或删除文件
2.可以为每个数据库指定最多32767个文件和32767个文件组


一、新增文件之前查看

use test

select file_id, file_guid, type, type_desc, data_space_id, name, physical_name, state, state_desc from sys.database_files

SELECT * FROM sys.filegroups;

  

二、新增文件
1.使用 SQL Server Management Studio向数据库添加数据文件或日志文件
1.1 在"对象资源管理器"中,连接到一个 SQL Server 数据库引擎实例,然后展开该实例。
1.2 展开"数据库",右键单击要从中添加文件的数据库,然后单击"属性"。
1.3 在 "数据库属性" 对话框中,选择 "文件" 页。
1.4 若要添加数据或事务日志文件,请单击 "添加"。
1.5 在 "数据库文件" 网格中,输入文件的逻辑名称。 该文件名在数据库中必须唯一。
1.6 选择文件类型:行数据或日志。
1.7 对于数据文件,从列表中选择应包含该文件的文件组,或选择"<新文件组>"来创建新的文件组。 事务日志不能放在文件组中。
1.8 指定文件的初始大小。 根据数据库中您希望的最大数据量,使数据文件尽可能大。
1.9 若要指定文件的增长方式,请在"自动增长"列中单击 (…)。 从以下选项中进行选择:
(1)若要允许当前选中的文件根据数据空间量的需求增加而增长,请选中 "启用自动增长" 复选框,然后从下列选项中进行选择:
(2)若要指定文件按固定增量增长,请选择 "按 MB" 并指定一个值。
(3)若要指定文件按当前文件大小的百分比增长,请选择 "按百分比" 并指定一个值。
1.10 若要指定最大文件大小限制,请从下列选项中进行选择:
(1)若要指定文件能够增长到的最大大小,请选择"限制文件增长(MB)"并指定一个值。
(2)若要允许文件根据需要增长,请选择 "不限制文件增长"。
(3)若要防止文件增长,请清除 "启用自动增长" 复选框。 文件大小不会增长到超过"初始大小(MB)"列中指定的值。
1.11 指定文件位置的路径。 指定的路径必须存在才能添加文件。
默认情况下,数据和事务日志放在相同的驱动器和路径中以适应单磁盘系统,但这对于生产环境可能并非最佳方式。 有关详细信息,请参阅 数据库文件和文件组。
1.12 单击"确定"。

2.使用 Transact-SQL 向数据库添加数据文件
(1)向数据库中添加由两个文件组成的文件组

USE master
GO
ALTER DATABASE test
ADD FILEGROUP Test1FG1;
GO
ALTER DATABASE test
ADD FILE
(
    NAME = test1dat3,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\t1dat3.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
),  
(  
    NAME = test1dat4,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\t1dat4.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
)  
TO FILEGROUP Test1FG1;
GO


(2)向数据库中添加文件

USE master;
GO
ALTER DATABASE test
ADD FILE
(
    NAME = Test1dat2,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\t1dat2.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
);
GO


更多的操作,可以参考官方文档:
https://learn.microsoft.com/zh-cn/sql/t-sql/statements/alter-database-transact-sql-file-and-filegroup-options?view=sql-server-ver16