清除sql日誌
可以的
Ⅱ 如何清除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清除後對資料庫沒有影響
Ⅲ 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了。
;Ⅳ 如何清理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!
Ⅳ 如何清除SQL server日誌
方法1:
第一步:
backup
log
database_name
with
no_log
或者
backup
log
database_name
with
truncate_only
--no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行
dbcc
shrinkdatabase
(database_name,[,target_percent])--database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc
shrinkfile(file_id,[,target_size])
--file_id是要收縮的文件的標識
(ID)
號,若要獲得文件
ID,請使用
FILE_ID
函數或在當前資料庫中搜索
sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc
shrinkfile
將文件大小減少到默認文件大小
兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思看幫助。
方法2
(這個方法在sqlserver2000的環境下做一般能成功,在sqlserver7及以下版本就不一定了):
第一步:
先備份整個資料庫以備不測
第二步:
備份結束後,在Query
Analyzer中執行如下的語句:
exec
sp_detach_db
yourDBName,true
--卸除這個DB在MSSQL中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在Query
Analyzer中執行如下的語句:
exec
sp_attach_single_file_db
yourDBName,'d:\mssql7\data\yourDBName_data.mdf'
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。
以上方法在清除log日誌中均有效。
但,能否讓sql
server
不產生log日誌呢?以上方法好像均無效。
我這兒正好有個case:
我客戶的sql
server每天都會產生4,500M的log日誌,每天都清除一下,非常不便。有沒有辦法實現不產生log日誌呢?
我分析了一下客戶產生log日誌的原因,並且做了相應測試。
客戶是每天將資料庫清空,從總系統中將數據導入到sql
server里。我感決sqlserver在插入時產生log不大,在delete整個庫時產生log極大。
比如:
SELECT
*
into
test_2
from
b_bgxx
共45000條記錄,產生十幾M
log,如果
delete
from
test_2
產生80多M
log
,這明顯存在問題。
雖然可以換成:
truncate
table
test_2
但我還是希望能找到不產生log的方法。就如oracle不產生歸檔一樣。
Ⅵ 如何清空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(資料庫名稱)