亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來(lái)到思海網(wǎng)絡(luò),我們將竭誠(chéng)為您提供優(yōu)質(zhì)的服務(wù)! 誠(chéng)征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購(gòu)買流程 | 付款方式 | 聯(lián)系我們 [ 會(huì)員登錄/注冊(cè) ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁(yè) >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

SQL Server日志文件用滿的相關(guān)處理

添加時(shí)間:2014-3-25 15:29:57  添加: 思海網(wǎng)絡(luò) 

  事務(wù)日志(Transaction logs)是數(shù)據(jù)庫(kù)結(jié)構(gòu)中非常重要但又經(jīng)常被忽略的部分。由于它并不像數(shù)據(jù)庫(kù)中的schema那樣活躍,因此很少有人關(guān)注事務(wù)日志。  

  事務(wù)日志是針對(duì)數(shù)據(jù)庫(kù)改變所做的記錄,它可以記錄針對(duì)數(shù)據(jù)庫(kù)的任何操作,并將記錄結(jié)果保存在獨(dú)立的文件中。對(duì)于任何每一個(gè)事務(wù)過程,事務(wù)日志都有非常全面 的記錄,根據(jù)這些記錄可以將數(shù)據(jù)文件恢復(fù)成事務(wù)前的狀態(tài)。從事務(wù)動(dòng)作開始,事務(wù)日志就處于記錄狀態(tài),事務(wù)過程中對(duì)數(shù)據(jù)庫(kù)的任何操作都在記錄范圍,直到用戶 點(diǎn)擊提交或后退后才結(jié)束記錄。每個(gè)數(shù)據(jù)庫(kù)都擁有至少一個(gè)事務(wù)日志以及一個(gè)數(shù)據(jù)文件。  

  出于性能上的考慮,SQL Server將用戶的改動(dòng)存入緩存中,這些改變會(huì)立即寫入事務(wù)日志,但不會(huì)立即寫入數(shù)據(jù)文件。事務(wù)日志會(huì)通過一個(gè)標(biāo)記點(diǎn)來(lái)確定某個(gè)事務(wù)是否已將緩存中的數(shù) 據(jù)寫入數(shù)據(jù)文件。當(dāng)SQL Server重啟后,它會(huì)查看日志中最新的標(biāo)記點(diǎn),并將這個(gè)標(biāo)記點(diǎn)后面的事務(wù)記錄抹去,因?yàn)檫@些事務(wù)記錄并沒有真正的將緩存中的數(shù)據(jù)寫入數(shù)據(jù)文件。這可以 防止那些中斷的事務(wù)修改數(shù)據(jù)文件。

  維護(hù)事務(wù)日志  

  因?yàn)楹芏嗳私?jīng)常遺忘事務(wù)日志,因此它也會(huì)給系統(tǒng)帶來(lái)一些問題。隨著系統(tǒng)的不斷運(yùn)行,日志記錄的內(nèi)容會(huì)越來(lái)越多,日志文件的體積也會(huì)越來(lái)越大,最終導(dǎo)致可用 磁盤空間不足。除非日常工作中經(jīng)常對(duì)日志進(jìn)行清理,否則日志文件最終會(huì)侵占分區(qū)內(nèi)的全部可用空間。日志的默認(rèn)配置為不限容量,如果以這種配置工作,它就會(huì) 不斷膨脹,最終也會(huì)占據(jù)全部可用空間。這兩種情況都會(huì)導(dǎo)致數(shù)據(jù)庫(kù)停止工作。  

  對(duì)事務(wù)日志的日常備份工作可以有效的防止日志文件過分消耗磁盤空間。備份過程會(huì)將日志中不再需要的部分截除。截除的方法是首先把舊記錄標(biāo)記為非活動(dòng)狀態(tài), 然后將新日志覆蓋到舊日志的位置上,這樣就可以防止事務(wù)日志的體積不斷膨脹。如果無(wú)法對(duì)日志進(jìn)行經(jīng)常性的備份工作,最好將數(shù)據(jù)庫(kù)設(shè)置為"簡(jiǎn)單恢復(fù)模式"。 在這種模式下,系統(tǒng)會(huì)強(qiáng)制事務(wù)日志在每次記錄標(biāo)記點(diǎn)時(shí),自動(dòng)進(jìn)行截除操作,以新日志覆蓋舊日志。  

  截除過程發(fā)生在備份或?qū)⑴f標(biāo)記點(diǎn)標(biāo)為非活動(dòng)狀態(tài)時(shí),它使得舊的事務(wù)記錄可以被覆蓋,但這并不會(huì)減少事務(wù)日志實(shí)際占用的磁盤空間。就算不再使用日志,它依然 會(huì)占據(jù)一定的空間。因此在維護(hù)時(shí),還需要對(duì)事務(wù)日志進(jìn)行壓縮。壓縮事務(wù)日志的方法是刪除非活動(dòng)記錄,從而減少日志文件所占用的物理硬盤空間。  

  通過使用DBCC SHRINKDATABASE語(yǔ)句可以壓縮當(dāng)前數(shù)據(jù)庫(kù)的事務(wù)日志文件,DBCC SHRINKFILE語(yǔ)句用來(lái)壓縮指定的事務(wù)日志文件,另外也可以在數(shù)據(jù)庫(kù)中激活自動(dòng)壓縮操作。當(dāng)壓縮日志時(shí),首先會(huì)將舊記錄標(biāo)記為非活動(dòng)狀態(tài),然后將帶 有非活動(dòng)標(biāo)記的記錄徹底刪除。根據(jù)所使用的壓縮方式的不同,你可能不會(huì)立即看到結(jié)果。在理想情況下,壓縮工作應(yīng)該選在系統(tǒng)不是非常繁忙的時(shí)段進(jìn)行,否則有 可能影響數(shù)據(jù)庫(kù)性能。  

  恢復(fù)數(shù)據(jù)庫(kù)  

  事務(wù)記錄備份可以用來(lái)將數(shù)據(jù)庫(kù)恢復(fù)到某一指定狀態(tài),但事務(wù)記錄備份本身不足以完成恢復(fù)數(shù)據(jù)庫(kù)的任務(wù),還需要備份的數(shù)據(jù)文件參與恢復(fù)工作。恢復(fù)數(shù)據(jù)庫(kù)時(shí),首 先進(jìn)行的是數(shù)據(jù)文件的恢復(fù)工作。在整個(gè)數(shù)據(jù)文件恢復(fù)完成前,不要將其設(shè)為完成狀態(tài),否則事務(wù)日志就不會(huì)被恢復(fù)。當(dāng)數(shù)據(jù)文件恢復(fù)完成,系統(tǒng)會(huì)通過事務(wù)日志的 備份將數(shù)據(jù)庫(kù)恢復(fù)成用戶希望的狀態(tài)。如果在數(shù)據(jù)庫(kù)最后一次備份后,存在多個(gè)日志文件的備份,備份程序會(huì)按照它們建立的時(shí)間依次將其恢復(fù)。  

  另一種被稱為log shipping的過程可以提供更強(qiáng)的數(shù)據(jù)庫(kù)備份能力。當(dāng)log shipping配置好后,它可以將數(shù)據(jù)庫(kù)整個(gè)復(fù)制到另一臺(tái)服務(wù)器上。在這種情況下,事務(wù)日志也會(huì)定期發(fā)送到備份服務(wù)器上供恢復(fù)數(shù)據(jù)使用。這使得服務(wù)器一 直處于熱備份狀態(tài),當(dāng)數(shù)據(jù)發(fā)生改變時(shí)它也隨之更新。另一個(gè)服務(wù)器被稱作監(jiān)視(monitor)服務(wù)器,可以用來(lái)監(jiān)視按規(guī)定時(shí)間間隔發(fā)送的shipping 信號(hào)。如果在規(guī)定時(shí)間內(nèi)沒有收到信號(hào),監(jiān)視服務(wù)器會(huì)將這一事件記錄到事件日志。這種機(jī)制使得log shipping經(jīng)常成為災(zāi)難恢復(fù)計(jì)劃中使用的方案。  

  性能優(yōu)化  

  事務(wù)日志對(duì)數(shù)據(jù)庫(kù)有重要作用,同時(shí)它對(duì)系統(tǒng)的整體性能也有一定影響。通過幾個(gè)選項(xiàng),我們可以對(duì)事務(wù)日志的性能進(jìn)行優(yōu)化。由于事務(wù)日志是一個(gè)連續(xù)的磁盤寫入過程,在這當(dāng)中不會(huì)發(fā)生讀取動(dòng)作。因此將日志文件放在一個(gè)獨(dú)立的磁盤,對(duì)優(yōu)化性能有一定作用。  

  另一項(xiàng)優(yōu)化措施與日志文件的體積有關(guān)。我們可以設(shè)置日志文件的體積不超過硬盤空間的百分之幾,或者確定它的大小。如果將其設(shè)置的過大會(huì)浪費(fèi)磁盤空間,而如果設(shè)置的過小則會(huì)強(qiáng)制記錄文件不斷嘗試擴(kuò)展,導(dǎo)致數(shù)據(jù)庫(kù)性能下降。  

  事務(wù)日志文件Transaction Log File是用來(lái)記錄數(shù)據(jù)庫(kù)更新情況的文件,擴(kuò)展名為ldf。  

  在 SQL Server 7.0 和 SQL Server 2000 中,如果設(shè)置了自動(dòng)增長(zhǎng)功能,事務(wù)日志文件將會(huì)自動(dòng)擴(kuò)展。  

  一般情況下,在能夠容納兩次事務(wù)日志截?cái)嘀g發(fā)生的最大數(shù)量的事務(wù)時(shí),事務(wù)日志的大小是穩(wěn)定的,事務(wù)日志截?cái)嘤蓹z查點(diǎn)或者事務(wù)日志備份觸發(fā)。  

  然而,在某些情況下,事務(wù)日志可能會(huì)變得非常大,以致用盡空間或變滿。通常,在事務(wù)日志文件占盡可用磁盤空間且不能再擴(kuò)展時(shí),您將收到如下錯(cuò)誤消息:  

  Error:9002, Severity:17, State:2  

  The log file for database '%.*ls' is full.  

  除了出現(xiàn)此錯(cuò)誤消息之外,SQL Server 還可能因?yàn)槿鄙偈聞?wù)日志擴(kuò)展空間而將數(shù)據(jù)庫(kù)標(biāo)記為 SUSPECT。有關(guān)如何從此情形中恢復(fù)的其他信息,請(qǐng)參見 SQL Server 聯(lián)機(jī)幫助中的“磁盤空間不足”主題。  

  另外,事務(wù)日志擴(kuò)展可能導(dǎo)致下列情形:

  · 非常大的事務(wù)日志文件。

  · 事務(wù)可能會(huì)失敗并可能開始回滾。

  · 事務(wù)可能會(huì)用很長(zhǎng)時(shí)間才能完成。

  · 可能發(fā)生性能問題。

  · 可能發(fā)生阻塞現(xiàn)象。  

  原因  

  事務(wù)日志擴(kuò)展可能由于以下原因或情形而發(fā)生:

  · 未提交的事務(wù)

  · 非常大的事務(wù)

  · 操作:DBCC DBREINDEX 和 CREATE INDEX

  · 在從事務(wù)日志備份還原時(shí)

  · 客戶端應(yīng)用程序不處理所有結(jié)果

  · 查詢?cè)谑聞?wù)日志完成擴(kuò)展之前超時(shí),您收到假的“Log Full”錯(cuò)誤消息

  · 未復(fù)制的事務(wù)
  
  解決方法:  

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

  一種方法:清空日志。

  1.打開查詢分析器,輸入命令 

DUMP TRANSACTION 數(shù)據(jù)庫(kù)名 WITH NO_LOG

 

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

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

  1.分離數(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

  另外,如上圖中數(shù)據(jù)庫(kù)屬性有兩個(gè)選項(xiàng),與事務(wù)日志的增長(zhǎng)有關(guān):

  Truncate log on checkpoint  

  (此選項(xiàng)用于SQL7.0,SQL 2000中即故障恢復(fù)模型選擇為簡(jiǎn)單模型)  

  當(dāng)執(zhí)行CHECKPOINT 命令時(shí)如果事務(wù)日志文件超過其大小的70% 則將其內(nèi)容清除在開發(fā)數(shù)據(jù)庫(kù)時(shí)時(shí)常將此選項(xiàng)設(shè)置為True Auto shrink定期對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢查當(dāng)數(shù)據(jù)庫(kù)文件或日志文件的未用空間超過其大小的25%時(shí),系統(tǒng)將會(huì)自動(dòng)縮減文件使其未用空間等于25% 當(dāng)文件大小沒有超過其建立時(shí)的初始大小時(shí)不會(huì)縮減文件縮減后的文件也必須大于或等于其初始大小對(duì)事務(wù)日志文件的縮減只有在對(duì)其作備份時(shí)或?qū)? Truncate 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ù)日志再次充。

關(guān)鍵字:SQL Server、日志、數(shù)據(jù)庫(kù)

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證: 粵B1.B2-20030321 備案號(hào):粵B2-20030321-1
網(wǎng)站公安備案編號(hào):44060602000007 交互式欄目專項(xiàng)備案編號(hào):200303DD003  
察察 工商 網(wǎng)安 舉報(bào)有獎(jiǎng)  警警  手機(jī)打開網(wǎng)站