国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

刪除sqlserver數據庫日志和沒有日志的數據庫恢復辦法

2020-07-25 12:58:25
字體:
來源:轉載
供稿:網友

一、刪除數據庫日志文件的方法

你曾經有在執行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.至此會重新生成改庫的日志文件,整個過程完成

或者也可以采用手動附加(本方法參考@碼道程工)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 房产| 闽清县| 黄山市| 兴安盟| 汤阴县| 多伦县| 日照市| 北安市| 璧山县| 越西县| 吉木萨尔县| 佛冈县| 成都市| 新泰市| 阿荣旗| 金塔县| 衡东县| 额尔古纳市| 宁远县| 奉贤区| 华容县| 汽车| 鹤岗市| 思南县| 岢岚县| 仪征市| 金平| 阳泉市| 保亭| 融水| 鹰潭市| 昌黎县| 都匀市| 临汾市| 益阳市| 绥宁县| 余江县| 新绛县| 元氏县| 斗六市| 秦安县|