成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Dba+開源工具:補齊MySQL 8.0遷移短板,Binlog解析ETL抽取數據工具

數據庫 MySQL
將解析binlog和執行SQL語句的兩個過程分別由兩個線程來執行。其中,解析binlog的線程每次解析完一個事件后通過隊列將SQL語句傳給SQL執行線程,SQL執行線程從隊列中取出SQL語句并按順序依次執行,這樣就保證了SQL語句的串行執行。

工具簡介

由于MariaDB已經遠離MySQL,從MySQL 8.0遷移到MariaDB 10.5時,binlog同步復制已經不兼容(參考手冊:https://mariadb.com/kb/en/mariadb-vs-mysql-compatibility/)。

圖片圖片

1、若MariaDB是主庫,MySQL是從庫,在GTID模式下,從MariaDB同步復制數據時,GTID與MySQL不兼容,同步將報錯。

2、若MySQL是主庫,MariaDB是從庫,MariaDB無法從MySQL 8.0主庫上復制,因為MySQL 8.0具有不兼容的二進制日志格式。

因此,借助binlog_parse_sql工具,可將binlog解析并生成SQL語句,反向插入MariaDB數據庫里。

使用場景

1、從MySQL 8.0實時解析binlog并復制到MariaDB,適用于將MySQL 8.0遷移至MariaDB(ETL抽數據工具)--- binlog_parse_queue.py

2、數據恢復(研發手抖誤刪除一張表,通過歷史全量恢復+binlog增量恢復)

3、從MySQL 8.0實時解析binlog并復制到ClickHouse,適用于將MySQL 8.0遷移至ClickHouse(ETL抽數據工具)--- binlog_parse_clickhouse.py

原理

將解析binlog和執行SQL語句的兩個過程分別由兩個線程來執行。其中,解析binlog的線程每次解析完一個事件后通過隊列將SQL語句傳給SQL執行線程,SQL執行線程從隊列中取出SQL語句并按順序依次執行,這樣就保證了SQL語句的串行執行。

MariaDB使用

1、安裝:

shell> pip3 install pymysql mysql-replication -i "http://mirrors.aliyun.com/pypi/simple" --trusted-host "mirrors.aliyun.com"

2、前臺運行:

shell> python3 binlog_parse_queue.py

圖片圖片

3、后臺運行:

shell> nohup python3 binlog_parse_queue.py > from_mysql_to_mariadb.log 2>&1 &

4、工具運行后,會生成binlog_info.txt文件,即實時保存已經解析過的binlog文件名和position位置點,以方便程序掛掉后的斷點續傳。

注:運行后如報錯LookupError: unknown encoding: utf8mb3

解決方案:

編輯/usr/local/python3/lib/python3.10/site-packages/pymysql/charset.py文件,尾部增加如下兩行:

_charsets.add(Charset(256, "utf8mb3", "utf8mb3_general_ci", "Yes"))
_charsets.add(Charset(257, "utf8mb3", "utf8mb3_bin", ""))

參考如下鏈接:https://github.com/julien-duponchelle/python-mysql-replication/issues/386

ClickHouse使用

1、安裝:

shell> pip3 install clickhouse-driver -i "http://mirrors.aliyun.com/pypi/simple" --trusted-host "mirrors.aliyun.com"

注:clickhouse_driver庫需要調用ssl,由于python 3.10之后版本不在支持libressl使用ssl,需要用openssl 1.1.1版本或者更高版本。

參見:python 3.10編譯安裝報SSL失敗解決方法(https://blog.csdn.net/mdh17322249/article/details/123966953)

2、MySQL表結構轉換為ClickHouse表結構

shell> vim mysql_to_clickhose_schema.py(修改腳本里的配置信息)

注:mysql_to_clickhose_schema_test.py(該工具僅為單表測試使用)

運行:

shell> python3 mysql_to_clickhose_schema.py

原理:連接MySQL獲取表結構schema,然后在ClickHouse里執行建表語句。

3、MySQL全量數據遷移至ClickHouse步驟:

第一步:

/usr/bin/mydumper -h 192.168.192.180 -u hechunyang -p wdhcy159753 -P 3306 --no-schemas -t 12 --csv -v 3 --regex '^hcy.user$' -o ./

注:需要mydumper 0.12.3-3版本支持導出CSV格式。

第二步:

clickhouse-client --query="INSERT INTO hcy.user FORMAT CSV" < hcy.user.00000.dat

第三步:或者使用mysql_to_clickhouse_sync.py工具(MySQL全量數據導入到ClickHouse里,默認并行10張表同時導出數據,每次輪詢取1000條數據)。

使用條件:表必須有自增主鍵,測試環境MySQL 8.0

如果你說服不了開發對每張表增加自增主鍵ID,那么你要設置參數

sql_generate_invisible_primary_key

開啟這個參數,會在建表時,檢查表中是否有主鍵,如果沒有主鍵,則會自動創建。該參數非常實用,減少了DBA對SQL語句表結構的審計(參考:https://blog.51cto.com/hcymysql/5952924)。

4、binlog_parse_clickhouse.py(ETL抽數據工具)將MySQL8.0增量數據遷移至ClickHouse

shell> vim binlog_parse_clickhouse.py(修改腳本里的配置信息)

前臺運行:

shell> python3 binlog_parse_clickhouse.py

后臺運行:

shell> nohup python3 binlog_parse_clickhouse.py > from_mysql_to_clickhouse.log 2>&1 &

下載方式

此工具現通過dbaplus社群免費為大家提供下載使用。若使用過程中有任何問題或建議,可隨時與我們聯系,歡迎大家試用。

登錄以下鏈接即可下載:

https://github.com/hcymysql/binlog_parse_sql

責任編輯:武曉燕 來源: dbaplus社群
相關推薦

2023-10-31 07:27:22

開源工具MySQL協議

2023-07-19 07:29:00

2023-08-29 07:22:06

MySQL數據工具故障恢復

2020-05-19 11:46:50

MongoDB圖形開源

2023-01-28 07:52:49

2018-12-12 14:15:40

MongoDB熱備份工具數據庫

2023-08-11 07:20:04

開源工具項目

2023-10-17 07:51:37

MySQLQPS優化

2019-01-25 19:19:28

數據工具互聯網

2018-09-13 10:42:00

工具代碼機器學習

2021-06-29 18:24:13

MySQL開源工具

2022-12-09 17:53:36

MyBatis聯表查詢

2022-07-15 13:58:46

工具MyBatissql

2014-08-21 09:18:42

云監控網絡監控工具Nagios

2020-07-20 07:33:44

Python開發工具

2021-07-07 10:12:08

數據庫工具技術

2022-05-06 07:31:01

useEventReactHook

2019-10-11 09:55:53

數據工具架構

2022-08-23 11:40:34

數據云計算安全

2010-01-14 09:13:19

MySQL to SQ數據庫遷移
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 激情一区| 亚洲网在线 | 成人在线中文字幕 | 亚洲精品一区二区网址 | 国产91久久久久 | www.欧美视频 | 青青草社区 | 在线免费观看a级片 | 成人高清在线 | 精品久久精品 | 97人人爱| 国产一级在线观看 | 91影院在线观看 | 天堂在线网 | 91av视频在线免费观看 | 国产精品视频在线观看 | 91视视频在线观看入口直接观看 | 中文字幕高清 | 日本久久综合 | 国产精品日韩一区二区 | 一本色道精品久久一区二区三区 | 亚洲一区久久 | 成人av激情| 欧美一区二区成人 | 一区二区亚洲 | 精品一级毛片 | 91亚洲欧美 | 日韩免费视频一区二区 | 国产一区二区久久久 | 99久久久久久 | 国产乱码久久久久久一区二区 | 国产精品视频观看 | 久久久久久91香蕉国产 | 久久成人免费视频 | 久久99久久 | 欧美一区二区视频 | 97超碰免费 | 亚洲一区久久 | 日本特黄特色aaa大片免费 | 一级a性色生活片久久毛片 午夜精品在线观看 | www在线|