溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SQLServer數(shù)據(jù)庫日志已滿如何解決

發(fā)布時(shí)間:2021-07-24 17:30:24 來源:億速云 閱讀:2998 作者:Leah 欄目:數(shù)據(jù)庫

本篇文章給大家分享的是有關(guān)SQLServer數(shù)據(jù)庫日志已滿如何解決,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

  SQLServer數(shù)據(jù)庫日志已滿怎么解決

  一、簡(jiǎn)單方法

  1、右鍵數(shù)據(jù)庫→屬性→選項(xiàng)→故障還原模型→設(shè)為簡(jiǎn)單→確定;

  2、右鍵數(shù)據(jù)庫→所有任務(wù)→收縮數(shù)據(jù)庫→確定;

  3、右鍵數(shù)據(jù)庫→屬性→選項(xiàng)→故障還原模型→設(shè)為大容量日志記錄→確定。

  二、復(fù)雜方法

  1、清空日志DUMP TRANSACTION 庫名 WITH NO_LOG

  2、截?cái)嗍聞?wù)日志BACKUP LOG 數(shù)據(jù)庫名 WITH NO_LOG

  3、收縮數(shù)據(jù)庫文件(假如不壓縮,數(shù)據(jù)庫的文件不會(huì)減小)企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫--所有任務(wù)--收縮數(shù)據(jù)庫--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了--選擇數(shù)據(jù)文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了也可以用SQL語句來完成--收縮數(shù)據(jù)庫DBCCSHRINKDATABASE(客戶資料)--收縮指定數(shù)據(jù)文件,1是文件號(hào),可以通過這個(gè)語句查詢到:select*fromsysfilesDBCCSHRINKFILE(1)。

  4、為了最大化的縮小日志文件(假如是sql7.0,這步只能在查詢分析器中進(jìn)行)a.分離數(shù)據(jù)庫企業(yè)管理器--服務(wù)器--數(shù)據(jù)庫--右鍵--分離數(shù)據(jù)庫b.在我的電腦中刪除LOG文件c.附加數(shù)據(jù)庫企業(yè)管理器--服務(wù)器--數(shù)據(jù)庫--右鍵--附加數(shù)據(jù)庫此法將生成新的LOG,大小只有500多K或用代碼:下面的示例分離pubs,然后將pubs中的一個(gè)文件附加到當(dāng)前服務(wù)器。a.分離EXECsp_detach_db@dbname='pubs'b.刪除日志文件c.再附加EXECsp_attach_single_file_db@dbname='pubs',@physname='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\pubs.mdf'。

  5、為了以后能自動(dòng)收縮,做如下設(shè)置企業(yè)管理器--服務(wù)器--右鍵數(shù)據(jù)庫--屬性--選項(xiàng)--選擇"自動(dòng)收縮"--SQL語句設(shè)置方式:EXECsp_dboption'數(shù)據(jù)庫名','autoshrink','TRUE'。

  6、假如想以后不讓它日志增長(zhǎng)得太大企業(yè)管理器--服務(wù)器--右鍵數(shù)據(jù)庫--屬性--事務(wù)日志--將文件增長(zhǎng)限制為xM(x是你允許的最大數(shù)據(jù)文件大小)--SQL語句的設(shè)置方式:alterdatabase數(shù)據(jù)庫名modifyfile(name=邏輯文件名,maxsize=20)。

  特別注意:請(qǐng)按步驟進(jìn)行,未進(jìn)行前面的步驟,請(qǐng)不要做后面的步驟,否則可能損壞你的數(shù)據(jù)庫。一般不建議做第4、6兩步,第4步不安全,有可能損壞數(shù)據(jù)庫或丟失數(shù)據(jù),第6步假如日志達(dá)到上限,則以后的數(shù)據(jù)庫處理會(huì)失敗,在清理日志后才能恢復(fù)。

  SQLServer數(shù)據(jù)庫日志已滿怎么解決

  日志已滿而造成SQL數(shù)據(jù)庫無法寫入文件時(shí),可用兩種方法:

  一種方法:清空日志。

  1.打開查詢分析器,輸入命令DUMPTRANSACTION數(shù)據(jù)庫名WITHNO_LOG

  2.再打開企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫--所有任務(wù)--收縮數(shù)據(jù)庫--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了。

  另一種方法有一定的風(fēng)險(xiǎn)性,因?yàn)镾QLSERVER的日志文件不是即時(shí)寫入數(shù)據(jù)庫主文件的,如處理不當(dāng),會(huì)造成數(shù)據(jù)的損失。

  1:刪除LOG分離數(shù)據(jù)庫企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫->右鍵->分離數(shù)據(jù)庫。

  2:刪除LOG文件附加數(shù)據(jù)庫企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫->右鍵->附加數(shù)據(jù)庫此法生成新的LOG,大小只有500多K。

  注意:建議使用第一種方法。假如以后,不想要它變大。SQLServer2000下使用:在數(shù)據(jù)庫上點(diǎn)右鍵->屬性->選項(xiàng)->故障恢復(fù)-模型-選擇-簡(jiǎn)單模型。

  或用SQL語句:

  alterdatabase數(shù)據(jù)庫名

  setrecoverysimple

以上就是SQLServer數(shù)據(jù)庫日志已滿如何解決,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI