刪除sql日誌
可以的
B. SQL Server 快速清除日誌文件的方法
SQL Server 2000快速清除日誌文件的方法
SQL Server 2000 資料庫日誌太大!
如何清理SQL Server 2000的日誌呢?
如何壓縮SQL Server 2000的日誌呢?
如何讓SQL Server 2000的日誌變小呢?
據我所知,辦法有很多很多,總結起來算有3類吧:
1、點幾下滑鼠,用SQL Server 2000管理工具中的企業管理器即可實現,待會兒詳解;
2、用SQL語句,在SQL Server 2000管理工具中的查詢分析器可以實現,此法高級人士喜歡用;
3、用第三方工具實現,原理嘛,我覺得應該是用SQL語句來實現的,這方法好,簡單易用,網上不乏精品工具,待會兒介紹一款。
一、現在我們詳細描述一下如何用企業管理器清理SQL 2000的日誌:
1、打開企業管理器,右擊要處理的資料庫--》屬性--》選項--》故障還原,選「簡單」--》確定。如圖:
2、右擊要處理的資料庫--》所有任務--》收縮資料庫--》什麼也不動,默認第一個是0%,其它兩個未選中,點確定--》如果您以前資料庫日誌文件大於1M那麼現在再看看,是不是只有1M了呢。
3、操作完後--》按第一步,把「故障還原」,選「完全」,傳說中SQL Server 2000 有自動還原功能,說是如果非法關機等因素造成數據丟失可以自動回滾,另外可以用程序來實現操作回滾,所以最好是讓故障還原是「完全」。
4、這樣便實現了「SQL Server 2000 資料庫日誌太大!如何管理,清除,變小,壓縮它」中的清除,變小,壓縮了,至於怎麼管理,自己看著辦吧,我一般只會用到這些,再有深入研究的話我會寫上來的`。
二、現在我們介紹用第三方SQL Server 日誌清理工具來清理日誌,簡單易用高效,推薦用這個方法。
我喜歡用 SqlServer日誌清除專家 v3.5 來實現這個功能。界面如下:
資料庫那裡一般會將整個伺服器的資料庫名都列舉出來,需要選擇為自己賬戶能管理到的那個,我這里DB_iszip賬戶能管理的是 iszip ,選擇好之後,點「清除日誌」按鈕,然後SQL Server 2000的日誌就被清理好了,此時你去伺服器看你資料庫日誌佔用空間就只有1M了。
;C. 怎樣清理或者刪除MSSQL資料庫日誌文件
資料庫的性能是DBA都需要重點關注的,日誌文件的增多嚴重影響資料庫的性能,本文將為您介紹SQLServer刪除日誌文件的方法,供您參考,希望對您有所幫助。
資料庫在使用過程中會使日誌文件不斷增加,使得資料庫的性能下降,並且佔用大量的磁碟空間。SQL Server資料庫都有log文件,log文件記錄用戶對資料庫修改的操作。可以通過直接刪除log文件和清空日誌在清除資料庫日誌。
1、刪除LOG
1.1 分離資料庫
分離資料庫之前一定要做好資料庫的全備份,選擇資料庫——右鍵——任務——分離。
附加資料庫之後將生成新的日誌文件log,新的日誌文件的大小事504K。
1.4 也可以通過命令才完成以上的操作
use master;
exec sp_detach_db @dbname='資料庫名';
exec sp_attach_single_file_db @dbname='資料庫名',@physname='D:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATATestDB.mdf'
Sp_detach_db:分離資料庫;
sp_attach_single_file_db:附加單個資料庫文件;在上述代碼中只附加了數據文件,而未附加日誌文件,言下之意就是刪除了日誌文件。
該命令在SQL Server 2005和2000支持,SQL Server 2008不支持該命令。
2. 清空日誌
DUMP TRANSACTION 資料庫名 WITH NO_LOG
3. 收縮資料庫文件
DBCC SHRINKFILE ('TestDB_log',1)
SQL Server中「數據收縮」詳解
4. 截斷事務日誌
BACKUP LOG TestDB WITH NO_LOG
該命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。
D. SQL資料庫如何刪除日誌ldf
1、確定SQL資料庫的安裝路徑與所用的SQL資料庫名稱。
2、點擊開始--程序--Microsoft
SQL
Server--查詢分析器--確定,進入軟體里,點擊菜單幫助--Transact-sql幫助(S)--索引--輸入(sp_attach_single_file_db),在右邊對話框里找到以下的命令或者在空白處直接輸入以下的命令:
EXEC
sp_detach_db
@dbname
=
'pubs'returnEXEC
sp_attach_single_file_db
@dbname
=
'pubs',
@physname
=
'c:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\pubs.mdf'
注意:return是加入的命令語名,將資料庫(*.LDF與*.MDF)分離,再將資料庫名改回所要選的,即是pubs改為J2002。即是:
EXEC
sp_detach_db
@dbname
=
'
J2002'returnEXEC
sp_attach_single_file_db
@dbname
=
'
J2002',
@physname
=
'c:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\
J2002.mdf'
3、輸入命令後,點擊菜單查詢--執行,下面對話框出現命令"命令已成功完成"。
4、刪除命令(EXEC
sp_detach_db
@dbname
=
'
J2002'
return),進入安裝SQL資料庫路徑里將J2002.ldf文件重命名。
5、接著第3點開始,點擊菜單查詢--執行,下面對話框出現命令"設備激活錯誤。物理文件名
'C:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\J200188.ldf'
可能有誤。已創建名為
'c:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\j200188_log.LDF'
的新日誌文件"。
E. 如何清空sql資料庫的日誌文件
SQLSERVER的資料庫日誌佔用很大的空間,下面提供三種方法用於清除無用的資料庫日誌文件x0dx0a方法一: x0dx0a1、打開查詢分析器,輸入命令 x0dx0aBACKUP LOG database_name WITH NO_LOG x0dx0a2、再打開企業管理器--右鍵要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至xxm,這里會給出一個允許收縮到的最小m數,直接輸入這個數,確定就可以了。 x0dx0ax0dx0a方法二: x0dx0a設置檢查點,自動截斷日誌 x0dx0ax0dx0a一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大 x0dx0a1、設置資料庫模式為簡單模式:打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄-->選擇你的資料庫名稱(如用戶資料庫cwbase1)-->然後點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇「簡單」,然後按確定保存 x0dx0a2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的默認設置不用調整,直接點確定 x0dx0a3、收縮資料庫完成後,建議將您的資料庫屬性重新設置為標准模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據 x0dx0ax0dx0a方法三:通過SQL收縮日誌 x0dx0ax0dx0a把代碼復制到查詢分析器里,然後修改其中的3個參數(資料庫名,日誌文件名,和目標日誌文件的大小),運行即可 x0dx0ax0dx0aSET NOCOUNT ON x0dx0aDECLARE @LogicalFileName sysname, x0dx0a@MaxMinutes INT, x0dx0a@NewSize INT x0dx0ax0dx0aUSE tablename -- 要操作的資料庫名 x0dx0aSELECT @LogicalFileName = 'tablename_log', -- 日誌文件名 x0dx0a@MaxMinutes = 10, -- Limit on time allowed to wrap log. x0dx0a@NewSize = 1 -- 你想設定的日誌文件的大小(M) x0dx0ax0dx0a-- Setup / initialize x0dx0aDECLARE @OriginalSize int x0dx0aSELECT @OriginalSize = size x0dx0aFROM sysfiles x0dx0aWHERE name = @LogicalFileName x0dx0aSELECT 'Original Size of ' + db_name() + ' LOG is ' + x0dx0aCONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + x0dx0aCONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB' x0dx0aFROM sysfiles x0dx0aWHERE name = @LogicalFileName x0dx0aCREATE TABLE DummyTrans x0dx0a(DummyColumn char (8000) not null) x0dx0ax0dx0aDECLARE @Counter INT, x0dx0a@StartTime DATETIME, x0dx0a@TruncLog VARCHAR(255) x0dx0aSELECT @StartTime = GETDATE(), x0dx0a@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY' x0dx0ax0dx0aDBCC SHRINKFILE (@LogicalFileName, @NewSize) x0dx0aEXEC (@TruncLog) x0dx0a-- Wrap the log if necessary. x0dx0aWHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired x0dx0aAND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) x0dx0aAND (@OriginalSize * 8 /1024) > @NewSize x0dx0aBEGIN -- Outer loop. x0dx0aSELECT @Counter = 0 x0dx0aWHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000)) x0dx0aBEGIN -- update x0dx0aINSERT DummyTrans VALUES ('Fill Log') x0dx0aDELETE DummyTrans x0dx0aSELECT @Counter = @Counter + 1 x0dx0aEND x0dx0aEXEC (@TruncLog) x0dx0aEND x0dx0aSELECT 'Final Size of ' + db_name() + ' LOG is ' + x0dx0aCONVERT(VARCHAR(30),size) + ' 8K pages or ' + x0dx0aCONVERT(VARCHAR(30),(size*8/1024)) + 'MB' x0dx0aFROM sysfiles x0dx0aWHERE name = @LogicalFileName x0dx0aDROP TABLE DummyTrans x0dx0aSET NOCOUNT OFF x0dx0ax0dx0a方法四:刪除日誌文件。 x0dx0ax0dx0a此方法有一定的風險性,因為sql server的日誌文件不是即時寫入資料庫主文件的,如處理不當,會造成數據的損失。1、操作前請斷開所有資料庫連接。 x0dx0a2、分離資料庫 x0dx0a分離資料庫:企業管理器->伺服器->資料庫->cwbase1->右鍵->分離資料庫 x0dx0a分離後,cwbase1資料庫被刪除,但保留了數據文件和日誌文件 x0dx0a3、刪除log物理文件 x0dx0a刪除LOG物理文件,然後附加資料庫: 企業管理器->伺服器->資料庫->右鍵->附加資料庫 x0dx0a此法生成新的log,大小隻有500多k。 x0dx0ax0dx0a注意:建議使用第一種方法。操作前請確保所有操作員都已經推出系統,斷開資料庫的連接。 x0dx0ax0dx0a以上操作前,請務必做好數據備份!x0dx0ax0dx0a1.sql server 2005 清除日誌語句 x0dx0ax0dx0amp transaction 資料庫名稱 with no_log x0dx0abackup log 資料庫名稱 with no_log x0dx0adbcc shrinkdatabase(資料庫名稱)
F. 如何清理SQL Server ErrorLog錯誤日誌
清理MSSQL ERRORLOG文件
問題描述:
開啟SQLServer自動備份後,備份文件越來越多,有沒有及時清理,導致伺服器空間不足,備份出錯,以至於出現幾個G的ErrorLog文件,影響系統的登錄管理。
解決辦法:
定期清理SQLServer ErrorLog文件。
日誌文件:
默認情況下,SQL Server 保存 7 個 ErrorLog 文件,名為:ErrorLog ErrorLog.1 ErrorLog.2 ErrorLog.3 ErrorLog.4 ErrorLog.5 ErrorLog.6
清理方法:
只要我們執行一次sp_cycle_errorlog 存儲過程,就會刪除ErrorLog.6,其他日誌編號自動加1,並創建新的ErrorLog,也就是說,只要執行7次 sp_cycle_errorlog,就能夠把之前生成的錯誤日誌全部刪除。
自動清理:
如何定期處理日誌呢?答案就是使用SQLServer代理,添加作業,每天執行一次 sp_cycle_errorlog!
G. 如何清除SQL資料庫日誌清除後對資料庫有什麼影響
教你如何清除SQL日誌 x0dx0ax0dx0a1.打開查詢分析器,輸入命令x0dx0aDUMP TRANSACTION 資料庫名 WITH NO_LOGx0dx0a2.再打開企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。x0dx0ax0dx0a清除Log有兩種方法:x0dx0ax0dx0a 1.自動清除法x0dx0ax0dx0a 開放資料庫選項 Trunc Log on Chkpt,使資料庫系統每隔一段時間自動清除Log。此方法的優點是無須人工干預,由SQL Server自動執行,並且一般不會出現Log溢滿的情況;缺點是只清除Log而不做備份。x0dx0ax0dx0a 2.手動清除法x0dx0ax0dx0a 執行命令「mp transaction」來清除Log。以下兩條命令都可以清除日誌:x0dx0ax0dx0amp transaction with truncate_onlyx0dx0amp transaction with no_log x0dx0ax0dx0a 通常刪除事務日誌中不活躍的部分可使用「mp transaction with trancate_only」命令,這條命令寫進事務日誌時,還要做必要的並發性檢查。SYBASE提供「mp transaction with no_log」來處理某些非常緊迫的情況,使用這條命令有很大的危險性,SQL Server會彈出一條警告信息。為了盡量確保資料庫的一致性,你應將它作為「最後一招」。x0dx0ax0dx0a 以上兩種方法只是清除日誌,而不做日誌備份,若想備份日誌,應執行「mp transaction database_name to mpdevice」命令。 x0dx0ax0dx0a清除後對資料庫沒有影響