在我们的一台 MS SQL Server 2005 机器上,每天早上运行维护计划时都会出现一个小问题。几秒钟之内,服务器的 C: 驱动器就被填满了,只剩下不到 1GB 的可用空间,而正常情况下,可用空间超过 7GB。这会干扰系统上的复制程序,当可用空间过低时,复制程序会停止,但当可用空间再次可用时,复制程序不会自动启动。
(为了让你了解它的速度有多快,以下是今天早上的时间:05:08:43 可用磁盘空间 <1GB,然后 05:08:51 可用磁盘空间 >7GB。在不到 10 秒的时间内,6GB 的数据被创建和销毁。)
维护计划执行以下操作:检查数据库、缩小数据库、重新组织索引以及清理旧日志文件。
请注意,SQL Server 安装在 C: 驱动器上,但所有数据库和 tempdb 都已移至另一个更大的驱动器。SQL Server 在这些任务期间可能使用其他临时目录或类似的东西,我需要将其重新指向其他驱动器吗?
答案1
你确定是 SQL 占用了空间吗?根据你的描述,一切都应该发生在另一个卷上。我首先会尝试在这段时间内运行 SQL Profiler 跟踪,看看是否可以看到它。如果这没有任何线索,我会尝试运行进程监控看看你是否能找到正在发生的事情。
答案2
确实,正如 squillman 所言,问题不是由 SQL Server 引起的。或者,嗯,我间接地认为是 SQL Server 引起的...
看来复制程序(出现错误的程序)也可能尝试复制 tempdb,并且将其缓存文件保存在 C: 驱动器上。因此,当 tempdb 临时扩展用于 checkdb 等时,复制程序会将所有更改复制到 C:。
昨晚我更改了复制程序以忽略 tempdb 文件并将其缓存保留在 D: 驱动器上,并且问题今天早上没有再次出现。