TFS 2018报错TF30042:数据库已满,如何通过命令行调整配置?
TFS 2018数据库(Tfs_DefaultCollection)命令行扩容方案
针对你遇到的TF30042和Error:1101数据库满报错,以下是纯命令行的扩容操作步骤(基于SQL Server命令行工具sqlcmd,需具备SQL Server sysadmin权限):
1. 连接到SQL Server实例
使用sqlcmd工具连接TFS对应的SQL Server实例:
- Windows身份认证(推荐,适用于域账户或本地管理员):
sqlcmd -S <SQL_SERVER_INSTANCE> -E - SQL Server身份认证:
替换sqlcmd -S <SQL_SERVER_INSTANCE> -U <ADMIN_USER> -P <ADMIN_PWD><SQL_SERVER_INSTANCE>为实际实例名,比如localhost\TFS或远程服务器地址TFS-SERVER\SQLEXPRESS
2. 查看当前数据库文件状态(确认问题根源)
执行以下SQL查询,获取Tfs_DefaultCollection的数据文件大小、自动增长配置:
USE Tfs_DefaultCollection; GO SELECT name AS 数据文件名, physical_name AS 文件路径, size/128 AS 当前大小(MB), max_size/128 AS 最大限制(MB), growth AS 增长值, CASE WHEN is_percent_growth = 1 THEN '百分比' ELSE 'MB' END AS 增长单位 FROM sys.database_files WHERE type = 0; -- 仅查询数据文件(type=1为日志文件) GO
根据结果判断:是自动增长未开启、已达最大限制,还是当前磁盘空间不足。
3. 扩容方案选择
方案A:开启/调整自动增长(优先推荐)
如果自动增长未配置或增长值过小,执行以下命令开启并设置合理的增长规则:
ALTER DATABASE Tfs_DefaultCollection MODIFY FILE ( NAME = <数据文件名>, -- 替换为步骤2查询到的「数据文件名」 FILEGROWTH = 1024MB, -- 每次自动增长1GB,可按需调整(如512MB) MAXSIZE = UNLIMITED -- 无空间上限,也可设具体值如102400MB即100GB ); GO
若需按百分比增长,将FILEGROWTH改为5%即可。
方案B:手动扩容现有数据文件
需要立即增加现有文件的空间时,执行:
ALTER DATABASE Tfs_DefaultCollection MODIFY FILE ( NAME = <数据文件名>, SIZE = 102400MB -- 扩容到100GB,需大于当前文件大小 ); GO
方案C:添加新数据文件到PRIMARY文件组(磁盘空间不足时)
若当前磁盘已无剩余空间,可在其他可用磁盘添加新数据文件:
ALTER DATABASE Tfs_DefaultCollection ADD FILE ( NAME = Tfs_DefaultCollection_2, -- 新文件的逻辑名 FILENAME = 'D:\SQL_Data\Tfs_DefaultCollection_2.ndf', -- 替换为实际可用的磁盘路径 SIZE = 51200MB, -- 初始大小50GB FILEGROWTH = 1024MB, MAXSIZE = UNLIMITED ) TO FILEGROUP PRIMARY; GO
注意:目标路径需提前创建,且SQL Server服务账户需拥有该路径的读写权限
4. 验证配置生效
重新执行步骤2的查询命令,确认文件大小、自动增长设置已更新。
内容的提问来源于stack exchange,提问作者Avani Patel
相关产品推荐
相关产品推荐

