SQL SERVER 2008數(shù)據(jù)庫(kù)日志文件收縮的方法
最近公司的數(shù)據(jù)庫(kù)隨著業(yè)務(wù)量的增多,日志文件巨大(超過(guò)300G),造成磁盤(pán)空間不夠用,進(jìn)而后來(lái)的訪問(wèn)數(shù)據(jù)庫(kù)請(qǐng)求無(wú)法訪問(wèn)。
網(wǎng)上類(lèi)似的方法也很多,但不可行,如下是我實(shí)踐過(guò),可行的,將日志文件收縮至任意指定大小的方法:
第一步: 在SQL SERVER Management Studio 中右擊數(shù)據(jù)庫(kù)選擇“屬性”---》“選項(xiàng)”,將恢復(fù)模式由默認(rèn)的“完整”改為“簡(jiǎn)單”。
第二步:再次右鍵選擇數(shù)據(jù)庫(kù)的“任務(wù)”--》“收縮”---》“文件”菜單,進(jìn)入收縮文件頁(yè)面,將(要收縮的)文件類(lèi)型選定為“日志”, 將頁(yè)面下面的“收縮操作”單選框里選擇“在釋放未使用的空間前重新組織頁(yè),將文件收縮到:”,然后填寫(xiě)合適的收縮后的日志文件大小。
最后點(diǎn)擊這個(gè)頁(yè)面下面的“確定”按鈕,以執(zhí)行收縮文件(日志)操作。
執(zhí)行完畢后,用戶可以查到到的確該日志文件收縮到指定的大小了。
將文件收縮到 0 即可。瞬間就ok了,比用命令快多了,對(duì)于36g的日志也很快。
第三步:在SQL SERVER Management Studio 中右擊數(shù)據(jù)庫(kù)選擇“屬性”---》“選項(xiàng)”,將恢復(fù)模式由默認(rèn)的“簡(jiǎn)單”改為“完整”。
下面是最常用的方法一
USE [master] GO ALTER DATABASE 庫(kù)名 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 庫(kù)名 SET RECOVERY SIMPLE --簡(jiǎn)單模式 GO USE 庫(kù)名 GO DBCC SHRINKFILE (N'庫(kù)名_log' , 11, TRUNCATEONLY) GO --這里的DNName_Log 如果不知道在sys.database_files里是什么名字的話,可以用以下注釋的語(yǔ)句進(jìn)行查詢(xún) --USE 庫(kù)名 --GO --SELECT file_id,name FROM sys.database_files; --GO USE [master] GO ALTER DATABASE SCDMS SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE SCDMS SET RECOVERY FULL --還原為完全模式 GO
一般來(lái)說(shuō)上面的sql對(duì)于日志2個(gè)G內(nèi)速度還可以,如果不行請(qǐng)參考下面的步驟
1:然后在網(wǎng)上查找命令,找到日志文件類(lèi)型為 REPLICATION 即發(fā)布狀態(tài)
2:又查找到執(zhí)行命令 ,該命令顯示很多status為2的日志,即沒(méi)有提交的。
DBCC LOGINFO('數(shù)據(jù)庫(kù)名稱(chēng)')
3:直接選擇我之前創(chuàng)建的發(fā)布,提示以下錯(cuò)誤:
sqlserver無(wú)法作為數(shù)據(jù)庫(kù)主體執(zhí)行,因?yàn)橹黧w "dbo" 不存在...
查找到以下命令,為用戶添加數(shù)據(jù)庫(kù)角色時(shí)提示已經(jīng)存在此帳號(hào)請(qǐng)查看數(shù)據(jù)庫(kù)下是否已經(jīng)存在該帳號(hào)并刪除重新授權(quán)
USE 庫(kù)名
EXEC sp_changedbowner 'sa'
4:然后再刪除發(fā)布和訂閱即成功。最后再執(zhí)行第一步的SQL命令,日志文件縮小成功。
方法二、先設(shè)置恢復(fù)模式為“簡(jiǎn)單恢復(fù)”模式,再收縮:
USE BigData ; GO ALTER DATABASE BigData SET RECOVERY SIMPLE;--設(shè)置簡(jiǎn)單恢復(fù)模式 GO DBCC SHRINKFILE (BigData_Log, 1); GO ALTER DATABASE BigData SET RECOVERY FULL;--恢復(fù)為原模式 GO
方法三、
USE BigData; GO BACKUP LOG DATABASENAME TO DISK='d:\test.bak' -- Shrink the truncated log file to 1 MB. DBCC SHRINKFILE (Bigdata_Log, 1); GO
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SQL Server 2008登錄錯(cuò)誤:無(wú)法連接到(local)解決方法
在一些朋友安裝完SQL Server 2008之后大多會(huì)遇到連接出錯(cuò)的問(wèn)題比如:SQL Server 2008登錄錯(cuò)誤:無(wú)法連接到(local)等等相關(guān)問(wèn)題,本文將詳細(xì)介紹解決方法,需要的朋友可以參考下2012-12-12SQL 2008 還原SQL 2005備份文件不成功的解決方法
本文主要介紹了SQL 2008還原SQL 2005備份文件不成功的解決方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02使用Navicat Premium將SQLServer數(shù)據(jù)導(dǎo)出為sql格式
這篇文章主要介紹了使用Navicat Premium將SQLServer數(shù)據(jù)導(dǎo)出為sql格式,需要的朋友可以參考下2016-12-12SQL Server使用一個(gè)語(yǔ)句塊批量插入多條記錄的三種方法
本文介紹了三種不同的方法向數(shù)據(jù)庫(kù)中一次插入多條記錄的方法,第三種方法是SQL Server2008中特有的,大家體驗(yàn)一下吧。2016-05-05SQLServer2008存儲(chǔ)過(guò)程實(shí)現(xiàn)數(shù)據(jù)插入與更新
這篇文章主要介紹了SQLServer2008下存儲(chǔ)過(guò)程實(shí)現(xiàn)數(shù)據(jù)插入與更新,需要的朋友可以參考下2018-08-08SQL Server 2008中的代碼安全(二) DDL觸發(fā)器與登錄觸發(fā)器
MicrosoftSQL Server 提供兩種主要機(jī)制來(lái)強(qiáng)制使用業(yè)務(wù)規(guī)則和數(shù)據(jù)完整性:約束和觸發(fā)器。觸發(fā)器為特殊類(lèi)型的存儲(chǔ)過(guò)程,可在執(zhí)行語(yǔ)言事件時(shí)自動(dòng)生效。SQL Server 包括三種常規(guī)類(lèi)型的觸發(fā)器:DML 觸發(fā)器、DDL 觸發(fā)器和登錄觸發(fā)器。2011-06-06sqlserver2008查看表記錄或者修改存儲(chǔ)過(guò)程出現(xiàn)目錄名無(wú)效錯(cuò)誤解決方法
登陸數(shù)據(jù)庫(kù)后,右鍵打開(kāi)表提示:目錄名無(wú)效,執(zhí)行SQL語(yǔ)句也提示有錯(cuò)誤,現(xiàn)在把解決方法分享給大家2014-01-01SQL Server復(fù)制需要有實(shí)際的服務(wù)器名稱(chēng)才能連接到服務(wù)器
服務(wù)器上安裝的WIN2008 R2,然后沒(méi)有在意機(jī)器名,安裝了SQL2008 R2數(shù)據(jù)庫(kù)之后,配置AD域的時(shí)候修改了機(jī)器名2013-11-11Java打印和打印預(yù)覽機(jī)制實(shí)例代碼
這篇文章主要介紹了Java打印和打印預(yù)覽機(jī)制實(shí)例代碼,有需要的朋友可以參考一下2014-01-01