中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

重做日志與二進制日志

發布時間:2020-08-16 12:35:12 來源:ITPUB博客 閱讀:147 作者:pentium 欄目:MySQL數據庫

MySQL 中有六種日志文件,
分別是:重做日志( redo log )、回滾日志( undo log )、二進制日志( binlog )、錯誤日志( errorlog )、慢查詢日志( slow query log )、一般查詢日志( general log ),中繼日志( relay log )。
其中重做日志和回滾日志與事務操作 息息相關 ,二進制日志也與事務操作有一定的關系,這三種日志,對理解 MySQL 中的事務操作有著重要的意義。
這里簡單總結一下這三者具有一定相關性的日志。
 
重做日志( redo log

作用:
  確保事務的持久性。
  防止在發生故障的時間點,尚有臟頁未寫入磁盤,在重啟 mysql 服務的時候,根據 redo log 進行重做,從而達到事務的持久性這一特性。
內容:
  物理格式的日志,記錄的是物理數據頁面的修改的信息,其 redo log 是順序寫入 redo log file 的物理文件中去的。
什么時候產生:
  事務開始之后就產生 redo log redo log 的落盤并不是隨著事務的提交才寫入的,而是在事務的執行過程中,便開始寫入 redo log 文件中。
什么時候釋放:
  當對應事務的臟頁寫入到磁盤之后, redo log 的使命也就完成了,重做日志占用的空間就可以重用(被覆蓋)。
對應的物理文件:
  默認情況下,對應的物理文件位于數據庫的 data 目錄下的 ib_logfile1&ib_logfile2
   innodb_log_group_home_dir 指定日志文件組所在的路徑,默認 ./ ,表示在數據庫的數據目錄下。
   innodb_log_files_in_group 指定重做日志文件組中文件的數量,默認 2
  關于文件的大小和數量,由一下兩個參數配置
   innodb_log_file_size 重做日志文件的大小。
   innodb_mirrored_log_groups 指定了日志鏡像文件組的數量,默認 1
其他:
  很重要一點, redo log 是什么時候寫盤的?前面說了是在事物開始之后逐步寫盤的。
  之所以說重做日志是在事務開始之后逐步寫入重做日志文件,而不一定是事務提交才寫入重做日志緩存,
  原因就是,重做日志有一個緩存區 Innodb_log_buffer Innodb_log_buffer 的默認大小為 8M( 這里設置的 16M),Innodb 存儲引擎先將重做日志寫入 innodb_log_buffer 中。

   重做日志與二進制日志

  然后會通過以下三種方式將 innodb 日志緩沖區的日志刷新到磁盤
   1 Master Thread 每秒一次執行刷新 Innodb_log_buffer 到重做日志文件。
   2 ,每個事務提交時會將重做日志刷新到重做日志文件。
   3 ,當重做日志緩存可用空間 少于一半時,重做日志緩存被刷新到重做日志文件
  由此可以看出,重做日志通過不止一種方式寫入到磁盤,尤其是對于第一種方式, Innodb_log_buffer 到重做日志文件是 Master Thread 線程的定時任務。
  因此重做日志的寫盤,并不一定是隨著事務的提交才寫入重做日志文件的,而是隨著事務的開始,逐步開始的。
  另外引用《 MySQL 技術內幕 Innodb 存儲引擎》( page37 )上的原話:
  即使某個事務還沒有提交, Innodb 存儲引擎仍然每秒會將重做日志緩存刷新到重做日志文件。
  這一點是必須要知道的,因為這可以很好地解釋再大的事務的提交( commit )的時間也是很短暫的。


回滾日志( undo log

作用:
  保存了事務發生之前的數據的一個版本,可以用于回滾,同時可以提供多版本并發控制下的讀( MVCC ),也即非鎖定讀

內容:
  邏輯格式的日志,在執行 undo 的時候,僅僅是將數據從邏輯上恢復至事務之前的狀態,而不是從物理頁面上操作實現的,這一點是不同于 redo log 的。

什么時候產生:
  事務開始之前,將當前是的版本生成 undo log undo 也會產生 redo 來保證 undo log 的可靠性

什么時候釋放:
  當事務提交之后, undo log 并不能立馬被刪除,
  而是放入待清理的鏈表,由 purge 線程判斷是否由其他事務在使用 undo 段中表的上一個事務之前的版本信息,決定是否可以清理 undo log 的日志空間。

對應的物理文件:
   MySQL5.6 之前, undo 表空間位于共享表空間的回滾段中,共享表空間的默認的名稱是 ibdata ,位于數據文件目錄中。
   MySQL5.6 之后, undo 表空間可以配置成獨立的文件,但是提前需要在配置文件中配置,完成數據庫初始化后生效且不可改變 undo log 文件的個數
  如果初始化數據庫之前沒有進行相關配置,那么就無法配置成獨立的表空間了。
  關于 MySQL5.7 之后的獨立 undo 表空間配置參數如下
   innodb_undo_directory = /data/undospace/ --undo 獨立表空間的存放目錄
   innodb_undo_logs = 128 -- 回滾段為 128KB
   innodb_undo_tablespaces = 4 -- 指定有 4 undo log 文件

  如果 undo 使用的共享表空間,這個共享表空間中又不僅僅是存儲了 undo 的信息,共享表空間的默認為與 MySQL 的數據目錄下面,其屬性由參數 innodb_data_file_path 配置。
   重做日志與二進制日志Dns8b+B7Z/2gQ8IoEhEij8xJ6sOF/wam1eOsX4Mnm9ySPSdcBuB0ynI+zUpg8HXvAMvXVI1xflyVlxftkGKtn8ZOp/f5ANJWmatiHdIFWvX2T0Ji5tn1l/mpY/Mn1XPiHdLKZvm5tlLPs3G4zn8aau3Qqz9we10czcSKY5nWtf3uLbTSmL36ZEyuRL27ci/q34sjZAHbDZhJjPp9YmKbZ/01ZiuTICZfFbVp7pzQlYD8f5gJybLG51A4P2mxtE2Ad0LNziL+O/n/jv/jZy80GeJUmABEiABEjgJggU3ka+Cc/pJAmQAAmQAAl8E4HOdyN/k93DqsZ6llZkmvHiiaJsppEACZAACVw1Aa5sr7p56RwJkAAJkMAQCPCZ7RBagTaQAAmQAAlcNQEOtlfdvHSOBEiABEhgCAQ42A6hFWgDCZAACZDAVRPgYHvVzUvnSIAESIAEhkCgeLB1vP5eSzgEr2kDCVQRYPxX0WHetRNg/PfSwsWDbS9VUSkJkAAJkAAJ3CYBDra32e70mgRIgARI4BsJpP/OtuLFDFUfCkhflF73In/mF31ogfz0Cz8uHB+M/8IPgTA+BxKftR9iadl/auP/G0elK64q9yECON7Rdyf5dPTzguZbfNk3fR5wLDH+2fdv+VrH+O8l/nkb+YpnUXSNBEiABEhgGAQ42A6jHWgFCZAACZDAFRNIn9lesZN0jQRIgARIgAQuSYAr20vSZ90kQAIkQAI3QYCD7U00M50kARIgARK4JAEOtpekz7pJgARIgARuggAH25toZjpJAiRAAiRwSQIcbC9Jn3WTAAmQAAncBAEOtjfRzHSSBEiABEjgkgQ42F6SPusmARIgARK4CQKFg+3E9Vt9Ys/xglby3ZCXd4UGCHxXqRObgsCHO+lGO9S7SlP9XWntQk/kq/gb/ec5ttay9pF21zJ+d6Dsyns607ZnfT2nuj7i//T4s+P3HD/OkdGxc27718m7fhqX0jcdr8s+eY7H1ypzfvy0jf9rJdqFX7n3QE5c/0rejewcPd9N/HN9/+hOunwnr62/yfuOXd87On2+d3XiHn3D5yY2ZcsMuf2r+IndntO+ffvy//T4+974Er8Dzzme+270OnnHC6zriiofdN0nq9u/Kn6y/aCP8++t//T4EZ/7iv8+eP4knf90MVprHTIjepuP1Olh8xuL9V5nQeftdjtMp9M4XX9RA7X5WpHMjOMqkH6RJM7NfLlit1ppsfT3lwv/bY7YSmx+L2CYmZYrOqrT73gInrVvgMXAlA0CPMf6oy8qxSdV8kX2ZNJkVaGrD4J5lHvYYLZYq2PdBnJi2ZbRU3pq+hApSXSXysQZUbsdsNmEmM81o4PNv8p/s+4yflLXnQs/0O2bxledfV3kN+JbFX+mjxLd2fhty6dKHsB+vcBMQDgPFTj012XybCvlJy4exxssluk1QZWPQtOor1w/KuzX7HV/0n0hiXOTbUX8nHJ9gdG3YOhXNkBfC+IYh4HdKavf0KGAGPoT/0qun6p8Rj4XPwZlHl6GQLLy07OEtjObMvloJpuu7LLl6vJd354Zyww8SFZxztGzZslyHhj5OIp8YJaRVWCQ2qP9L/6t1w/HsVatUl92pVU5s20gX2ybMZtvsLLNcs/qLMvPrsxUeyX8DRtKVu4Rf4N3ln8D/6v4RfGTrpTK/Mj6mz0/V07rKZOvjr8BxVflV1/iflXVb4rki9IK46RCf018CHervxXUWRU/0j7W186s64tcP9LYkraW+tLrD45Q8RyXUcen9f86/ao+g7sdZw3ip5B3vt/aevP5Os75exqbTle2TeYKu9US27jg/isE7myp0vyJi/twZa2WsV1i9SDPfNZY/3rAePOKdOK8xfL3HfyXrH5jJbtf43Xj48kBttoou3h75jTQ/3mHR2PWKsK7VEP9UVv5+hrOLyH8RyOM3gLEa+ZY1xjySLgOn67YbF9k+Xfg/26Vtm9RfGk7LvVr2mf5j58SX1ssZ01bu4yyXr3G+bsVZkuts0J/B/FRZpGsTCuvL2gQ//s1Fr8BX/URWdHOTrpr1qR/mf3Hiu8m16dS55nxHQS+fbD9DqfK6zgg/CzPbZfjwHu7x4fRweTWz1NjpW3lG1d0XsH9F8LDBov4lvR5Sqr4D9z/8xzOSFX5nymaO23Lp618zqDTEj5D4OGX3KxWUzM9YMsGqbs/eqCtUnlh+5vG/69x/IhqhLF2t8otnddUvy7P3x9HoHA38iC92K/xMX7M7CZ28DD+iGaP23eE8ye1ytL2O0/62Z1OGWH+Eu1OVikTFy/zEO9N+nqd/skdxofYFlGudEdPhnXt0e8Yd3pHtDyDCrzI5sbytrbvO9viPZy33GWe4Q/g3/uYf2P/S/h9H4gWNWX8N+Pvx8RXvMtVx21TGoX9t0i4RH/D+BjrziXPL/UGBquakvgptM+4vqA+/mVyHTwDq9kMs9kKeC76Vxkl9TfQb7mRPamLn2x5nn87gcJP7EnQvODVvmVba1rm1lBSPtpI8WlsnrI3EESbdV7xkmyuKspXm60yGwCkCr0hQlWX2UCB3Q676RTTwwarcI7n6UGSMJ3qQTCzQSexueSgQr9sQtKbGCLptK5yG+1NJo3kS0yTZHtzR1wwuUVX3T5b9U+ZnqG3LqXV2Dbm67DzU7n8kev7GIcmf3ujViP/rTZI6zZlS+Mnb1JhiujqOv6hNq+lMRFVnIk/yzcJ7jR+vyO+9KYiC4qxSSdK13GUstfla+UL+i+S+Ey0wAskDvP6zTYGUpZJ/7L0p5vxkk1SUoXFOFOHJR/Zk+iOzSuL/7rrW7JZtKr+wj4c2dhIv6U7Hz+acN3vefFfp5X5QqDzDVJFOpmW53xrTLIbQIbqPzeIMFaHGpvfYRfjv5/4/zm3kTkx+tEEohXBCPO3Yb4I5EfDpfEkQAKDJ1B4G3nwVtNAEiABEiABEvhBBG5sN3JJyxQ8q7FLZp7t2Jn9n9G+/hmzBhIgARLokQBXtj3CpWoSIAESIAESEAJ8Zss4IAESIAESIIGeCXCw7Rkw1ZMACZAACZAAB1vGAAmQAAmQAAn0TICDbc+AqZ4ESIAESIAEigdbx2v5Wj6CJYEfTIDx/4Mbj6a3JsD4b42wSEHxYFtUkmkkQAIkQAIkQAJnEeBgexY2CpEACZAACZBAcwLpv7OteHFC9DJu/QLyrHL9wgfmRy9QJx+bwA+JD8Z//AEAu/Xki8yrmXyDmv37qvt3bfxn44Ln5xDIfYgAjnf03Uk+veCjBd/xYmzW0c+Lscm1hCvjn33/lq91jP9e4p+3kc+ZnlCGBEiABEiABE4gwMH2BFgsSgIkQAIkQALnEEif2Z4jTRkSIAESIAESIIFaAlzZ1iJiARIgARIgARJoR4CDbTt+lCYBEiABEiCBWgIcbGsRsQAJkAAJkAAJtCPAwbYdP0qTAAmQAAmQQC0BDra1iFiABEiABEiABNoR4GDbjh+lSYAESIAESKCWAAfbWkQsQAIkQAIkQALtCOQGW8cLEATBj/7Envjgu5N2ZH6AtOv7yLo5cX3VftKGgeec7EWd/KDjQ97v6rsn+0wBEiABEvgOAsl7ICeufww858h4I5e8M7eD96W6vnd0OtAjbaTaytQlab6btKfjBUfPOcGXGvmfEB8n+2zy43ESO3xv9gn9hnHDuGkQA/+Yo/l+vcBMEpwHM7nxsesHmI+Aw+Y3XvGCNzlJvhoSqdFlojP9RREgSd+tMFtuVbasop6nEIWYLda1dsiqLKozsmGx3icyOm+322E6FaXyl9YfJ9T+JHZKycMBB3xgoW3LfjnDtNvMCwI8xzVFX1SqrTZXwH2cYvd3aaU7D2NsXtO07Z8NHp8cYBvxtAoXnNTJt40PqfJsfrG9SUzI+WGDDe6B1wV0UyufX1xgWx8vBQiYRAIkQAK9EcjPStp89UFWR0GQrrAcL1lduX5gf03IXElN3KMvq+rMDMHx/KM7OW2WKSuwoq8WqZVZkK4sy8plbdDn2fKyijJXkq5v26rqM1aaoqebla1z9Aw/tH05VsI0U78uW/TbWP7M+GjLT/E2YkTxDWzmgLDJpp0WP0VsmEaGjAHGQJsYsFa2XQ3nsrJNVpXbJdRaa+LiPlyl6VLZdonVgzx3XGO9X+Nj7MHBFneyQoasZr/wMP7AMl2gtjZxt5Jvc0Z/+68QuGuucr/+izB4QzDXMrIyjldQ4t9ohNGb2G7+jSFPTnWdZs7Zx5M7jM8WvpxgO34OHsYSEylJtdLOLWC3CA/PGP8C0GHcXI4aayYBErgGAr0MtueC+QrHuJs4GGODVXgP1wHG4de56nqQ22I5Sy/2cDwEvout3EbefyE8bNJbyj3UXq9ylB9kTuLXVr7OwqHzq7Of+SRAAiRwHoHcbuTz1DSQUivXx8zuWVmtfKTP295DjJ8eMP74D9v3EPeP9wjfjcGtQTV9Fina/YtkMNviPZw32AUtE4rYShmsA1nNn/gnA3uBiDyvTJUDztO8gJ8DT3YqF9TbTL6g4oZJ7fgV8Y18sTddOxiPDgg/GxrFYiRAAiTwDQSsla21+QTT6Hapucmn0iC58D0j2noUy8oWpNUM8X4nrF8/4Gdus0p+8vcZYvx8j48/e2D/jvD58YSLplm/aNS3e6NNUJ/J5qkAHmZYwkOgdl9N4cO47Z0YU3QwwtyyX3Snk4HtcqZugae3mUWHvQlr/TdEkOiw84pqLE6LbpU+ZPc+7dcIX4L0NrdsNkvNK1ZlptbIt4sPqagdvyK+ZnwpV+QW+6HbRw8mIh7TAAmQwDkE+D3bc6gNQUZWxQ/vyc7tIZg0BBtkQvDwnk7whmATbSABEiCB77uNTNbdEtgusRlnb8t3W8WP0zZx8TjeJHdSfpz9NJgESOBqCXBle7VNS8dIgARIgASGQoAr26G0BO0gARIgARK4WgIcbK+2aekYCZAACZDAUAhwsB1KS9AOEiABEiCBqyXw/0ZKbqIR53gdAAAAAElFTkSuQmCC">

其他:
   undo 是在事務開始之前保存的被修改數據的一個版本,產生 undo 日志的時候,同樣會伴隨類似于保護事務持久化機制的 redolog 的產生。
  默認情況下 undo 文件是保持在共享表空間的,也即 ibdatafile 文件中,當數據庫中發生一些大的事務性操作的時候,要生成大量的 undo 信息,全部保存在共享表空間中的。
  因此共享表空間可能會變的很大,默認情況下,也就是 undo 日志使用共享表空間的時候,被 撐大 的共享表空間是不會也不能自動收縮的。
  因此, mysql5.7 之后的 獨立 undo 表空間 的配置就顯得很有必要了。


二進制日志( binlog ):

作用:
   1 ,用于復制,在主從復制中,從庫利用主庫上的 binlog 進行重播,實現主從同步。
   2 ,用于數據庫的基于時間點的還原。
內容:
  邏輯格式的日志,可以簡單認為就是執行過的事務中的 sql 語句。
  但又不完全是 sql 語句這么簡單,而是包括了執行的 sql 語句(增刪改)反向的信息,
  也就意味著 delete 對應著 delete 本身和其反向的 insert update 對應著 update 執行前后的版本的信息; insert 對應著 delete insert 本身的信息。
  在使用 mysqlbinlog 解析 binlog 之后一些都會 真相大白
  因此可以基于 binlog 做到類似于 oracle 的閃回功能,其實都是依賴于 binlog 中的日志記錄。

什么時候產生:
  事務提交的時候,一次性將事務中的 sql 語句(一個事物可能對應多個 sql 語句)按照一定的格式記錄到 binlog 中。
  這里與 redo log 很明顯的差異就是 redo log 并不一定是在事務提交的時候刷新到磁盤, redo log 是在事務開始之后就開始逐步寫入磁盤。
  因此對于事務的提交,即便是較大的事務,提交( commit )都是很快的,但是在開啟了 bin_log 的情況下,對于較大事務的提交,可能會變得比較慢一些。
  這是因為 binlog 是在事務提交的時候一次性寫入的造成的,這些可以通過測試驗證。

什么時候釋放:
   binlog 的默認是保持時間由參數 expire_logs_days 配置,也就是說對于非活動的日志文件,在生成時間超過 expire_logs_days 配置的天數之后,會被自動刪除。
   重做日志與二進制日志

對應的物理文件:
  配置文件的路徑為 log_bin_basename binlog 日志文件按照指定大小,當日志文件達到指定的最大的大小之后,進行滾動更新,生成新的日志文件。
  對于每個 binlog 日志文件,通過一個統一的 index 文件來組織。

重做日志與二進制日志cDNLxlIf//vy0J+PsP2zB/af8ObTBideU79I1EvX4cayr3hDmoKDMRZwoIIdbUO4MJbwY2PyvvQwSdkvspMLis1iHCznJ0vmIiO9sW314UHFMtJ1eRrzy8Jl3+fsfrL9Ct6rSpbsZQNfYl6+KLO0ov958SGKzuOXx9eMr2AocrvAv+xtFBMRv5MACZDAXQgUbjrLbPy654126i7Y6CEb9owNWOQUcuKfdRXEC4/pow2tPGYYK22Kgdsuid/lkuQHK90ssO5nbzH84PHWGdrAxrS/jld06nRhGxIgARJoA4G/JMP+9etXG2yljSRAAiRAAiTQWQLMsDvreg6cBEiABEigTQQ4YbfJW7SVBEiABEigswQ4YXfW9Rw4CZAACZBAmwhwwm6Tt2grCZAACZBAZwlwwu6s6zlwEiABEiCBNhH4H0G/jmQnBPsTAAAAAElFTkSuQmCC">  

其他:
  二進制日志的作用之一是還原數據庫的,這與 redo log 很類似,很多人混淆過,但是兩者有本質的不同
   1 ,作用不同: redo log 是保證事務的持久性的,是事務層面的, binlog 作為還原的功能,是數據庫層面的 (當然也可以精確到事務層面的),雖然都有還原的意思,但是其保護數據的層次是不一樣的。
   2 ,內容不同: redo log 是物理日志,是數據頁面的修改之后的物理記錄 binlog 是邏輯日志,可以簡單認為記錄的就是 sql 語句
   3 ,另外,兩者日志產生的時間,可以釋放的時間,在可釋放的情況下清理機制,都是完全不同的。
   4 ,恢復數據時候的效率,基于物理日志的 redo log 恢復數據的效率要高于語句邏輯日志的 binlog

  關于事務提交時, redo log binlog 的寫入順序,為了保證主從復制時候的主從一致(當然也包括使用 binlog 進行基于時間點還原的情況),是要嚴格一致的,
   MySQL 通過兩階段提交過程來完成事務的一致性的,也即 redo log binlog 的一致性的,理論上是先寫 redo log ,再寫 binlog ,兩個日志都提交成功(刷入磁盤),事務才算真正的完成。
  參考: http://www.cnblogs.com/hustcat/p/3577584.html

 

總結:

   MySQL 中,對于以上三種日志,每一種細化起來都可以夠寫一個章節的,這里粗略地總結了一下三種日志的一些特點和作用,以幫助理解 MySQL 中的事物以及事物背后的原理。

 

Mysql 重做日志及與二進制日志的區別

Mysql 重做日志及與二進制日志的區別 (轉 http://blog.uouo123.com/post/623.html

Mysql 默認情況下會有兩個文件: ib_logfile0 ib_logfile1 ,這兩個文件就是重做日志文件,或者事務日志

重做日志的目的: 萬一實例或者介質失敗,重做日志文件就能派上用場

每個 InnoDB 存儲引擎至少有一個重做日志文件組,每個文件組下至少有 2 個重做日志文件,如默認的 ib_logfile0 ib_logfile1 InnoDB 存儲引擎先寫重做日志文件 1 ,當達到文件的最后時,會切換至重做日志文件 2 ,當重做日志文件 2 也被寫滿時,會再被切換到重做日志文件 1

影響重做日志的參數

Innodb_log_file_size innodb_log_files_in_group innodb_log_group_home_dir 影響著重做日志文件的屬性

  重做日志與二進制日志VPSVjlZsvFbD8jU3AruPU5S8Gt4LZKJDupX1U24qEA0Mu+22eTabD1lffBHDNWnZTJtJ9Z79h+snWx5XzzE6rbzHgUyRTcCm4bjaLG3okzhie4Fdz6HK/gVnAruG32iZY+m+wkaMYMwLD9ZGCOWe8Et+2aE3PMfGOrtIQeBOrYhudTElYhmXKCW8Gtb4ER3ApuBbeC204Cdew11lcfs3bGjrayMn3+mtl8KHLbg6DJTGyIEjUJmorc1guaMXWjSIdCHQerj90kM704+BaLkIUg3c8qYFV2bJuQmV6kBoNMpSX8r+0x8XnjEQIwsdaobpYZ078w/SzrN6rMJyuTab9PJ0LXqBgyFbntQaCObXg+xWSNgCmnyG29QB1TNwS39d2A1AmgFtzWN59NbWTT/jOW7w6BicEgM6YfZcaWWTtDNuwxZTJ1+XRCcNuDoBnTqcWsizWWpmUKbgW3PmeptITpVsnaMFtOcCu4rRLpS64VZWw4S/8YiIy5Rvna7YO0MleQGJmsDbPlYspk6vKNm+BWcNuy44F6OU1wK7j1OUvBreA2b7FkYciVG6h+dDCBpuA2fFPm87Ehm2emLsHtjGhEGYr3DV5saGINii3HOmWmn0xdITu8JmXGnif20nnMeepmmTF1g+1nEzLLRExYG+hEikAnZCpyGw4JrA415V/S/jOW7w4BmMEgM6ZPY8aW1TO2XEyZTF0+nSjDfMwcFLVNObc9GC1mJj3ECHyKydbFlBPcKnLrc5aK3Cpyq8itTktIR6fL+I2sDR27fsZaF33tDomiMmss0+4QmUz7fTIFtz0ImjF37DHrCjECn2KydTHlBLeCW5+zFNwKbgW3glvBbZ8fqAMOmfWaYQOGW+pov69titz2IFCzO0+mHKOYrBEw5QS3glvBbf+bxarAHGN3WfUPBplFPpDxjyFj61ts2brYcjF9t88mOwmanehnbN3w1cfOOVuOmc+Ydfl0X3Dbg6AZ2/B8SsIqJFsuZvsZmYJbwa3P8Spyq8htFfBO6pfgVufchqw5zPpbB6gxa6fTax8os31gZfr8NcMQdYyZr5//HzsjGEING1yUAAAAAElFTkSuQmCC">

重做日志與二進制日志的區別

1 )二進制日志會記錄所有與 mysql 有關的日志記錄,包括 InnoDB 等其他存儲引擎的日志,而 InnoDB 存儲引擎的重做日志只記錄有關其本身的事務日志

2 )記錄的內容不容,不管你將二進制日志文件記錄的格式設為哪一種, 其記錄的都是關于一個事務的具體操作內容,而 InnoDB 存儲引擎的重做日志文件記錄的關于每個頁的更改的物理情況

3 )寫入的時間也不同,二進制日志文件是在事務提交前進行記錄的,而在事務進行的過程中,不斷有重做日志條目被寫入重做日志文件中

從日志緩沖寫入磁盤上的重做日志文件的條件

在主線程中每秒會將重做日志緩沖寫入磁盤的重做日志文件中,不論事務是否提交。另一個觸發這個過程是由參數 innodb_flush_log_at_trx_commit 控制,表示在提交時,處理重做日志的方式

參數 innodb_flush_log_at_trx_commit 可設的值有 1 2,0 代表當提交事務時,并不將事務的重做日志寫入磁盤上的日志文件,而是等待主線程每秒的刷新,而 1 2 不同的地方在于: 1 是在 commit 時將重做日志緩沖同步寫到磁盤; 2 是重做日志異步寫到磁盤,即不能完全保證 commit 時肯定會寫入重做日志文件,只是有這個動作

  值得注意的一點:因為重做日志有個 capacity 變量,該值代表了最后的檢查點不能超過這個閥值

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

法库县| 遂川县| 台安县| 蒙自县| 贞丰县| 黑山县| 枣阳市| 将乐县| 静安区| 元氏县| 石首市| 博野县| 兴义市| 汤阴县| 三原县| 安庆市| 石嘴山市| 江西省| 牡丹江市| 滦平县| 安福县| 图木舒克市| 庆城县| 时尚| 东辽县| 南漳县| 上饶市| 常山县| 隆昌县| 武义县| 泗洪县| 故城县| 博湖县| 资兴市| 中阳县| 共和县| 永顺县| 阿巴嘎旗| 英山县| 上犹县| 和硕县|