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

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

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

2024-08-31 01:02:09
字體:
供稿:網(wǎng)友

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

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

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

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

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

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

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


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


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

復(fù)制代碼 代碼如下:


--日志文件收縮至多少M(fèi)
    DECLARE @DBLogSise AS INT
    SET @DBLogSise=0
    --查詢出數(shù)據(jù)庫對應(yī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ù)庫恢復(fù)模式為簡單
    ALTER DATABASE ['+@strDBName+'] SET RECOVERY SIMPLE;
    --收縮日志文件
    DBCC SHRINKFILE ('''+@strLogName+''' , '+CONVERT(VARCHAR(20),@DBLogSise)+');
    --恢復(fù)數(shù)據(jù)庫還原模式為完整
    ALTER DATABASE ['+@strDBName+'] SET RECOVERY FULL '
    exec(@strSQL)


1.在數(shù)據(jù)庫中執(zhí)行上面的存儲(chǔ)過程
2.然后再執(zhí)行 EXEC dbo.usp_p_delDBLog @DBLogSise = 0 (收縮至多少M(fèi))

二、沒有日志文件的數(shù)據(jù)庫恢復(fù)方法

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

操作步驟

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

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


5.執(zhí)行以下SQL語句

復(fù)制代碼 代碼如下:


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


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

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


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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘泉县| 繁昌县| 辉县市| 玉林市| 洛隆县| 华安县| 延长县| 库尔勒市| 临沭县| 新乡县| 巴彦淖尔市| 靖江市| 宁武县| 绥滨县| 清涧县| 松阳县| 阜平县| 揭阳市| 盐池县| 房产| 政和县| 三亚市| 天门市| 海丰县| 娄底市| 德化县| 肃南| 自治县| 平顶山市| 祁阳县| 峡江县| 诸城市| 墨竹工卡县| 平罗县| 晴隆县| 临海市| 开封县| 舒兰市| 青岛市| 吕梁市| 峨边|