MSSQL 2TB单表数据库主文件组新增1TB磁盘文件可行性问询
问题结论与说明
SQL Server会自动将后续新增数据写入你存放在1TB硬盘上的新数据文件,核心逻辑和注意事项如下:
底层运行逻辑
SQL Server同一文件组下的多个数据文件默认采用比例填充算法分配写入任务:
- 写入数据前,数据库会先计算文件组内所有数据文件的剩余可用空间占比,按占比分配写入数据量,剩余空间越大的文件,分配到的写入请求越多
- 你的场景中,原有主数据文件所在硬盘即将耗尽,剩余空间远小于新增的1TB数据文件,后续绝大多数新增写入都会自动落到新文件上
操作注意事项
- 新增数据文件时不要配置最大容量限制,也不要将文件设为只读状态,否则会触发写入失败
- 如果需要释放原有硬盘的空间,可以将旧主文件中的数据迁移到新文件中,操作前做好全量备份,执行
DBCC SHRINKFILE命令搭配EMPTYFILE参数即可完成同文件组内的数据迁移 - 新增数据文件建议在业务低峰期操作,参考语法如下:
ALTER DATABASE [你的数据库名称] ADD FILE ( NAME = N'自定义新文件逻辑名', FILENAME = N'1TB硬盘的完整路径\自定义数据文件名.ndf', SIZE = 1024MB, FILEGROWTH = 64MB ) TO FILEGROUP [PRIMARY];
额外说明
你当前仅存在一张归档表,所有数据默认存放在PRIMARY文件组中,不需要额外修改表的存储配置即可生效。
内容的提问来源于stack exchange,提问作者SettusBlake
相关产品推荐
相关产品推荐

