Sql server 交易機制與 log

9
SQL Server 交交交交交 Log By Jax

description

 

Transcript of Sql server 交易機制與 log

Page 1: Sql server 交易機制與 log

SQL Server 交易機制與 Log

By Jax

Page 2: Sql server 交易機制與 log

UPDATE Command Progress

• 從 mdf 讀取資料• 將執行動作寫入 ldf• 待下次 CheckPoint 將資料寫入 mdf

Page 3: Sql server 交易機制與 log

Recovery Progress

Page 4: Sql server 交易機制與 log

Recovery 的時機• 資料庫從離線轉成線上• 附加資料庫• 還原資料庫• 服務停止重起 / 叢集容錯移轉

Page 5: Sql server 交易機制與 log

交易紀錄檔應該放哪?• 專用的 LUN 通常是較好的選項• 如果存取量高,需要專屬的磁碟系統• RAID 1 或 RAID 10 提供保護與效能• RAID 5 通常不利於更新

• 儘量不要與其他檔案共用• 不同的檔案放在一起存取,大家都變成隨機存取

Page 6: Sql server 交易機制與 log

Checkpoint

• 確保 Recovery 的 Redo 階段最少工作量• 將更新過的資料頁 (dirty page) 寫入到磁碟內的資料檔• 不管交易狀態如何,將所有的 dirty page 寫入到資料檔

• 可能造成大量的 I/O• 不會從 Buffer pool 移除資料頁• 當有記憶體壓力時, Lazy Writer 執行此工作

Page 7: Sql server 交易機制與 log

Checkpoint 相關選項• 搭配 sp_configure 設定執行個體• recovery interval 選項

• SQL Server 2012 後可設定資料庫層級• Target_Recovery_Time 選項

Page 8: Sql server 交易機制與 log

Recovery Model• Simple

• 自動收回記錄空間,使空間需求保持在最低。• Checkpoint 發生時清掉交易紀錄• 不支援下列功能:

• 記錄傳送• AlwaysOn 或資料庫鏡像• 媒體復原而不遺失資料• 時間點還原

• Full• 不因損失或損毀資料檔而失去任何工作。• 備份交易紀錄後清掉交易紀錄• 所有的行為都有完整的紀錄• 預設值

• Bulk logged• 完整復原模式的輔助,允許執行高效能的大量複製作業。• 備份交易紀錄後清掉交易紀錄• 部分動作可以使用最少量的交易紀錄

Page 9: Sql server 交易機制與 log

Reference

• Recovery Model• http://msdn.microsoft.com/en-us/library/ms189275.aspx• http://technet.microsoft.com/en-us/library/ms189573.aspx• http://technet.microsoft.com/en-us/library/ms191455(v=sql.105).aspx