手把手教你使用CloudCanal數(shù)據(jù)同步工具

本文向大家介紹的是CloudCanal 數(shù)據(jù)遷移同步工具,能夠?qū)崿F(xiàn)多種數(shù)據(jù)源之間的數(shù)據(jù)同步,并且提供可視化操作界面,幫助我們提升開發(fā)效率,一起快速了解CloudCanal并掌握數(shù)據(jù)同步操作吧~

CloudCanal數(shù)據(jù)同步工具

官網(wǎng): https://www.clougence.com/

社區(qū): https://www.askcug.com/

社區(qū)版文檔: https://doc-cloudcanal.clougence.com/intro/product_intro

1 認(rèn)識(shí) CloudCanal

1.1 產(chǎn)品介紹

CloudCanal 是一款數(shù)據(jù)遷移同步工具,提供友好的可視化操作界面,支持多種數(shù)據(jù)源間的數(shù)據(jù)遷移、數(shù)據(jù)同步、結(jié)構(gòu)遷移、數(shù)據(jù)校驗(yàn);

1.2 產(chǎn)品功能

CloudCanal 具備一些對(duì)用戶非常有用的核心功能,如下表所述:

1.3 產(chǎn)品架構(gòu)

控制臺(tái):完成 CloudCanal 的主要產(chǎn)品化能力

Sidecar: 主要負(fù)責(zé)任務(wù)進(jìn)程和控制臺(tái)程序之間的信息交互并且保證任務(wù)進(jìn)程高可用

任務(wù)內(nèi)核:任務(wù)內(nèi)核進(jìn)程,負(fù)責(zé)具體同步任務(wù)的執(zhí)行

2 CloudCanal 高可用部署

2.1 準(zhǔn)備工作

1. 安裝 Docker

不同操作系統(tǒng)可以參考 Docker 官網(wǎng)文檔 進(jìn)行安裝。

2. 安裝 Docker Compose

這里提供一個(gè)國內(nèi)的鏡像站的安裝命令,也可以參考 Docker-Compose 安裝文檔

curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

2.2 安裝cloudCanal

2.2.1 下載安裝包

阿里云 OSS 下載最新版本

https://cloudcanal-community.oss-cn-hangzhou.aliyuncs.com/latest/cloudcanal.7z

12月20日之后的包里面我們增加了md5值校驗(yàn)文件,下載之后可以校驗(yàn)一下md5

https://cloudcanal-community.oss-cn-hangzhou.aliyuncs.com/latest/md5sum.txt

注:我們不需要校驗(yàn)md5

在linux下進(jìn)行下載,直接使用命令

wget https://cloudcanal-community.oss-cn-hangzhou.aliyuncs.com/latest/cloudcanal.7z

校驗(yàn)md5一致

2.2.2 安裝7z

安裝包為 cloudcanal.7z,包含了鏡像和管理腳本

安裝 7z 解壓工具(如果已經(jīng)安裝,此步略過)

# 安裝7z命令(centos系)?

sudo yum install p7zip p7zip-plugins?

# 安裝7z命令(ubuntu系)?

sudo apt-get install p7zip-full p7zip-rar?

# 安裝7z命令(macOS)?

brew install 7z

進(jìn)入cloudcanal安裝包所在目錄,解壓縮

? 7z x cloudcanal.7z

CloudCanal 目錄結(jié)構(gòu)說明

解壓目錄如下,其中包括

鏡像:包含四個(gè) tar 壓縮文件

腳本:啟動(dòng)、更新和停止,以及 scripts 運(yùn)維腳本目錄

日志與配置文件:日志為 docker-compose 啟動(dòng)日志,配置文件為 docker-compose 配置文件

[root@localhost tar]# ll?

-rw-------. 1 root root? 862506496 Mar 25 11:47 console.tar?

-rw-r--r--. 1 root root? ? ? 1392 Mar 25 12:07 docker-compose.yml?

-rw-------. 1 root root? 454221312 Mar 25 11:47 mysql.tar?

-rw-------. 1 root root? 174073344 Mar 25 11:49 prometheus.tar?

-drwxr-xr-x.2root? root? ? ? ? 124 Mar 25 12:05 scripts?

-rwxr-xr-x. 1 root root? ? ? ? 63 Mar 25 12:05 shutdown.sh?

-rw-------. 1 root root 1231059968 Mar 25 11:48 sidecar.tar?

-rwxr-xr-x. 1 root root? ? ? 2669 Mar 25 12:05 startup.sh?

-rwxr-xr-x. 1 root root? ? ? 2031 Mar 25 12:05 upgrade.sh

2.2.3 啟動(dòng)CloudCanal

執(zhí)行啟動(dòng)命令: sh startup.sh

當(dāng)終端出現(xiàn) cloudcanal start 時(shí),即啟動(dòng)成功

確認(rèn)啟動(dòng)成功

啟動(dòng)過程將耗時(shí) 1 分鐘左右,訪問控制臺(tái) http://{您部署機(jī)器的ip}:8111 正確登錄并開始操作


2.2.4 登錄 CloudCanal 控制臺(tái)

使用CloudCanal 試用用戶登錄

用戶名:test@clougence.com

密碼:clougence2021

注:如遇到需要發(fā)送短信的場景,先點(diǎn)擊獲取驗(yàn)證碼,然后輸入短信驗(yàn)證碼 777777 即可

默認(rèn)添加的測試 MySQL 數(shù)據(jù)庫(兩庫中已準(zhǔn)備好表和數(shù)據(jù))

cloudcanal_test_a(源端)

cloudcanal_test_b(目標(biāo)端)

默認(rèn)已添加了一臺(tái)運(yùn)行機(jī)器,用于執(zhí)行具體的數(shù)據(jù)同步任務(wù)

2.3 默認(rèn)自帶數(shù)據(jù)庫

默認(rèn)添加的測試 MySQL 數(shù)據(jù)庫

cloudcanal_test_a(源端)和cloudcanal_test_b(目標(biāo)端)這兩個(gè)庫中已準(zhǔn)備用于測試的表和數(shù)據(jù)

在宿主機(jī)上可以直接以下命令訪問 MySQL 容器。

docker exec -it cloudcanal-mysql -uclougence -h127.1 -p123456

2.4 CloudCanal 升級(jí)

解壓新版本的 cloudcanal.7z 壓縮包,覆蓋原目錄下相同的文件,然后依次執(zhí)行以下腳本即可。

sh shutdown.sh sh upgrade.sh sh startup.sh

因?yàn)閿?shù)據(jù)目錄 sidecar_data 和 console_dat 不會(huì)被覆蓋,因此數(shù)據(jù)不會(huì)丟失。

3 快速使用

目前我們不需要添加機(jī)器,和集群。除非有新的機(jī)器安裝了同步

具體過程:生成機(jī)器碼、在另一臺(tái)集群上啟動(dòng)sidecar容器

3.1 添加數(shù)據(jù)源

進(jìn)入數(shù)據(jù)源管理界面,點(diǎn)擊添加數(shù)據(jù)源,可以選擇阿里云上的數(shù)據(jù)源或者自建數(shù)據(jù)庫。

添加兩個(gè)數(shù)據(jù)源,分別作為同步的源庫和目標(biāo)庫。

3.2 數(shù)據(jù)同步

同步表結(jié)構(gòu)

在同步數(shù)據(jù)的時(shí)候,先同步表結(jié)構(gòu);

1、進(jìn)入任務(wù)管理頁面,點(diǎn)擊創(chuàng)建任務(wù)。選擇源實(shí)例和目標(biāo)實(shí)例,指定數(shù)據(jù)庫映射關(guān)系。

2、選擇數(shù)據(jù)同步功能,去掉數(shù)據(jù)遷移里面的全量同步,和數(shù)據(jù)同步里面的增量同步,選擇表結(jié)構(gòu)遷移。

3、確定表映射,若是分庫分表的,只需同步一張表的表結(jié)構(gòu)到目標(biāo)端即可。(分庫分表,選擇按_數(shù)字匹配)

4、選擇表中要同步的列

5、確認(rèn)配置無誤后,點(diǎn)擊創(chuàng)建任務(wù)。

全量同步 + 增量同步

1、進(jìn)入任務(wù)管理頁面,點(diǎn)擊創(chuàng)建任務(wù)。選擇源實(shí)例和目標(biāo)實(shí)例,指定數(shù)據(jù)庫映射關(guān)系。

2、選擇數(shù)據(jù)同步功能,第一次會(huì)先查表進(jìn)行全量同步,之后消費(fèi) binlog 增量同步數(shù)據(jù)。

3、選擇要同步的表,要保證目標(biāo)庫的 UPDATE 和 DELETE 操作和源庫的一致,需要保證源庫表中有主鍵或者唯一約束。

4、選擇表中要同步的列。

確認(rèn)配置無誤后,點(diǎn)擊創(chuàng)建任務(wù)。

查看同步進(jìn)度

3.3 校驗(yàn)

數(shù)據(jù)校驗(yàn)功能用于檢驗(yàn)兩個(gè)庫之間的數(shù)據(jù)是否一致,進(jìn)入任務(wù)管理頁面,點(diǎn)擊創(chuàng)建一個(gè)數(shù)據(jù)校驗(yàn)任務(wù)。

可以看到兩個(gè)庫間的數(shù)據(jù)是一致的。

3.4 查看日志

CloudCanal docker 版的日志路徑在壓縮包解壓路徑下

console日志: ${安裝包解壓路徑}/console_data/logs/cloudcanal/console/console.log

sidecar日志: ${安裝包解壓路徑}/sidecar_data/logs/cloudcanal/sidecar/sidecar.log

tasks日志: ${安裝包解壓路徑}/sidecar_data/logs/cloudcanal/tasks/xxx.log

4 常見問題

連通性測試失敗

增量收不到數(shù)據(jù)

性能問題排查

官方已給出相應(yīng)的解決方案:https://doc-cloudcanal.clougence.com/operation/troubleshooting_function

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容