Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

星期三, 8月 29, 2007

log檔成長塞爆硬碟解決方法

以下是我自己做的管理程式,在登入SQL Server以後,能看目前擁有的硬碟空間,資料庫的資料檔及記錄檔佔用的空間,然後可以清鬆以一鍵做清空Log檔及壓縮資料庫的功能,並能調整資料檔及記錄檔的設定。





資料庫包含資料檔及記錄檔(log)
資料檔有
Data (資料)
Indexes (索引)
Unused (未使用)
Unreserved (未分派)

記錄檔包括
Used (已使用)
Unused (未使用)


清空log記錄檔
'backup log database_name with Truncate_only'

壓縮資料庫(包括資料檔及記錄檔(log))
'DBCC SHRINKDATABASE database_name';

查詢資料庫
'sp_spaceused';
可查到下列欄位
database_name
database_size
unallocated space
reserved
data
index_size
unused


查詢資料檔設定
'SELECT * FROM sysfiles where name = database_name';
查詢log檔設定
'SELECT * FROM sysfiles where name = database_name_log';
fileid
grouid (0表示記錄檔,1表示資料檔)
size (檔案大小以8k頁面為單位)
maxsize(-1表示無限制,0表示不成長,268435456 表示能成長的最大值)
growth(0表示不成長)
status (status>=1048576表示growth為百分比表示(0x100000))
perf (已保留)
name (檔案名稱)
filename (實體位置加檔案名稱)

查詢log檔案情況
'DBCC SQLPERF(LOGSPACE)';
可以查到下列欄位
Database Name
Log Size(MB)
Log Space Used(%)
Status


顯示
資料庫大小 = 查詢語法database_size即可
資料庫未使用大小 = 查詢語法unallocated space即可
資料檔大小 = 查詢語法size即可
資料檔未使用大小 = 查詢語法reserved的相反即可
記錄檔大小 = 查詢語法size即可
記錄檔未使用大小 = 查詢Log Space Used(%)相反即可

變更log檔大小要注意的是:
初始大小不能小於目前的大小,且不能大於2097152
檔案成長要界於1~10000
檔案成長不能大於檔案大小上限
檔案成長要界於1~1048572
檔案大小上限要大於或等於初始大小
檔案大小上限要界於1~2097152
每個資料庫的權限大小可能有設定,而初始大小不能大於限定的大小。

變更log檔所下的語法
'ALTER DATABASE kobe MODIFY FILE (NAME = database_log_name, MAXSIZE = 26MB, SIZE = 11MB, FILEGROWTH = 21MB)';

查詢資料庫硬碟大小空間
'master.dbo.xp_fixeddrives';

沒有留言: