主頁(yè) > 知識(shí)庫(kù) > 刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)恢復(fù)辦法

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

熱門標(biāo)簽:外呼系統(tǒng)的話術(shù) 智能外呼系統(tǒng)需要多少錢 競(jìng)圣地圖標(biāo)注服務(wù) 陽(yáng)光創(chuàng)信ai外呼獲客系統(tǒng)助力 智能語(yǔ)音車載電話機(jī)器人 云南全自動(dòng)外呼系統(tǒng)公司 安陽(yáng)天音防封電銷卡 衛(wèi)星地圖標(biāo)注距離 貴州外呼回?fù)芟到y(tǒng)是什么

一、刪除數(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)單->文件類型->日志->將文件收縮到

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

--日志文件收縮至多少M(fèi)
  DECLARE @DBLogSise AS INT
  SET @DBLogSise=0
  --查詢出數(shù)據(jù)庫(kù)對(duì)應(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ù)庫(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ù)磁盤已被全部用完,日志文件達(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ǔ)句

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

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

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

到此這篇關(guān)于刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)恢復(fù)辦法的文章就介紹到這了,更多相關(guān)刪除sqlserver數(shù)據(jù)庫(kù)日志和無(wú)日志的恢復(fù)辦法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • sqlserver 實(shí)現(xiàn)收縮數(shù)據(jù)庫(kù)日志操作
  • SqlServer修改數(shù)據(jù)庫(kù)文件及日志文件存放位置
  • SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
  • 診斷SQLSERVER問(wèn)題常用的日志概述及使用
  • Sqlserver 2000/2005/2008 的收縮日志方法和清理日志方法
  • SQLServer清理日志文件方法案例詳解

標(biāo)簽:河源 周口 鄂爾多斯 預(yù)約服務(wù) 欽州 寧夏 營(yíng)口 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)恢復(fù)辦法》,本文關(guān)鍵詞  刪除,sqlserver,數(shù)據(jù)庫(kù),日志,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)恢復(fù)辦法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于刪除sqlserver數(shù)據(jù)庫(kù)日志和沒(méi)有日志的數(shù)據(jù)庫(kù)恢復(fù)辦法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章