程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> 刪除sqlserver數據庫日記和沒有日記的數據庫恢復方法

刪除sqlserver數據庫日記和沒有日記的數據庫恢復方法

編輯:MSSQL

刪除sqlserver數據庫日記和沒有日記的數據庫恢復方法。本站提示廣大學習愛好者:(刪除sqlserver數據庫日記和沒有日記的數據庫恢復方法)文章只能為提供參考,不一定能成為您想要的結果。以下是刪除sqlserver數據庫日記和沒有日記的數據庫恢復方法正文


1、刪除數據庫日記文件的辦法

你已經有在履行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)

2、沒有日記文件的數據庫恢復辦法

明天客戶那裡履行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.至此會從新生成改庫的日記文件,全部進程完成

或許也能夠采取手動附加(本辦法參考@碼道程工)


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved