溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)的恢復(fù)辦法

發(fā)布時(shí)間:2021-10-13 15:31:11 來(lái)源:億速云 閱讀:144 作者:柒染 欄目:數(shù)據(jù)庫(kù)

這篇文章將為大家詳細(xì)講解有關(guān)刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)的恢復(fù)辦法,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

一、刪除數(shù)據(jù)庫(kù)日志文件的方法

你曾經(jīng)有在執(zhí)行SQL的時(shí)候,數(shù)據(jù)庫(kù)報(bào)事務(wù)日志已滿,然后執(zhí)行報(bào)錯(cuò)。然后糾結(jié)于怎么刪除數(shù)據(jù)庫(kù)日志,搗鼓半天嗎,現(xiàn)在就提供兩種刪除日志文件的方法,希望能夠幫到你!

方法一:手工操作1.數(shù)據(jù)庫(kù)->右鍵->屬性->選項(xiàng)-恢復(fù)模式->由完成切換成簡(jiǎn)單2.數(shù)據(jù)庫(kù)->右鍵->任務(wù)->收縮-文件->由完成切換成簡(jiǎn)單->文件類(lèi)型->日志->將文件收縮到

方法二:存儲(chǔ)過(guò)程代替手工操作

復(fù)制代碼 代碼如下: --日志文件收縮至多少M(fèi) DECLARE @DBLogSise AS INT SET @DBLogSise=0 --查詢(xún)出數(shù)據(jù)庫(kù)對(duì)應(yīng)的日志文件名稱(chēng) DECLARE @strDBName AS NVARCHAR(500) DECLARE @strLogName AS NVARCHAR(500) DECLARE @strSQL AS VARCHAR(1000)  SELECT  @strLogName=B.name, @strDBName=A.name FROM master.sys.databases AS A INNER JOIN sys.master_files AS B ON A.database_id = B.database_id WHERE A.database_id=DB_ID()  SET @strSQL=' --設(shè)置數(shù)據(jù)庫(kù)恢復(fù)模式為簡(jiǎn)單 ALTER DATABASE ['+@strDBName+'] SET RECOVERY SIMPLE; --收縮日志文件 DBCC SHRINKFILE ('''+@strLogName+''' , '+CONVERT(VARCHAR(20),@DBLogSise)+'); --恢復(fù)數(shù)據(jù)庫(kù)還原模式為完整 ALTER DATABASE ['+@strDBName+'] SET RECOVERY FULL ' exec(@strSQL)

1.在數(shù)據(jù)庫(kù)中執(zhí)行上面的存儲(chǔ)過(guò)程2.然后再執(zhí)行 EXEC dbo.usp_p_delDBLog @DBLogSise = 0 (收縮至多少M(fèi))二、沒(méi)有日志文件的數(shù)據(jù)庫(kù)恢復(fù)方法

今天客戶那邊執(zhí)行SQL報(bào)錯(cuò),經(jīng)查看是客戶服務(wù)器數(shù)據(jù)庫(kù)磁盤(pán)已被全部用完,日志文件達(dá)到500GB的程度,后來(lái)由于我的錯(cuò)誤操作導(dǎo)致日志文件(.ldf)被刪除,后來(lái)附加.mdf文件老是說(shuō)沒(méi)有日志文件附加不成功,后來(lái)經(jīng)過(guò)一番折騰終于解決了,下面分享一下!

操作步驟

1.新建同名的數(shù)據(jù)庫(kù)文件2.暫停SQLSetver服務(wù)3.將原先的mdf文件,覆蓋新建的數(shù)據(jù)庫(kù),刪除新數(shù)據(jù)庫(kù)的ldf文件4.重新啟動(dòng)SQLSetver服務(wù) ,這時(shí)看到的數(shù)據(jù)庫(kù)是這個(gè)樣子的,打不開(kāi)

5.執(zhí)行以下SQL語(yǔ)句復(fù)制代碼 代碼如下: --1.設(shè)置為緊急狀態(tài)alter database 數(shù)據(jù)庫(kù)名稱(chēng) set emergency--2.設(shè)置為單用戶模式alter database 數(shù)據(jù)庫(kù)名稱(chēng) set single_user--3.檢查并重建日志文件dbcc checkdb('數(shù)據(jù)庫(kù)名稱(chēng)',REPAIR_ALLOW_DATA_LOSS)--4.第3步操作如果有錯(cuò)誤提示,運(yùn)行第4步,沒(méi)有錯(cuò)誤則跳過(guò)dbcc checkdb('數(shù)據(jù)庫(kù)名稱(chēng)',REPAIR_REBUILD)--5.恢復(fù)成多用戶模式alter database 數(shù)據(jù)庫(kù)名稱(chēng) set multi_user

6.至此會(huì)重新生成改庫(kù)的日志文件,整個(gè)過(guò)程完成

或者也可以采用手動(dòng)附加

關(guān)于刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)的恢復(fù)辦法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI