SQL數(shù)據(jù)庫(kù)日志已滿解決方法
當(dāng)前的解決方法是:把硬盤上的其他文件刪除,以空出硬盤空間,將數(shù)據(jù)庫(kù)的日志文件大小改成無(wú)限制,然后分離數(shù)據(jù)庫(kù),要確保分離成功,、然后把數(shù)據(jù)庫(kù)日志文件刪除(最好是先改名,以防萬(wàn)一)。再附加數(shù)據(jù)庫(kù),這樣會(huì)重建日志文件。
加回去之后,將數(shù)據(jù)庫(kù)改成自動(dòng)收縮,把日志文件改成按mb增長(zhǎng),增長(zhǎng)最大設(shè)為一個(gè)固定的值,值的大小看數(shù)據(jù)處理情況,存在大指的update操作的話,應(yīng)設(shè)為大一點(diǎn)。
在查詢分析器上操作:
清空日志
DUMP TRANSACTION 庫(kù)名 WITH NO_LOG
截?cái)嗍聞?wù)日志:
BACKUP LOG 數(shù)據(jù)庫(kù)名 WITH NO_LOG
解決SQL數(shù)據(jù)庫(kù)日志已滿的問(wèn)題
1、右鍵數(shù)據(jù)庫(kù)→屬性→選項(xiàng)→故障還原模型→設(shè)為簡(jiǎn)單→確定;
2、右鍵數(shù)據(jù)庫(kù)→所有任務(wù)→收縮數(shù)據(jù)庫(kù)→確定;
3、右鍵數(shù)據(jù)庫(kù)→屬性→選項(xiàng)→故障還原模型→設(shè)為大容量日志記錄→確定。
二、復(fù)雜方法
1、清空日志
DUMP TRANSACTION 庫(kù)名 WITH NO_LOG
2、截?cái)嗍聞?wù)日志
BACKUP LOG 數(shù)據(jù)庫(kù)名 WITH NO_LOG
3、收縮數(shù)據(jù)庫(kù)文件(如果不壓縮,數(shù)據(jù)庫(kù)的文件不會(huì)減小)
企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫(kù)--所有任務(wù)--收縮數(shù)據(jù)庫(kù)--收縮文件
--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了。
--選擇數(shù)據(jù)文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了
也可以用SQL語(yǔ)句來(lái)完成
--收縮數(shù)據(jù)庫(kù)
DBCC SHRINKDATABASE(客戶資料)
--收縮指定數(shù)據(jù)文件,1是文件號(hào),可以通過(guò)這個(gè)語(yǔ)句查詢到:select * from sysfiles DBCC SHRINKFILE(1)
4、為了最大化的縮小日志文件(如果是sql 7.0,這步只能在查詢分析器中進(jìn)行)
a.分離數(shù)據(jù)庫(kù)
企業(yè)管理器--服務(wù)器--數(shù)據(jù)庫(kù)--右鍵--分離數(shù)據(jù)庫(kù)
b.在我的電腦中刪除LOG文件
c.附加數(shù)據(jù)庫(kù)
企業(yè)管理器--服務(wù)器--數(shù)據(jù)庫(kù)--右鍵--附加數(shù)據(jù)庫(kù)
此法將生成新的LOG,大小只有500多K
或用代碼:
下面的示例分離 pubs,然后將 pubs 中的一個(gè)文件附加到當(dāng)前服務(wù)器。
a.分離
EXEC sp_detach_db @dbname = 'pubs'
b.刪除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program
Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
5、為了以后能自動(dòng)收縮,做如下設(shè)置
企業(yè)管理器--服務(wù)器--右鍵數(shù)據(jù)庫(kù)--屬性--選項(xiàng)--選擇"自動(dòng)收縮"
--SQL語(yǔ)句設(shè)置方式:
EXEC sp_dboption '數(shù)據(jù)庫(kù)名', 'autoshrink', 'TRUE'
6、如果想以后不讓它日志增長(zhǎng)得太大
企業(yè)管理器--服務(wù)器--右鍵數(shù)據(jù)庫(kù)--屬性--事務(wù)日志
--將文件增長(zhǎng)限制為xM(x是你允許的最大數(shù)據(jù)文件大小)
--SQL語(yǔ)句的設(shè)置方式:
alter database 數(shù)據(jù)庫(kù)名 modify file(name=邏輯文件名,maxsize=20)
特別注意:
請(qǐng)按步驟進(jìn)行,未進(jìn)行前面的步驟,請(qǐng)不要做后面的步驟,否則可能損壞你的數(shù)據(jù)庫(kù)。
一般不建議做第4、6兩步,第4步不安全,有可能損壞數(shù)據(jù)庫(kù)或丟失數(shù)據(jù),第6步如果日志達(dá)到上限,則以后的數(shù)據(jù)庫(kù)處理會(huì)失敗,在清理日志后才能恢復(fù)。
日志文件滿而造成SQL數(shù)據(jù)庫(kù)無(wú)法寫(xiě)入文件時(shí),可用兩種方法:
一種方法:清空日志。
1.打開(kāi)查詢分析器,輸入命令
DUMP TRANSACTION 數(shù)據(jù)庫(kù)名 WITH NO_LOG
2.再打開(kāi)企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫(kù)--所有任務(wù)--收縮數(shù)據(jù)庫(kù)--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了。
另一種方法有一定的風(fēng)險(xiǎn)性,因?yàn)镾QL SERVER的日志文件不是即時(shí)寫(xiě)入數(shù)據(jù)庫(kù)主文件的,如處理不當(dāng),會(huì)造成數(shù)據(jù)的損失。
1: 刪除LOG
分離數(shù)據(jù)庫(kù) 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->右鍵->分離數(shù)據(jù)庫(kù)
2:刪除LOG文件
附加數(shù)據(jù)庫(kù) 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->右鍵->附加數(shù)據(jù)庫(kù)
此法生成新的LOG,大小只有500多K。
注意:建議使用第一種方法。
如果以后,不想要它變大。
SQL2000下使用:
在數(shù)據(jù)庫(kù)上點(diǎn)右鍵->屬性->選項(xiàng)->故障恢復(fù)-模型-選擇-簡(jiǎn)單模型。
或用SQL語(yǔ)句:
alter database 數(shù)據(jù)庫(kù)名 set recovery simple
另外,Truncate log on checkpoint(此選項(xiàng)用于SQL7.0,SQL 2000中即故障恢復(fù)模型選擇為簡(jiǎn)單模型)當(dāng)執(zhí)行CHECKPOINT 命令時(shí)如果事務(wù)日志文件超過(guò)其大小的70%
則將其內(nèi)容清除在開(kāi)發(fā)數(shù)據(jù)庫(kù)時(shí)時(shí)常將此選項(xiàng)設(shè)置為True Auto shrink定期對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢查當(dāng)數(shù)據(jù)庫(kù)文件或日志文件的未用空間超過(guò)其大小的25%時(shí),系統(tǒng)將會(huì)自動(dòng)縮減文件使其未用空間等于25%
當(dāng)文件大小沒(méi)有超過(guò)其建立時(shí)的初始大小時(shí)不會(huì)縮減文件縮減后的文件也必須大于或等于其初始大小對(duì)事務(wù)日志文件的縮減只有在對(duì)其作備份時(shí)或?qū)runcate
log on checkpoint 選項(xiàng)設(shè)為True 時(shí)才能進(jìn)行。
注意:一般立成建立的數(shù)據(jù)庫(kù)默認(rèn)屬性已設(shè)好,但碰到意外情況使數(shù)據(jù)庫(kù)屬性被更改,請(qǐng)用戶清空日志后,檢查數(shù)據(jù)庫(kù)的以上屬性,以防事務(wù)日志再次充滿。
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- 清理SQL Server 2008日志文件Cannot shrink log file 2 的解決方案
- 收縮數(shù)據(jù)庫(kù)日志文件的方法(僅適用于mssql2005)
- SQL Server 數(shù)據(jù)庫(kù)清除日志的方法
- MSSQL 2005/2008 日志壓縮清理方法小結(jié)
- sql2005 日志清理 SQL2005壓縮清除日志的方法
- SQL Server 2000 清理日志精品圖文教程
- Sqlserver 2000/2005/2008 的收縮日志方法和清理日志方法
- 一次性壓縮Sqlserver2005中所有庫(kù)日志的存儲(chǔ)過(guò)程
- sqlserver 數(shù)據(jù)庫(kù)壓縮與數(shù)據(jù)庫(kù)日志(ldf)壓縮方法分享
- SQL2005日志收縮方法
- 一段壓縮MS SQLServer日志的語(yǔ)句
- SQL語(yǔ)句實(shí)現(xiàn)SQL Server 2000及Sql Server 2005日志收縮(批量)
- 清空MSSQL日志 與set recovery simple
- MS SQL SERVER 數(shù)據(jù)庫(kù)日志壓縮方法與代碼
- 清除SQLServer日志的兩種方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- SQL Server 2005刪除日志文件的幾種方法小結(jié)
相關(guān)文章
教你輕松恢復(fù)/修復(fù)SQL Server的MDF文件
下面將主要討論一下后者的備份與恢復(fù)。本文假定您 能熟練使用SQL Server Enterprise Manager(SQL Server企業(yè)管理器)和SQL Server Quwey Analyser(SQL Server查詢分析器)2013-11-11
通過(guò)T_sql語(yǔ)句向其中一次填入一條數(shù)據(jù)或一次填入多條數(shù)據(jù)的方式填充數(shù)據(jù)
使用T_sql語(yǔ)句向其中一次填入一條數(shù)據(jù)或一次填入多條數(shù)據(jù)的方式填入數(shù)據(jù),需要的朋友可以參考下2012-10-10
淺析SQL Server 聚焦索引對(duì)非聚集索引的影響
本篇文章對(duì)SQL Server的聚焦索引和非聚集索引進(jìn)行簡(jiǎn)單分析,從而總結(jié)出聚焦索引對(duì)非聚集索引的影響。有興趣的朋友可以看下2016-12-12
idea連接SQL?Server數(shù)據(jù)庫(kù)的詳細(xì)圖文教程
Idea的還有個(gè)強(qiáng)大之處就是連接數(shù)據(jù)庫(kù),就可以少開(kāi)一個(gè)數(shù)據(jù)庫(kù)工具了,下面這篇文章主要給大家介紹了關(guān)于idea連接SQL?Server數(shù)據(jù)庫(kù)的詳細(xì)圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
隨機(jī)抽取的sql語(yǔ)句 每班任意抽取3名學(xué)生
表 student ,字段 class 及name 。其中class 表示班級(jí),name 表示每班學(xué)生姓名。要求每班任意抽取3名學(xué)生出來(lái),進(jìn)行學(xué)校大掃除2014-07-07
[圖文]三分鐘學(xué)會(huì)Sql Server的復(fù)制功能
有兩個(gè)服務(wù)器,裝了兩個(gè)數(shù)據(jù)庫(kù),一個(gè)是主的,一個(gè)是備用的,下面的的功能就將主數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù),實(shí)時(shí)同步到備用數(shù)據(jù)庫(kù)上,使他們的數(shù)據(jù)內(nèi)容,基本上保持一致。2008-07-07
將MSSQL Server 導(dǎo)入/導(dǎo)出到遠(yuǎn)程服務(wù)器教程的圖文方法分享
如何將MSSQL Server 導(dǎo)入/導(dǎo)出到遠(yuǎn)程服務(wù)器教程,需要mssql數(shù)據(jù)庫(kù)備份的朋友用得到。2011-08-08

