您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關刪除sqlserver數據庫日志和沒有日志的數據庫的恢復辦法,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
一、刪除數據庫日志文件的方法
你曾經有在執行SQL的時候,數據庫報事務日志已滿,然后執行報錯。然后糾結于怎么刪除數據庫日志,搗鼓半天嗎,現在就提供兩種刪除日志文件的方法,希望能夠幫到你!
方法一:手工操作1.數據庫->右鍵->屬性->選項-恢復模式->由完成切換成簡單2.數據庫->右鍵->任務->收縮-文件->由完成切換成簡單->文件類型->日志->將文件收縮到
方法二:存儲過程代替手工操作
復制代碼 代碼如下: --日志文件收縮至多少M DECLARE @DBLogSise AS INT SET @DBLogSise=0 --查詢出數據庫對應的日志文件名稱 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=' --設置數據庫恢復模式為簡單 ALTER DATABASE ['+@strDBName+'] SET RECOVERY SIMPLE; --收縮日志文件 DBCC SHRINKFILE ('''+@strLogName+''' , '+CONVERT(VARCHAR(20),@DBLogSise)+'); --恢復數據庫還原模式為完整 ALTER DATABASE ['+@strDBName+'] SET RECOVERY FULL ' exec(@strSQL)
1.在數據庫中執行上面的存儲過程2.然后再執行 EXEC dbo.usp_p_delDBLog @DBLogSise = 0 (收縮至多少M)二、沒有日志文件的數據庫恢復方法
今天客戶那邊執行SQL報錯,經查看是客戶服務器數據庫磁盤已被全部用完,日志文件達到500GB的程度,后來由于我的錯誤操作導致日志文件(.ldf)被刪除,后來附加.mdf文件老是說沒有日志文件附加不成功,后來經過一番折騰終于解決了,下面分享一下!
操作步驟
1.新建同名的數據庫文件2.暫停SQLSetver服務3.將原先的mdf文件,覆蓋新建的數據庫,刪除新數據庫的ldf文件4.重新啟動SQLSetver服務 ,這時看到的數據庫是這個樣子的,打不開
5.執行以下SQL語句復制代碼 代碼如下: --1.設置為緊急狀態alter database 數據庫名稱 set emergency--2.設置為單用戶模式alter database 數據庫名稱 set single_user--3.檢查并重建日志文件dbcc checkdb('數據庫名稱',REPAIR_ALLOW_DATA_LOSS)--4.第3步操作如果有錯誤提示,運行第4步,沒有錯誤則跳過dbcc checkdb('數據庫名稱',REPAIR_REBUILD)--5.恢復成多用戶模式alter database 數據庫名稱 set multi_user
6.至此會重新生成改庫的日志文件,整個過程完成
或者也可以采用手動附加
關于刪除sqlserver數據庫日志和沒有日志的數據庫的恢復辦法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。