第一種情況:
工程需要用上了SQL SERVER2008 ,主要作爲數據倉庫使用,使用SSIS包從ORACEL10G中抽取數據到MS SQL中。環境是win2003x64的,驅動使用的oracle10gX64。使用半年後發現服務器C盤還剩不到1G(總大小50G,軟件只有ORACLE 客戶端,SQL SERVER),後來排除文件時發現C:\Program Files\Microsoft SQL ServerC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\tempdb.mdf 這個文件有37G,這個是臨時的數據庫,是用來存放臨時表的。是因爲SSIS包程序和存儲過程中經常性使用插入或者更新數據導致的。這種情況可以使用收縮了數據庫,然後是把增長方式改爲以M增長的方式解決。並且將該數據庫遷移到另外一個盤下面:
一、遷移SqlServer數據庫中的tempdb.mdf。
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驗證文件更改。
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
二、臨時性解決這個問題可以採取定期重啓服務器的方式解決
第二種情況:
今天用服務器下載文件時,系統提示我硬盤分區空間不足了。點擊查看硬盤分區是50GB,已經只剩下175MB了。而這個服務器應該沒有什麼大文件纔對呀。
仔細查看,發現SQL Server 2005佔用了差不多40GB的空間了,而SQL Server應該只運行了網站數據庫纔對,不可能那麼大空間。再仔細查看,發現SQL Server的data目錄佔用了差不多38GB的空間,進入此目錄下,發現了大量類似 audittrace20100102104348.trc的文件。
通過放狗搜索和羣友的支持,找到原因和解決方法如下:
一、原因:
開啓SQL Server (MSSQLSERVER) 的C2審覈之後,當SQL Server啓動後,默認在C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data下自動生成類似 audittrace20100102104348.trc的文件,用於對數據庫的操作進行審覈,以提高數據庫的安全性。當單個文件超過200MB之後,會重新生成另外一個文件。
二、查看
可以用如下的SQL code來查看數據庫的C2審覈狀況
sp_configure 'show advanced options',1
go
reconfigure
go
sp_configure 'c2 audit mode'
go
或者
select *
from sys.configurations
where name='c2 audit mode'
看一下c2 audit mode的config_value和run_value的值,如果啓動了c2的審計,這兩個值都是爲1。而開啓了c2審覈,則會自動生成類似 audittrace20100102104348.trc的文件。
三、禁用
如果不需要c2審覈的話,可以用如下SQL code禁用此功能
sp_configure 'c2 audit mode',0
go
reconfigure
go
然後再用如下SQL code查看一下
sp_configure 'c2 audit mode'
go
如果以前是啓用了c2審覈的,此時的config_value變爲0了,但run_value還是爲1。該配置需要重啓動SQL Server的服務才能生效
用如下命令重啓動SQL Server的服務:
打開cmd命令窗口,輸入命令
net stop mssqlserver
來停止SQL Server服務,再用命令
net start mssqlserver
來啓動SQL Server服務
重啓動SQL Server服務之後,再執行SQL code查看
sp_configure 'c2 audit mode'
go
此時的config_value和run_value的值就都變爲0了