預寫事務日誌
SQL Server 使用預寫日誌 (WAL),此日誌確保在將關聯的日誌記錄寫入磁碟後再將資料修改寫入磁碟。這維護了事務的 ACID 屬性。有關事務和 ACID 屬性的詳細資訊。
若要了解預寫日誌的工作原理,最重要的是瞭解如何將修改的資料寫入磁碟。SQL Server 維護當必須檢索資料時,將資料頁讀入的緩衝區快取記憶體。資料修改不是直接在磁碟上進行,而是修改高速緩衝儲存器中的頁副本。直到資料庫中出現檢查點,或者必須將修改寫入磁碟才能使用緩衝區來容納新頁時,才將修改寫入磁碟。將修改後的資料頁從高速緩衝儲存器寫入磁碟的操作稱為重新整理頁。在快取記憶體中修改但尚未寫入磁碟的頁稱為“髒頁”。
對緩衝區中的頁進行修改時,將在記錄修改的日誌快取記憶體中生成一條日誌記錄。在將關聯的髒頁從高速緩衝儲存器重新整理到磁碟之前,必須將這條日誌記錄寫入磁碟。如果在寫入日誌記錄前重新整理髒頁,則該髒頁便會在磁碟上建立修改。如果伺服器在將日誌記錄寫入磁碟前失敗,則不能回滾此修改。SQL Server 具有防止在寫入關聯的日誌記錄前重新整理髒頁的邏輯。日誌記錄將在提交事務時寫入磁碟。
注意: |
---|
某些 IDE SATA 驅動器在將資料寫入磁碟之前將資料寫入快取在內部記憶體中。這樣會導致預寫日誌無法正確工作。如果正在執行 SQL Server 的計算機使用這些磁碟型別之一,則應啟用 enable_force_flush 選項。
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-665887/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 事務日誌MySql
- Elasticsearch 的事務日誌Elasticsearch
- MySQL-14.MySQL事務日誌MySql
- 11.日誌和事務@Transactional
- Mysql 事務日誌(Ib_logfile)MySql
- zookeeper 清理snapshot及事務日誌
- 【PG】PostgreSQL 預寫日誌(WAL)、checkpoint、LSNSQL
- 《MySQL 進階篇》十九:事務日誌MySql
- 一種分散式預寫日誌系統分散式
- MySQL 事務、日誌、鎖、索引學習總結,MySql索引
- Spring AOP 日誌攔截器的事務管理Spring
- SQLSERVER 事務日誌的 LSN 到底是什麼?SQLServer
- 伺服器事務日誌已滿解決方法伺服器
- SQLSERVER事務日誌已滿 the transaction log for database 'xx' is fullSQLServerDatabase
- zaq寫入日誌
- 日誌服務
- 刪除事務日誌檔案並不安全WC
- SQLServer 2008中事務日誌已滿問題處理SQLServer
- mysql因為事務日誌問題無法啟動MySql
- mysql關於redo事務日誌ib_logfile的理解MySql
- mysql關於ib_logfile事務日誌和binary log二進位制日誌的區別MySql
- 在生產環境中使用預寫日誌WAL的SQLite - victoriaSQLite
- 關係型資料庫中的事務管理詳解:併發控制與事務日誌資料庫
- ABAP 檢視webservice錯誤日誌事務碼:SRT_UTILWeb
- SQLServer 2012 AG主節點無法截斷事務日誌SQLServer
- OceanBase 原始碼解讀(八):事務日誌的提交和回放原始碼
- laravelS 記錄accesslog日誌,服務慢查詢預警Laravel
- Filebeat 收集日誌的那些事兒
- 日誌服務之使用Nginx模式採集日誌Nginx模式
- MySQL 狂寫錯誤日誌MySql
- phpMyadmin通過日誌寫webshellPHPWebshell
- [爬坑日誌1]寫查詢的mysql一些小注意事項MySql
- 日誌服務 HarmonyOS NEXT 日誌採集最佳實踐
- SpringBoot切換預設日誌框架Spring Boot框架
- log4js快速寫一個Node服務訪問日誌JS
- 請問你知道分散式系統的預寫日誌設計模式麼?分散式設計模式
- 在SQL Server上測試事務日誌的自動增長(三)QOSQLServer
- 在SQL Server上測試事務日誌的自動增長(一)JPSQLServer
- 在SQL Server上測試事務日誌的自動增長(二)TGSQLServer