適用於SQL Server 2005的方法
---------------------------------------------
復制代碼 代碼如下:
USE DNName
GO
1,清理日志
復制代碼 代碼如下:
Backup Log DNName WITH no_log
GO
2,截斷事務日志
復制代碼 代碼如下:
DUMP TRANSACTION DNName WITH no_log
GO
3,收縮
兩種方式:
1):壓縮數據庫
DBCC SHRINKDATABASE(庫名)
GO
2):指定數據文件,可以通過這個語句查詢到:select * from sysfiles
此方式也可以通過操作:右鍵你要壓縮的數據庫--所有任務--收縮數據庫--收縮文件,分別選擇數據和日志的文件要壓縮的大小來執行
DBCC SHRINKFILE (文件名)
GO
4.為了最大化的縮小日志文件(如果是sql 7.0,這步只能在查詢分析器中進行)
下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前服務器。
a.分離
EXEC sp_detach_db @dbname='庫名'
b.刪除日志LOG文件
c.再附加
復制代碼 代碼如下:
EXEC sp_attach_single_file_db @dbname='庫名',
@physname='c:\Program Files\Microsoft SQL Server\MSSQL\Data\庫名.mdf'
5.為了以後能自動收縮,做如下設置:
企業管理器--服務器--右鍵數據庫--屬性--選項--選擇"自動收縮"
--SQL語句設置方式:
復制代碼 代碼如下:
EXEC sp_dboption '庫名', 'autoshrink', 'TRUE'
6.如果想以後不讓它日志增長得太大
企業管理器--服務器--右鍵數據庫--屬性--事務日志
--將文件增長限制為xM(x是你允許的最大數據文件大小)
--SQL語句的設置方式:
alterdatabase 庫名 modify file(name=邏輯文件名,maxsize=20)
------分--隔-----
適用於SQL Server 2008的方法
[code]
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE --簡單模式
GO
USE DNName
GO
DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL --還原為完全模式
GO
[code]