偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Dba+開源工具:補(bǔ)齊MySQL 8.0遷移短板,Binlog解析ETL抽取數(shù)據(jù)工具

數(shù)據(jù)庫(kù) MySQL
將解析binlog和執(zhí)行SQL語(yǔ)句的兩個(gè)過(guò)程分別由兩個(gè)線程來(lái)執(zhí)行。其中,解析binlog的線程每次解析完一個(gè)事件后通過(guò)隊(duì)列將SQL語(yǔ)句傳給SQL執(zhí)行線程,SQL執(zhí)行線程從隊(duì)列中取出SQL語(yǔ)句并按順序依次執(zhí)行,這樣就保證了SQL語(yǔ)句的串行執(zhí)行。

工具簡(jiǎn)介

由于MariaDB已經(jīng)遠(yuǎn)離MySQL,從MySQL 8.0遷移到MariaDB 10.5時(shí),binlog同步復(fù)制已經(jīng)不兼容(參考手冊(cè):https://mariadb.com/kb/en/mariadb-vs-mysql-compatibility/)。

圖片圖片

1、若MariaDB是主庫(kù),MySQL是從庫(kù),在GTID模式下,從MariaDB同步復(fù)制數(shù)據(jù)時(shí),GTID與MySQL不兼容,同步將報(bào)錯(cuò)。

2、若MySQL是主庫(kù),MariaDB是從庫(kù),MariaDB無(wú)法從MySQL 8.0主庫(kù)上復(fù)制,因?yàn)镸ySQL 8.0具有不兼容的二進(jìn)制日志格式。

因此,借助binlog_parse_sql工具,可將binlog解析并生成SQL語(yǔ)句,反向插入MariaDB數(shù)據(jù)庫(kù)里。

使用場(chǎng)景

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

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

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

原理

將解析binlog和執(zhí)行SQL語(yǔ)句的兩個(gè)過(guò)程分別由兩個(gè)線程來(lái)執(zhí)行。其中,解析binlog的線程每次解析完一個(gè)事件后通過(guò)隊(duì)列將SQL語(yǔ)句傳給SQL執(zhí)行線程,SQL執(zhí)行線程從隊(duì)列中取出SQL語(yǔ)句并按順序依次執(zhí)行,這樣就保證了SQL語(yǔ)句的串行執(zhí)行。

MariaDB使用

1、安裝:

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

2、前臺(tái)運(yùn)行:

shell> python3 binlog_parse_queue.py

圖片圖片

3、后臺(tái)運(yùn)行:

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

4、工具運(yùn)行后,會(huì)生成binlog_info.txt文件,即實(shí)時(shí)保存已經(jīng)解析過(guò)的binlog文件名和position位置點(diǎn),以方便程序掛掉后的斷點(diǎn)續(xù)傳。

注:運(yùn)行后如報(bào)錯(cuò)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庫(kù)需要調(diào)用ssl,由于python 3.10之后版本不在支持libressl使用ssl,需要用openssl 1.1.1版本或者更高版本。

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

2、MySQL表結(jié)構(gòu)轉(zhuǎn)換為ClickHouse表結(jié)構(gòu)

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

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

運(yùn)行:

shell> python3 mysql_to_clickhose_schema.py

原理:連接MySQL獲取表結(jié)構(gòu)schema,然后在ClickHouse里執(zhí)行建表語(yǔ)句。

3、MySQL全量數(shù)據(jù)遷移至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版本支持導(dǎo)出CSV格式。

第二步:

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

第三步:或者使用mysql_to_clickhouse_sync.py工具(MySQL全量數(shù)據(jù)導(dǎo)入到ClickHouse里,默認(rèn)并行10張表同時(shí)導(dǎo)出數(shù)據(jù),每次輪詢?nèi)?000條數(shù)據(jù))。

使用條件:表必須有自增主鍵,測(cè)試環(huán)境MySQL 8.0

如果你說(shuō)服不了開發(fā)對(duì)每張表增加自增主鍵ID,那么你要設(shè)置參數(shù)

sql_generate_invisible_primary_key

開啟這個(gè)參數(shù),會(huì)在建表時(shí),檢查表中是否有主鍵,如果沒有主鍵,則會(huì)自動(dòng)創(chuàng)建。該參數(shù)非常實(shí)用,減少了DBA對(duì)SQL語(yǔ)句表結(jié)構(gòu)的審計(jì)(參考:https://blog.51cto.com/hcymysql/5952924)。

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

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

前臺(tái)運(yùn)行:

shell> python3 binlog_parse_clickhouse.py

后臺(tái)運(yùn)行:

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

下載方式

此工具現(xiàn)通過(guò)dbaplus社群免費(fèi)為大家提供下載使用。若使用過(guò)程中有任何問(wèn)題或建議,可隨時(shí)與我們聯(lián)系,歡迎大家試用。

登錄以下鏈接即可下載:

https://github.com/hcymysql/binlog_parse_sql

責(zé)任編輯:武曉燕 來(lái)源: dbaplus社群
相關(guān)推薦

2023-10-31 07:27:22

開源工具MySQL協(xié)議

2023-07-19 07:29:00

2023-08-29 07:22:06

MySQL數(shù)據(jù)工具故障恢復(fù)

2020-05-19 11:46:50

MongoDB圖形開源

2023-01-28 07:52:49

2018-12-12 14:15:40

MongoDB熱備份工具數(shù)據(jù)庫(kù)

2023-08-11 07:20:04

開源工具項(xiàng)目

2023-10-17 07:51:37

MySQLQPS優(yōu)化

2019-01-25 19:19:28

數(shù)據(jù)工具互聯(lián)網(wǎng)

2018-09-13 10:42:00

工具代碼機(jī)器學(xué)習(xí)

2022-12-09 17:53:36

MyBatis聯(lián)表查詢

2022-07-15 13:58:46

工具MyBatissql

2021-06-29 18:24:13

MySQL開源工具

2020-07-20 07:33:44

Python開發(fā)工具

2021-07-07 10:12:08

數(shù)據(jù)庫(kù)工具技術(shù)

2022-05-06 07:31:01

useEventReactHook

2014-08-21 09:18:42

云監(jiān)控網(wǎng)絡(luò)監(jiān)控工具Nagios

2019-10-11 09:55:53

數(shù)據(jù)工具架構(gòu)

2022-08-23 11:40:34

數(shù)據(jù)云計(jì)算安全

2010-01-14 09:13:19

MySQL to SQ數(shù)據(jù)庫(kù)遷移
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)