欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL Server清除事務(wù)日志的兩種方式

 更新時(shí)間:2023年10月15日 10:22:42   作者:Y+.  
事務(wù)日志是一種記錄每次數(shù)據(jù)庫(kù)修改操作的日志,它記錄了每一次事務(wù)修改的詳細(xì)日志,但磁盤容量始終有限制,本文主要介紹了SQL Server清除事務(wù)日志的兩種方式,具有一定的參考價(jià)值,感興趣的可以了解一下

前言

我們?cè)跀?shù)據(jù)庫(kù)維護(hù)的時(shí)候,經(jīng)常會(huì)查看數(shù)據(jù)庫(kù)日志等,但是數(shù)據(jù)庫(kù)讀寫量很大的時(shí)候,數(shù)據(jù)庫(kù)日志文件也會(huì)隨之增大,一般情況會(huì)設(shè)置日志文件最大大小,達(dá)到這個(gè)大小后,數(shù)據(jù)庫(kù)將無法正常操作并記錄日志;當(dāng)然也有圖方便的直接設(shè)置不限大小,但是磁盤容量始終有限制;因此我們需要用數(shù)據(jù)庫(kù)代理作業(yè)定期備份清理數(shù)據(jù)庫(kù)日志文件,本文列舉兩個(gè)清理數(shù)據(jù)庫(kù)日志的方式。
接下來就不贅述代理作業(yè)如何設(shè)置等,有不懂的朋友可以留言或私信我,我看到會(huì)及時(shí)回復(fù)的。

方法一

此方法通過把日志文件備份到其他文件的方式來達(dá)到清理日志源文件的目的,代碼如下:

USE [數(shù)據(jù)庫(kù)名]--需要清理日志的數(shù)據(jù)庫(kù)名
GO
--這里獲取當(dāng)前時(shí)間用來給備份文件命名
declare @dt varchar(20);
set @dt=CONVERT(varchar(100), GETDATE(), 23);
declare @path varchar(200);
--數(shù)據(jù)庫(kù)日志文件名稱+日期命名此日志備份文件;此格式可以自己根據(jù)需要隨意
set @path='D:\某文件夾\數(shù)據(jù)庫(kù)名_log_' + @dt + '.log';
--設(shè)置備份到磁盤的文件路徑
backup log 數(shù)據(jù)庫(kù)名 to disk=@path;
--開始備份,這里的“數(shù)據(jù)庫(kù)名”必須是源文件名稱,在此數(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ù)無法實(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ù)名')
--查詢?nèi)罩究臻g
DBCC SQLPERF (LOGSPACE) 

方法二

此方法會(huì)直接銷毀日志,執(zhí)行后無法查看歷史日志記錄,自行酌情使用。
代碼如下:

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)文章

最新評(píng)論