207_mysql_innodb_5_innodb_redo1

      網友投稿 564 2025-04-02

      一 事物 ?把保障 ACID 的一個或者多個對數據庫的操作 成為事物

      Atomicity(原子性)? 要么全做-成功,要么全部做-回滾的規則

      Consistency(一致性) 事務將數據庫從一種狀態轉變為另一種一致的狀態 在事務開始之前和事務結束以后,數據庫的完整性約束沒有被破壞。

      Isolation(隔離性) 事務的隔離性要求每個讀寫事務的對象與其他事務的操作對象能相互隔離,即該事務提交前對其他事務都不可見。

      Durability(持久性)事務一旦提交,其結果就是永久性的,即使發生宕機等故障,數據庫也能將數據恢復。

      事物的幾個狀態

      1 活動的(active) 事物執行中

      2 部分提交(partially committed) 由于操作在內存, 事物已經在內存中完成, 但并未刷盤的情況

      3 失敗(failed)? 事物由于遇到意外情況停止運行的情況

      4 終止(aborted)事物執行了一半而變為失敗狀態,發生了回滾,回到了事物初始狀態, 說這個事物處于終止狀態

      5 提交的(commited) 事物的修改都落盤后,該事物處于提交狀態

      事物語法

      Begin/START TRANSACTION START TRANSACTION READ ONLY / READ WRITE, WITH CONSISTENT SNAPSHOT WITH CONSISTENT SNAPSHOT 啟動一致性讀 COMMIT / ROLLBACK

      自動提交

      show variables like "%autocommit%"

      SET autocommit = OFF

      隱式提交

      1 DDL 會自動提交, CREATE, ALTER, DROP

      2 隱式使用或修改數據庫中的表 ALTER USE, CREATE USER, DROP USER, GRANT, RENAME USER,REVOKE, SET PASSWORD 等

      3 使用嵌套事物會觸發第一個事物提交

      4 LOCK TABLES

      5 加載數據語句 LOAD DATA 向數據庫中批量導入數據

      6 復制相關 START / STOP / RESET SLAVE? CHANGE MASTER TO

      7 其它: ANALYZE TABLE, CACHE INDEX, CHECK TABLE, FLUSH , LOAD INDEX INTO CACHE, OPTIMIZE TABLE, REPAIR TABLE ,RESET 等

      保存點

      SAVEPOINT 保存點名字

      Save point alex

      Rollback to alex

      二 Redo 概述

      DML(8.0+ DDL)操作導致的頁面變化,均需要記錄Redo日志;

      聚簇索引/二級索引/Undo頁面修改,均需要記錄Redo日志 WAL(write ahead log),Mysql保證redo優先于數據寫入磁盤

      show variables like '%innodb_log_file%';

      ib_logfile0 48M ib_logfile1 48M vim /etc/my.cnf # 添加參數: innodb_log_file_size=500M #生產建議大?。?512M-4G 組數: 2-4組 innodb_log_files_in_group=3

      LSN(日志序列號)

      LSN(log sequence number)日志序列號,5.6.3之后占用8字節,LSN主要用于發生crash時對數據進行recovery,LSN是一個一直遞增的整型數字,表示事務寫入到日志的字節總量。

      LSN不僅只存在于重做日志中,在每個數據頁頭部也會有對應的LSN號,該LSN記錄當前頁最后一次修改的LSN號,用于在recovery時對比重做日志LSN號 決定是否對該頁進行恢復數據。

      checkpoint也是有LSN號記錄的,LSN號串聯起一個事務開始到恢復的過程

      show engine innodb status\G Log sequence number 2687274848548 Log flushed up to 2687274848516 Pages flushed up to 2687273963960 Last checkpoint at 2687273963960 #簡單說明: Log sequence number: 當前系統最大的LSN號 log flushed up to:當前已經寫入redo日志文件的LSN pages flushed up to:已經將更改寫入臟頁的lsn號 Last checkpoint at就是系統最后一次刷新buffer pool臟中頁數據到磁盤的checkpoint_lsn #以上4個LSN是遞減的: LSN1>=LSN2>=LSN3>=LSN4.

      checkpoint

      sharp checkpoint

      完全檢查點,數據庫正常干凈關閉時,會觸發把所有的臟頁都寫入到磁盤上(這時候logfile的日志就沒用了,臟頁已經寫到磁盤上了)

      fuzzy checkpoint:模糊檢查點,部分頁寫入磁盤 下面四種情況

      1 master thread checkpoint

      master thread 差不多以每秒或每十秒的速度從緩沖池的臟頁列表中刷新一定比例的頁回磁盤,這個過程是異步的,不會阻塞用戶查詢。

      show variables like '%io_cap%';? ?#PCI-E 2000-3000 4000-6000;? ?flash 5000-8000 10000-16000

      2 ?flush_lru_list checkpoint

      show variables like '%lru%depth';? #空閑數據頁低于1024個

      3 ?async/sync flush checkpoint

      log file快滿了,會批量的觸發數據頁回寫,這個事件觸發的時候又分為異步和同步,不可被覆蓋的redolog占log file的比值:75%--->異步、90%--->同步 指的是重做日志文件不可用的情況,這時需要強制將一些頁刷新回磁盤,而此時臟頁是從臟頁列表中選取的。 若將已經寫入到重做日志的LSN記為redo_lsn,將已經刷新回磁盤最新頁的LSN記為checkpoint_lsn,則可定義:checkpoint_age = redo_lsn - checkpoint_lsn (redo日志占用大小) 再定義以下的變量: async_water_mark = 75% * total_redo_log_file_size sync_water_mark = 90% * total_redo_log_file_size 若每個重做日志文件的大小為1GB,并且定義了兩個重做日志文件,則重做日志文件的總大小為2GB。那么async_water_mark=1.5GB,sync_water_mark=1.8GB。 則: 1 checkpoint_age < async_water_mark時,不需要刷新任何臟頁到磁盤; 2 async_water_marksync_water_mark這種情況一般很少發生,除非設置的重做日志文件太小,并且在進行類似LOAD DATA的BULK INSERT操作。 此時觸發Sync Flush操作,從Flush列表中刷新足夠的臟頁回磁盤,使得刷新后滿足checkpoint_age

      4 dirty page too much checkpoint

      臟頁太多檢查點,為了保證buffer pool的空間可用性的一個檢查點

      show global status like 'Innodb_buffer_pool_pages%t%';

      show global status like '%wait_free';

      1、Innodb_buffer_pool_pages_dirty/Innodb_buffer_pool_pages_total:表示臟頁在buffer 的占比

      2、Innodb_buffer_pool_wait_free:如果>0,說明出現性能負載,buffer pool中沒有干凈可用塊

      207_mysql_innodb_5_Innodb_redo1

      2、臟頁控制參數

      show variables like '%dirty%pct%';

      1、默認是臟頁占比75%的時候,就會觸發刷盤,將臟頁寫入磁盤,騰出內存空間。建議不調,調太低的話,io壓力就會很大,但是崩潰恢復就很快;

      2、lwm:low water mark低水位線,刷盤到該低水位線就不寫臟頁了,0也就是不限制。

      Mysql 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:用(玩客云)小設備做linux服務器
      下一篇:wps表格如何查看打印預覽(wps怎么看打印預覽)
      相關文章
      亚洲国产精品第一区二区三区| 亚洲人成网站免费播放| 亚洲国产成人久久精品大牛影视| 午夜亚洲国产理论秋霞| 亚洲精品无码久久久| 国产亚洲精品仙踪林在线播放| 亚洲欧美国产国产一区二区三区 | 亚洲精品无码永久在线观看男男 | 亚洲春色另类小说| 亚洲日本一区二区三区| 久久久久亚洲AV成人无码| 国产AV无码专区亚洲AV男同| 亚洲精品无码午夜福利中文字幕| 久久久久亚洲AV无码专区桃色| 亚洲精品成人网久久久久久| 亚洲无码精品浪潮| 中文字幕精品亚洲无线码二区| 中文字幕日韩亚洲| 亚洲色婷婷综合久久| 亚洲春色在线视频| 亚洲av鲁丝一区二区三区| 久久久久亚洲精品天堂| 中文字幕亚洲综合久久| 亚洲精品白色在线发布| 亚洲人成网站日本片| 亚洲综合色区中文字幕| 亚洲午夜理论片在线观看| 亚洲偷自拍另类图片二区| 亚洲av第一网站久章草| 国产精品亚洲片在线花蝴蝶| 亚洲成A人片在线观看无码3D| 亚洲av无码成人精品区一本二本 | 亚洲国语在线视频手机在线| 亚洲人成免费电影| 亚洲综合色丁香婷婷六月图片| 亚洲欧美不卡高清在线| 一区国严二区亚洲三区| 久久久久亚洲精品中文字幕| 亚洲色成人网站WWW永久| 亚洲av日韩av激情亚洲| 亚洲国产一区在线观看|