簡單恢復模式下,日誌檔案的增長

2021-05-02 01:08:18 字數 1216 閱讀 8430

最近公司要把兩個sql sever 2005 資料庫合併成乙個資料庫,乙個資料庫26g,乙個資料庫31g。這只是mdf檔案,不是ldf檔案。在合併之前就考慮到了日誌檔案會很大,但是沒有想到這麼大 。

把資料庫設定成簡單恢復模式,日誌檔案照樣非常大。簡單恢復模式並不等於沒有或者很少的日誌量。

當我使用預設的設定即日誌檔案的設定(初始大小1m,自動增長為10%,增長沒有限制),資料檔案的設定(初始大小2g,自動增長為1m,沒有限制),因 為我合併的資料庫比較大,資料量也較大,當用這種設定的時候,日誌檔案就很大,我為日誌檔案留下了100g的空間,還是不夠用,因為我跑資料是在晚上跑 的,當我第二天來看的時候,日誌檔案已經還原到了504k,奇怪怎麼日誌檔案會自動恢復到原始大小,當日誌檔案占用了整個磁碟的時候。當我檢視sql 的日誌記錄,或者是系統日誌的時候有記錄。說磁碟空間不足,日誌恢復到0。

這是我在sql server 2005 中的截圖

錯錯誤編號: 5144級別:10

資料庫'%3!'中檔案'%1!'的自動增長在 %5! 毫秒後已取消或出現超時。使用 alter database 設定更小的 filegrowth 或設定新的大小。2052

這個問題說明要求資料庫立即分配 xx mb 的儲存空間用於滿足你的處理需求,但資料庫在 xx 毫秒無法完成這個分配.難道這個錯誤

分析:當我使用預設的檔案設定的時候,mdf檔案每次增加1m,初始檔案2g。如果我把初始值改為20g 。這樣就避免了資料處理時候頻繁分配空間。也節省了時間。預先為它分配足夠的空間。日誌檔案也是分配。

測試結果:日誌檔案沒有突破100g,90g。看來這樣的設定是比較有用的。

這個設定只是針對頻繁匯入大量資料,在短時間內。

checkpoint 的理解:

通 常資料庫在提交(commit) 完成之前先要保證日誌都要寫到日誌檔案中去,而髒資料儲存到資料快取中,然後在分批寫入資料檔案中(也就是磁碟中)。日誌的寫入和提交是同步的,資料的寫 入和提交不是同步的。當資料庫崩潰時候,或者是一些其他原因使得資料庫停止工作,可能有些資料還在快取中,沒有提交到資料庫檔案。為了保證資料的一致性, 需要把資料恢復到崩潰之前的狀態。

在這個恢復的過程中,並不是所有的資料都需要恢復的,為了定位恢復的切入點,這就要用到checkpoint 這個概念。通過它來確定那些日誌需要重新做恢復。

SQL Server日誌在簡單恢復模式下的角色

在簡單恢復模式下,日誌檔案的作用僅僅是保證了sql server事務的acid屬性。並不承擔具體的恢復資料的角色。正如 簡單 這個詞的字面意思一樣,資料的備份和恢復僅僅是依賴於手動備份和恢復.在開始文章之前,首先要了解sql server提供的幾種不同備份型別。sql server提供的幾種備份型別...

事務日誌初探(二) 簡單恢復模式

簡述 在簡單恢復模式下,日誌檔案的作用僅僅是保證了sql server事務的acid屬性。並不承擔具體的恢復資料的角色。正如 簡單 這個詞的字面意思一樣,資料的備份和恢復僅僅是依賴於手動備份和恢復.我們簡單介紹下三種恢復模式。1.完整恢復模式 這種模式會為所有操作都記錄日誌,當資料檔案被破壞時,可以...

tempdb 日誌檔案增長的問題

前兩天在乙個客戶那裡發現tempdb log 檔案增長很大,已經使用40gb了,而tempdb log 檔案總的分配空間是70gb,並且日誌空間貌似不能重用,他們使用sql 2012 打的sp4補丁,遠端分析問題,沒有發現長時間開啟的事物,業務使用事物都是使用完即時關閉的,而且通過查詢tempdb ...