日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql ddl crash,MySQL5.6 crash-safe replication一个坑

發布時間:2024/9/3 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql ddl crash,MySQL5.6 crash-safe replication一个坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題圖:《唐伯虎點秋香》

版本背景

1)操作系統

cat?/proc/versionLinux?version?2.6.32-696.el6.x86_64?(mockbuild@c1bm.rdu2.centos.org)?(gcc?version?4.4.7?20120313?(Red?Hat?4.4.7-18)?(GCC)?)?#1?SMP?Tue?Mar?21?19:29:05?UTC?2017

2)mysql數據庫版本

mysql?--versionmysql??Ver?14.14?Distrib?5.6.26,?for?linux-glibc2.5?(x86_64)?using??EditLine?wrapper

問題描述

在測試crash-safe 功能時發現了點問題,如果我指定了 relay_log_info_repository = TABLE,這時主庫執行DDL語句后,從庫的 relay_log_info_repository 表中的 Master_log_pos 字段并不會立即被更新(這時ddl操作已經被應用到從庫,并且從庫show slave status\G; 查看執行的位置是正確的),而DML語句不會有該問題(sync_relay_log_info 為默認值 10000)。

如果在主庫執行了一個ddl,并且該ddl被從庫應用后,緊接著(從庫執行該ddl后)從庫異常宕機。那么從庫再啟動后可能會把之前已經執行過的ddl再次執行一遍,導致復制異常 會遇到如下錯誤:

Error 'Duplicate column name 'name_1'' on query. Default database: 'test_shao'. Query: 'alter table test_4 add column name_1 varchar(20)'

問題原因

我們知道,MySQL 5.6 針對復制功能提供了新特性: slave支持crash-safe. 該功能可以解決之前版本中系統異常斷電可能導致的SQL thread 信息不準確的問題。##關于crash-safe 詳細介紹請參見 MySQL5.6新特性之crash-safe slaves。

實現從庫 crash-safe需要在從庫配置文件中添加如下兩個參數,并重啟實例

relay_log_info_repository = TABLE

relay_log_recovery = ON

從庫實現 crash-safe 的大概原理就是把 sql_thread 的執行位置記錄到 innodb 表中(relay_log_info_repository = TABLE),并且把 sql_thread 線程執行事務和更新 mysql.slave_relay_log_info 放在一個事物中,從而避免實際已執行的binlog位點和寫入relay log info 的位點信息不一致的情況發生。那怎么保證 io_thread 線程位點的正確性,是通過添加 relay_log_recovery = ON 參數,在從庫實例重啟時會自動把 io_thread 線程位點初始化成 sql_thread位點。

##對于dml 我們可以做到把 dml操作 和 mysql.slave_relay_log_info表的更新放到一個事務中來保證位點正確性,那么對于 ddl 操作呢?

問題處理

如果我指定了 relay_log_info_repository = TABLE,這時主庫執行DDL語句后,從庫的 relay_log_info_repository 表中的 Master_log_pos 字段并不會立即被更新(這時ddl操作已經被應用到從庫,并且從庫show slave status\G; 查看執行的位置是正確的),而DML語句不會有該問題。這時有如下幾種情況會讓從庫的 relay_log_info_repository表信息更新到最新值

1)如果此時主庫再執行一個dml操作,我們會發現從庫 relay_log_info_repository 中記錄的位置被更新為最新值。

2)重啟復制線程 stop slave; start slave;

3)設置 從庫 sync_relay_log_info = 1

##官方文檔中說到 如果 relay_log_info_repository = TABLE, 對于支持事務的存儲引擎來說,會忽略 sync_relay_log_info 該參數,但是實測 發現對于 ddl 如果 sync_relay_log_info 大于 1,則 mysql.slave_relay_log_info 表中 主庫binlog 位置不會及時刷新。設置為1 時會及時刷新。

4)如果你確定ddl語句已經在從庫執行,那你可以 set global sql_slave_skip_counter=1; 跳過該錯誤,修復主庫復制

##綜上所述,如果你 設置了 relay_log_info_repository = TABLE,建議同時設置 sync_relay_log_info = 1

總結

以上是生活随笔為你收集整理的mysql ddl crash,MySQL5.6 crash-safe replication一个坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 69xx国产| 少妇高潮一区二区三区四区 | 日本亚洲欧洲色 | 精品精品视频 | 色香蕉网站 | 亚洲视频日韩 | 亚洲精品一 | 天天搞天天搞 | 日韩经典午夜福利发布 | zzjj国产精品一区二区 | 内射后入在线观看一区 | 色眯眯影视 | 日韩欧洲亚洲AV无码精品 | 亚洲av无码一区二区三区人妖 | 中文字幕日韩亚洲 | 亚洲天堂999 | 欧性猛交ⅹxxx乱大交 | 欧美一级色图 | 久久人人爽天天玩人人妻精品 | 农村少妇无套内谢粗又长 | 成年人视频在线观看免费 | 女同性恋毛片 | 最新的黄色网址 | 99免费在线观看视频 | 欧美区国产区 | 亚州一级 | 精品人妻午夜一区二区三区四区 | 国产小视频你懂的 | 少妇25p | 欧美日韩精品免费 | 亚洲激情视频小说 | 狼人狠狠干 | 麻豆免费视频网站 | 女女同性被吸乳羞羞 | 天天操天天拍 | 欧美激情网站 | 欧美 日本 国产 | 国产精品久久久久久无人区 | 瑟瑟网站免费 | 日韩精品电影网 | 欧美精品欧美精品系列 | 五月婷婷社区 | 极品粉嫩小仙女高潮喷水久久 | 久久精品国产一区二区三区 | 国产美女无遮挡永久免费观看 | 色伊人av| 黄色av一级片 | 超碰免费在线观看 | 国产欧美精品一区 | 亚洲精品一区二区三区四区五区 | 日日草夜夜操 | 午夜香蕉 | 97视频免费观看 | 婷婷爱五月天 | 久久久精品免费视频 | www.精品| brazzers欧美大波霸 | 久久久激情视频 | 在线亚洲不卡 | 韩国三级视频在线观看 | 欧美精品乱码99久久蜜桃 | 久久午夜夜伦鲁鲁片 | 欧美六区 | 水多多在线 | 日韩mv欧美mv国产网站 | 精品久久影视 | 日韩精品视频在线观看网站 | 久久老司机精品视频 | 亚洲天堂成人在线观看 | 久久久久免费 | 亚洲综合99| 欧美成人精品一区二区免费看片 | 国产911在线观看 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 国产极品视频在线观看 | av男人资源 | 日本啊啊视频 | 青青草午夜 | 亚洲欧美在线视频观看 | 日韩av无码一区二区三区 | 日韩有码中文字幕在线 | 桃色av | 亚洲啪av永久无码精品放毛片 | 国内偷拍久久 | 久久国产区 | 国产无码精品在线观看 | 91精品国产91久久久久久久久久久久 | 国产日韩专区 | 69式视频 | 国产伦理一区二区三区 | 男人影院在线观看 | 丁香婷婷色 | 国产欧美一区二区在线观看 | 私人午夜影院 | 免费手机av | 91麻豆网 | 久久福利影院 | 人妻熟女一区二区三区app下载 | 天天爽天天爽 |