在我们的一个 MS SQL Server 2005 机器上,我们每天早上运行维护计划时都会遇到一个小问题。仅仅几秒钟,服务器的 C:-drive 就被填满了,剩下不到 1GB 的可用空间,而通常它有超过 7GB 的可用空间。它干扰了系统上的复制程序,当可用空间下降太低时它会停止,但当它再次空闲时不会自动启动。
(为了让您了解它的速度,这里是今天早上的时间:在 05:08:43 可用磁盘空间 <1GB,然后在 05:08:51 可用磁盘空间 >7GB。在不到 10 秒内 6GB数据被创建和销毁。)
维护计划执行以下操作:检查数据库、收缩数据库、重组索引以及清理其旧日志文件。
请注意,SQL Server 安装在 C: 驱动器上,但所有数据库和 tempdb 都已移动到另一个更大的驱动器。在我需要重新指向不同驱动器的这些任务期间,是否有其他一些临时目录或 SQL Server 可能正在使用的目录?
您确定是 SQL 占用了空间吗?根据您的描述,一切都应该发生在另一卷上。我会尝试的第一件事是在那段时间运行 SQL Profiler 跟踪,看看你是否能看到它。如果这不能说明问题,我会尝试运行进程监视器,看看你是否可以追踪发生了什么。
事实上,正如 squillman 所建议的那样,不是 SQL Server 导致了问题。或者,好吧,我是间接的……
似乎复制程序(出现错误的程序)也可能试图复制 tempdb,并将其缓存文件保存在 C:-驱动器上。因此,当 tempdb 临时扩展为 checkdb 等时,复制程序将所有更改复制到 C:。
昨晚我更改了复制程序以忽略 tempdb 文件并将其缓存保留在 D:-驱动器上,今天早上问题没有再次出现。