㈠ sql server 資料庫怎樣壓縮資料庫日誌文件
SQL Server資料庫壓縮日誌文件的方法主要有三種。方法一:首先執行備份日誌操作,使用backup log database_name with no_log或backup log database_name with truncate_only命令。然後收縮資料庫文件,可以使用dbcc shrinkdatabase或dbcc shrinkfile命令,前者適用於收縮整個資料庫文件,後者適用於收縮特定文件,參數notruncate或truncateonly具體含義需參閱在線幫助。
方法二:首先備份整個資料庫以防意外,執行exec sp_detach_db yourDBName,true命令卸除資料庫注冊信息。接著到日誌文件所在目錄刪除或移除日誌文件。然後執行exec sp_attach_single_file_db yourDBName,' d:\mssql\data\yourDBName_data.mdf '命令重新注冊資料庫,MSSQL會自動生成一個新的500K日誌文件。
方法三:使用企業管理器工具,首先分離資料庫,然後刪除日誌文件,如果需要可以備份。最後重新附加資料庫,此時資料庫會提示是否創建新的日誌文件,確認即可。此外,如果希望以後日誌文件不再增長,可以將資料庫恢復模式設置為簡單模型。在SQL Server 2000中,可以在資料庫屬性中選擇簡單恢復模式,或者使用SQL語句alter database 資料庫名 set recovery simple來實現。
通過以上三種方法,可以有效地壓縮SQL Server資料庫的日誌文件,從而釋放空間和提高性能。
㈡ sql收縮資料庫日誌的幾種辦法
在SQL Server 2000/2005中可以快速壓縮日誌log文件,通過SQL,
方法一:
--BigData為資料庫名
DUMPTRANSACTIONBigDataWITHNO_LOG
BACKUPLOGBigDataWITHNO_LOG
DBCCSHRINKDATABASE(BigData)
執行以上語句可以快速壓縮日誌文件到1M。
但是以上語句中前兩行在SQL Server 2008下無法執行 ,
第一行提示「Incorrect syntax near the keyword 'TRANSACTION'.」
第二行提示「One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. 」
第三行可以執行。但日誌log文件沒有任何變化。
原來SQL Server 2008已經不再支持DUMPTRANSACTION和BACKUP LOG WITH NO_LOG,
sql Server 2005說明中明確:包含 DUMP 語句是為了向後兼容。而 後續版本的 Microsoft SQL Server 將刪除該功能。請避免在新的開發工作中使用該功能,並著手修改當前還在使用該功能的應用程序。 使用 BACKUP。
SQL Server 2008說明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 選項已廢止。使用完整恢復模式或大容量日誌恢復模式時,如果必須刪除資料庫中的日誌備份鏈,請切換至簡單恢復模式。有關詳細信息,請參閱有關從完整恢復模式或大容量日誌恢復模式切換的注意事項。
方法二:
useDB_NAME
sp_dboptionDB_NAME,"trunc.logonchkpt.",true
checkpoint
sp_dboptionDB_NAME,"autoshrink",true
方法三:(請提前備份文件!!)
Detach資料庫。
刪除log文件。
附加資料庫,選移除log文件,此時SQL Server 會自動重新建立一個512K 的Log 文件。
方法四:
USEBigData;
GO
BACKUPLOGDATABASENAMETODISK='d: est.bak'
--.
DBCCSHRINKFILE(Bigdata_Log,1);
GO