1. 程式人生 > >關於SqlServer數據庫C盤占用空間太大問題

關於SqlServer數據庫C盤占用空間太大問題

sel com lec server2 mic ace 驗證 驅動 日誌

關於SqlServer數據庫C盤占用空間太大問題

工程需要用上了SQL SERVER2008 ,主要作為數據倉庫使用,使用SSIS包從ORACEL10G中抽取數據到MS SQL中。環境是win2003x64的,驅動使用的oracle10gX64。使用半年後發現服務器C盤還剩不到1G(總大小50G,軟件只有ORACLE 客戶端,SQL SERVER),後來排除文件時發現C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\tempdb.mdf 這個文件有37G,這個是臨時的數據庫,是用來存放臨時表的。是因為SSIS包程序和存儲過程中經常性使用插入或者更新數據導致的。這種情況可以使用收縮了數據庫,然後是把增長方式改為以M增長的方式解決。並且將該數據庫遷移到另外一個盤下面:

www.2cto.com
一、遷移SqlServer數據庫中的tempdb.mdf。
將 tempdb 從其在磁盤上的當前位置移動到其他磁盤位置。由於每次啟動 MSSQLSERVER 服務時都會重新創建 tempdb,因此不需要從物理意義上移動數據和日誌文件。

1、 確定 tempdb 數據庫的邏輯文件名稱以及在磁盤上的當前位置。
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID(‘tempdb‘);
GO
2、 使用 ALTER DATABASE 更改每個文件的位置
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = ‘E:\SQLData\tempdb.mdf‘);
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = ‘E:\SQLData\templog.ldf‘);
GO
3 、停止並重新啟動 SQL Server。
4、 驗證文件更改。 www.2cto.com
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID(‘tempdb‘);

二、臨時性解決這個問題可以采取定期重啟服務器的方式解決

關於SqlServer數據庫C盤占用空間太大問題