SQL Server清除事務(wù)日志的兩種方式
前言
我們?cè)跀?shù)據(jù)庫(kù)維護(hù)的時(shí)候,經(jīng)常會(huì)查看數(shù)據(jù)庫(kù)日志等,但是數(shù)據(jù)庫(kù)讀寫(xiě)量很大的時(shí)候,數(shù)據(jù)庫(kù)日志文件也會(huì)隨之增大,一般情況會(huì)設(shè)置日志文件最大大小,達(dá)到這個(gè)大小后,數(shù)據(jù)庫(kù)將無(wú)法正常操作并記錄日志;當(dāng)然也有圖方便的直接設(shè)置不限大小,但是磁盤(pán)容量始終有限制;因此我們需要用數(shù)據(jù)庫(kù)代理作業(yè)定期備份清理數(shù)據(jù)庫(kù)日志文件,本文列舉兩個(gè)清理數(shù)據(jù)庫(kù)日志的方式。
接下來(lái)就不贅述代理作業(yè)如何設(shè)置等,有不懂的朋友可以留言或私信我,我看到會(huì)及時(shí)回復(fù)的。
方法一
此方法通過(guò)把日志文件備份到其他文件的方式來(lái)達(dá)到清理日志源文件的目的,代碼如下:
USE [數(shù)據(jù)庫(kù)名]--需要清理日志的數(shù)據(jù)庫(kù)名 GO --這里獲取當(dāng)前時(shí)間用來(lái)給備份文件命名 declare @dt varchar(20); set @dt=CONVERT(varchar(100), GETDATE(), 23); declare @path varchar(200); --數(shù)據(jù)庫(kù)日志文件名稱(chēng)+日期命名此日志備份文件;此格式可以自己根據(jù)需要隨意 set @path='D:\某文件夾\數(shù)據(jù)庫(kù)名_log_' + @dt + '.log'; --設(shè)置備份到磁盤(pán)的文件路徑 backup log 數(shù)據(jù)庫(kù)名 to disk=@path; --開(kāi)始備份,這里的“數(shù)據(jù)庫(kù)名”必須是源文件名稱(chēng),在此數(shù)據(jù)庫(kù)“屬性”里面查看 GO DBCC SHRINKFILE (N'數(shù)據(jù)庫(kù)日志源文件名' , 1, TRUNCATEONLY) --備份完成后收縮數(shù)據(jù)庫(kù)日志源文件大小為1M --數(shù)據(jù)庫(kù)日志源文件名:一般為‘?dāng)?shù)據(jù)庫(kù)名_log' 具體在此數(shù)據(jù)庫(kù)“屬性”里面查看 GO
注意:以上方法必須在數(shù)據(jù)庫(kù)有備份文件之后才可行,未備份的數(shù)據(jù)庫(kù)無(wú)法實(shí)現(xiàn)。
查看數(shù)據(jù)庫(kù)是否有備份及日志情況的方法如下:
select log_reuse_wait_desc from sys.databases where name='數(shù)據(jù)庫(kù)名'
select type_desc,name from sys.master_files WHERE database_id=db_id('數(shù)據(jù)庫(kù)名')
--查詢(xún)?nèi)罩究臻g
DBCC SQLPERF (LOGSPACE)
方法二
此方法會(huì)直接銷(xiāo)毀日志,執(zhí)行后無(wú)法查看歷史日志記錄,自行酌情使用。
代碼如下:
USE [master] GO ALTER DATABASE 數(shù)據(jù)庫(kù)名 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 數(shù)據(jù)庫(kù)名 SET RECOVERY SIMPLE --改為簡(jiǎn)單模式 GO USE 數(shù)據(jù)庫(kù)名 GO DBCC SHRINKFILE (N'數(shù)據(jù)庫(kù)名_Log' , 1, TRUNCATEONLY) --設(shè)置壓縮后的日志大小為1M,可以自行設(shè)定,'數(shù)據(jù)庫(kù)名_Log':為數(shù)據(jù)庫(kù)日志源文件名 GO USE [master] GO ALTER DATABASE 數(shù)據(jù)庫(kù)名 SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE 數(shù)據(jù)庫(kù)名 SET RECOVERY FULL --還原為完全模式 GO
到此這篇關(guān)于SQL Server清除事務(wù)日志的兩種方式的文章就介紹到這了,更多相關(guān)SQL清除事務(wù)日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mssql無(wú)數(shù)據(jù)庫(kù)日志文件恢復(fù)數(shù)據(jù)庫(kù)的方法
因各種原因我們需要注意恢復(fù)數(shù)據(jù)庫(kù),如果剛好有沒(méi)有數(shù)據(jù)庫(kù)日志文件,那就不妨用下面的方法2008-09-09
SQL Server Management Studio(SSMS)復(fù)制數(shù)據(jù)庫(kù)的方法
這篇文章主要為大家詳細(xì)介紹了如何利用SQL Server Management Studio復(fù)制數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
SQL Server如何通過(guò)創(chuàng)建臨時(shí)表遍歷更新數(shù)據(jù)詳解
這篇文章主要給大家介紹了關(guān)于SQL Server如何通過(guò)創(chuàng)建臨時(shí)表遍歷更新數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
sqlserver數(shù)據(jù)庫(kù)使用存儲(chǔ)過(guò)程和dbmail實(shí)現(xiàn)定時(shí)發(fā)送郵件
這篇文章主要介紹了sqlserver數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程和Job實(shí)現(xiàn)定時(shí)從數(shù)據(jù)庫(kù)發(fā)送郵件的功能,大家參考使用吧2014-01-01
sqlserver主鍵設(shè)計(jì)的注意點(diǎn)
在數(shù)據(jù)庫(kù)設(shè)計(jì)中,主鍵用于惟一地標(biāo)識(shí)表中的某一條記錄2012-07-07
SQL Server中聚合歷史備份信息對(duì)比數(shù)據(jù)庫(kù)增長(zhǎng)的方法
這篇文章主要介紹了SQL Server中聚合歷史備份信息對(duì)比數(shù)據(jù)庫(kù)增長(zhǎng)的方法,需要的朋友可以參考下2014-09-09

