C盤太滿,程序不能運行的原因

第一種情況:

工程需要用上了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。

將 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驗證文件更改。
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了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章