MySQL 8.0.20 MGR資料遷移過程以及注意事項
1.背景
近期由於業務調整,需要將Windows Server 2008 MySQL5.5資料庫遷移到Windows Server 2012 MySQL8.0叢集MGR中,由於實際部署時,有一臺機器硬碟損壞,只能構建雙節點MGR,在遷移以及應用遷移過程中遇到許多引數與遷移效率問題,特此記錄。
2.遷移表單個檔案過大
由於有部分資料來源於文字檔案,單個檔案達到40G之大,且原表為MyISAM儲存引擎,由於MGR只支援事務引擎InnoDB,
所以需要修改文字檔案頭建表語句以及拆分檔案,並行匯入,使用如下兩款軟體進行了修改大檔案以及拆分:
EmEditor,可以開啟超大檔案。
Windows Unix增強工具。
3.並行匯入遇到問題
第一階段:由於最開始匯入時開啟了MGR,由於使用Navicat執行SQL檔案方式匯入資料,導致由於關閉autocommit,單個事務超大,MGR在最後提交階段由於網路不穩定,導致驗證過長,效率非常底下。
第二階段:嘗試開啟autocommit方式,發現由於不停寫binlog與資料檔案,效率更差。
第三階段:拆分MGR,將檔案傳送兩個伺服器,關閉binlog,分別匯入,效率非常高,將1.7億萬,40G資料拆分為20個
檔案,分別開20個並行匯入,兩臺機器並行匯入,並且將MySQL所有檔案遷移到伺服器SSD磁碟,40分鐘即可完成所有資料匯入。
4.匯入過程遇到MGR與MySQL引數限制問題
group_replication_transaction_size_limit # 最大值2147483647,近似2G,在組成MGR進行單事務大量資料匯入或更新時,需要考慮該引數影響,有可能由於 該引數設定過小導致最後階段失敗,不過大事務對於MGR確實不太友好,節點互相確認消耗大量網路頻寬。 max_binlog_cache_size # 事務過大,需要相應調大該引數,實測,1000萬行資料大約需要3~4G該引數, # 官方文件不建議設定過大該引數,最大建議4G
5.由於需要匯入MyISAM導致MGR資料不一致問題解決
最後資料遷移完畢之後,由於在之前由於匯入MyISAM引擎表,臨時禁用disable_storage_engines,導致啟動MGR之後
有MGR不支援的操作報錯:
ERROR 3098 (HY000): The table does not comply with the requirements by an external plugin.
上面報錯,MGR中違反MGR限制的報錯都報上述錯誤,並不會具體表述由於詳細原因,比如使用對MyISAM表操作,
沒有主鍵唯一鍵表建立之後,插入資料,都將報上述錯誤。
MGR不一致問題解決流程如下:
1. 檢視叢集狀態,確定故障節點 SELECT * FROM PERFORMANCE_SCHEMA.REPLICATION_GROUP_MEMBERS; # 檢視叢集所有節點狀態,找到具體Error或recovering節點。 2.檢視故障節點error log # 檢視error log,確定故障gtid,position 3.分析當前讀寫節點發生問題binlog # mysqlbinlog命令分析,找到故障執行語句,明確故障原因。 4.檢視具體故障發生表大小,狀態 (1)確定表大小以及是否經常修改,如果為經常修改大表,則考慮對故障節點利用備份重建 (2)如果表不大或不經常改變,改變可以明確預知時段,可以考慮故障節點reset master,然後設定gtid_purged或者 使用設定gtid_next為故障gtid方式,如果可以正常複製到讀寫節點當前gtid,然後再在不變時段匯出,如果繼續報錯,則 繼續檢視是否為故障表,如果是繼續跳過,知道可以正常追資料到讀寫節點當前gtid,記錄故障節點show master status 複製點,臨時設定故障read_only與super_read_only為off,匯入故障節點,然後reset master或設定gtid_next為 show master status記錄的gtid,使複製繼續,即可修復。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2708593/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PG 資料庫 DTS 遷移需要注意的事項:資料庫
- 企業資訊系統在遷移過程中,資料遷移要注意什麼?
- Windows Server 2012配置MySQL 8.0.20 MGRWindowsServerMySql
- MySQL 資料庫-索引注意事項MySql資料庫索引
- MySQL資料遷移那些事兒MySql
- Mysql索引以及使用索引注意事項MySql索引
- 【odoo】[經驗分享]資料遷移注意事項Odoo
- weblogic版本升級遷移需要注意事項Web
- MySQL5.7 透過邏輯備份遷移到GreatSQL注意事項MySql
- MySQL 資料庫設計和注意事項MySql資料庫
- Taro原理分析、遷移指南及開發注意事項
- 使用DistCp將Hadoop進行雲遷移時注意事項TCPHadoop
- Mysql百萬級資料遷移,怎麼遷移?實戰過沒?MySql
- 達夢資料庫資料檔案遷移過程資料庫
- Mysql資料遷移方法MySql
- Linux原始碼包安裝過程及注意事項Linux原始碼
- React生命週期以及注意事項React
- 大資料學習注意事項大資料
- Oracle 資料匯出注意事項Oracle
- linux mysql資料庫遷移LinuxMySql資料庫
- 遷移MySQL 5.7資料庫MySql資料庫
- MySQL半同步使用注意事項MySql
- 13TB的StarRocks大資料庫遷移過程大資料資料庫
- MySQL MGR單主模式詳細搭建過程MySql模式
- PureComponent 使用注意事項以及原始碼解析原始碼
- cookie的使用方法以及注意事項Cookie
- 資料遷移(1)——通過資料泵表結構批量遷移
- 信創伺服器遷移注意事項伺服器
- 資料網格的注意事項 - Kineret
- 記一次MySQL資料遷移到SQLServer全過程MySqlServer
- WebView與JS的互動,以及注意事項WebViewJS
- 企業遷移到公有云之前的注意事項
- 達夢資料庫系統表空間資料檔案遷移過程資料庫
- MySQL匯入CSV/TXT等資料來源中資料操作流程及注意事項MySql
- 手把手帶你使用ZigBee——通過愛智控制EFR32,以及 Simplicity Studio 使用過程中注意事項
- 使用SQL SERVER儲存過程實現歷史資料遷移SQLServer儲存過程
- 敏捷企業的資料管理注意事項敏捷
- MySQL資料庫遷移與MySQL資料庫批量恢復MySql資料庫