預寫事務日誌
SQL Server 使用預寫日誌 (WAL),此日誌確保在將關聯的日誌記錄寫入磁碟後再將資料修改寫入磁碟。這維護了事務的 ACID 屬性。有關事務和 ACID 屬性的詳細資訊。
若要了解預寫日誌的工作原理,最重要的是瞭解如何將修改的資料寫入磁碟。SQL Server 維護當必須檢索資料時,將資料頁讀入的緩衝區快取記憶體。資料修改不是直接在磁碟上進行,而是修改高速緩衝儲存器中的頁副本。直到資料庫中出現檢查點,或者必須將修改寫入磁碟才能使用緩衝區來容納新頁時,才將修改寫入磁碟。將修改後的資料頁從高速緩衝儲存器寫入磁碟的操作稱為重新整理頁。在快取記憶體中修改但尚未寫入磁碟的頁稱為“髒頁”。
對緩衝區中的頁進行修改時,將在記錄修改的日誌快取記憶體中生成一條日誌記錄。在將關聯的髒頁從高速緩衝儲存器重新整理到磁碟之前,必須將這條日誌記錄寫入磁碟。如果在寫入日誌記錄前重新整理髒頁,則該髒頁便會在磁碟上建立修改。如果伺服器在將日誌記錄寫入磁碟前失敗,則不能回滾此修改。SQL Server 具有防止在寫入關聯的日誌記錄前重新整理髒頁的邏輯。日誌記錄將在提交事務時寫入磁碟。
注意: |
---|
某些 IDE SATA 驅動器在將資料寫入磁碟之前將資料寫入快取在內部記憶體中。這樣會導致預寫日誌無法正確工作。如果正在執行 SQL Server 的計算機使用這些磁碟型別之一,則應啟用 enable_force_flush 選項。
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-665887/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 日誌傳送事務日誌備份設定
- 11.日誌和事務@Transactional
- SQL Server 事務日誌傳輸SQLServer
- SQL Server事務日誌介紹SQLServer
- 終止oracle日誌分析事務Oracle
- mysql之 日誌體系(錯誤日誌、查詢日誌、二進位制日誌、事務日誌、中繼日誌)MySql中繼
- 淺談SQL Server中的事務日誌(一)----事務日誌的物理和邏輯構架SQLServer
- Mysql 事務日誌(Ib_logfile)MySql
- zookeeper 清理snapshot及事務日誌
- 恢復模式與事務日誌管理模式
- 關於日誌事務的問題
- 視覺化zookeeper的事務日誌視覺化
- SQL 事務日誌填滿的原因SQL
- MS SQL Server 事務日誌介紹SQLServer
- 一種分散式預寫日誌系統分散式
- redis 事務,持久化,日誌,主從,VMRedis持久化
- SQL Server 收縮事務日誌的方法SQLServer
- 清除 SQL SERVER 2005 事務日誌SQLServer
- SQL Server事務日誌的處理方法SQLServer
- SQL Server大型事務日誌的備份SQLServer
- 事務日誌邏輯體系結構
- DB2 的事務日誌(redo log)DB2
- MySQL 事務、日誌、鎖、索引學習總結,MySql索引
- SQL Server備份事務日誌結尾(Tail)SQLServerAI
- 使用日誌挖掘來挖掘TX等待的事務
- 有關事務日誌截斷和收縮
- SQL Server事務日誌過大的處理SQLServer
- sqlserver2008還原事務日誌(注意事項)SQLServer
- SQL Server 2008 事務日誌備份注意事項SQLServer
- 伺服器事務日誌已滿解決方法伺服器
- SQLSERVER 事務日誌的 LSN 到底是什麼?SQLServer
- SQLSERVER事務日誌已滿 the transaction log for database 'xx' is fullSQLServerDatabase
- Spring AOP 日誌攔截器的事務管理Spring
- 淺談SQL Server中的事務日誌(轉載)SQLServer
- mysql的innodb中事務日誌ib_logfileMySql
- SQL Server資料庫事務日誌儲存序列SQLServer資料庫
- SQL Server 2008 事務日誌備份SQLServer
- 基於事務日誌還原到時間點