柚子快報(bào)邀請(qǐng)碼778899分享:SQL Server 日志收縮
柚子快報(bào)邀請(qǐng)碼778899分享:SQL Server 日志收縮
兩種方式:
1.通過圖形界面進(jìn)行日志收縮
第一步:右鍵數(shù)據(jù)庫(kù)屬性 第二步:更改數(shù)據(jù)庫(kù)恢復(fù)模式,將模式改為Simple。
第三步:右鍵數(shù)據(jù)庫(kù),Tasks→Shrink→Files?。第四步:收縮數(shù)據(jù)庫(kù)日志,選擇文件類型Log,并在Shrink action?中將文件收縮到給出的Minimum?值,這里的數(shù)據(jù)庫(kù)因?yàn)槭切陆ǖ臎]有數(shù)據(jù),所以提供的Minimum?值為0MB,可以將紅框3中的數(shù)字修改為0。
File type:選擇所要收縮的是“數(shù)據(jù)庫(kù)文件”還是“日志文件”。 Currebtly allocated space:數(shù)據(jù)庫(kù)為該文件分配的大小,就是在磁盤上看到的文件大小。 Available free space:就是“當(dāng)前分配的空間” 減去“實(shí)際使用的空間”。 Shrink action: ① Release unused space:將該文件中未使用的空間釋放出來(lái),數(shù)據(jù)在文件中不移動(dòng); ② Reorganize pages before releasing unused space:此選項(xiàng)可以將文件收縮到“指定大小”,并將數(shù)據(jù)重新組織。其最小值為數(shù)據(jù)庫(kù)“實(shí)際使用的空間”; ③ Empty file by migrating the data to other files in the same filegroup:該選項(xiàng)很少用。
上述操作也可以使用T-SQL替代: ?DBCC ShrinkFile(‘?dāng)?shù)據(jù)庫(kù)名’, targetsize); /* 收縮數(shù)據(jù)庫(kù)文件 */
DBCC ShrinkFile(‘?dāng)?shù)據(jù)庫(kù)名_log’, targetsize); /* 收縮日志文件 */
Targetsize:?jiǎn)挝粸檎?,必須為整?shù),DBCC SHRINKFILE 嘗試將文件收縮到指定大小。 DBCC SHRINKFILE 不會(huì)將文件收縮到小于“實(shí)際使用的空間”大小,例如“分配空間”為10M,“實(shí)際使用空間”為6M,當(dāng)制定targetsize為1時(shí),則將該文件收縮到6M,不會(huì)將文件收縮到1M。
用本例中的數(shù)據(jù)庫(kù)替換后如下:
DBCC ShrinkFile(‘TEST01’, ?1);?? ??? ??? ?/* 收縮數(shù)據(jù)庫(kù)文件 */ DBCC ShrinkFile(‘TEST01_log’, 1);?? ??? ?/* 收縮日志文件 */
注意:如若磁盤空間已滿,無(wú)法進(jìn)行收縮數(shù)據(jù)庫(kù)事務(wù)日志文件,可采取先分離出部分暫未使用的數(shù)據(jù)庫(kù),然后將MDF文件及LDF文件進(jìn)行拷貝到其他空余盤,進(jìn)行釋放磁盤空間,待日志收縮后,再次將分離出的數(shù)據(jù)庫(kù)文件進(jìn)行附加。
分離數(shù)據(jù)庫(kù)操作如下:右擊數(shù)據(jù)庫(kù),Task→Detach點(diǎn)擊OK此時(shí)發(fā)現(xiàn)數(shù)據(jù)庫(kù)列表中已經(jīng)沒有TEST01,說(shuō)明數(shù)據(jù)庫(kù)分離成功了。附加數(shù)據(jù)庫(kù)操作如下:右擊Databases,單擊Attach點(diǎn)擊Add,添加數(shù)據(jù)庫(kù)文件選擇需要添加的文件后點(diǎn)擊OK 檢查添加的文件無(wú)誤后,點(diǎn)擊OK 此時(shí)在數(shù)據(jù)庫(kù)列表中可看到剛附件上去的數(shù)據(jù)庫(kù)TEST01 若未顯示TEST01,請(qǐng)刷新數(shù)據(jù)庫(kù)列表
2.通過 Transact-Sql 進(jìn)行日志收縮
執(zhí)行如下命令:
USE [數(shù)據(jù)庫(kù)名]
GO
ALTER DATABASE [數(shù)據(jù)庫(kù)名] SET RECOVERY SIMPLE WITH NO_WAIT
GO
--設(shè)為簡(jiǎn)單模式
ALTER DATABASE [數(shù)據(jù)庫(kù)名] SET RECOVERY SIMPLE
GO
USE [數(shù)據(jù)庫(kù)名]
GO
DBCC SHRINKFILE (N'[log文件名]', [ targetsize], TRUNCATEONLY)
GO
USE [數(shù)據(jù)庫(kù)名]
GO
ALTER DATABASE [數(shù)據(jù)庫(kù)名] SET RECOVERY FULL WITH NO_WAIT
GO
--還原為完全模式
ALTER DATABASE [數(shù)據(jù)庫(kù)名] SET RECOVERY FULL
GO
[數(shù)據(jù)庫(kù)名]替換為具體數(shù)據(jù)庫(kù), [ targetsize]替換為收縮目標(biāo)值。
替換為本例中的數(shù)據(jù)庫(kù)修改如下:
USE TEST01
GO
ALTER DATABASE TEST01 SET RECOVERY SIMPLE WITH NO_WAIT
GO
--設(shè)為簡(jiǎn)單模式
ALTER DATABASE TEST01 SET RECOVERY SIMPLE
GO
USE TEST01
GO
DBCC SHRINKFILE (N'TEST01_log', 1, TRUNCATEONLY)
GO
USE TEST01
GO
ALTER DATABASE TEST01 SET RECOVERY FULL WITH NO_WAIT
GO
--還原為完全模式
ALTER DATABASE TEST01 SET RECOVERY FULL
GO
轉(zhuǎn)載原文鏈接:SQL Server 日志收縮方法_sqlserver日志收縮-CSDN博客
柚子快報(bào)邀請(qǐng)碼778899分享:SQL Server 日志收縮
好文推薦
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。