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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql db compare_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试

發布時間:2024/10/14 数据库 87 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql db compare_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:張靜文

愛可生上海研發中心成員,測試工程師,負責 DMP 以及 DTLE 自動化測試。

本文來源:原創投稿

*愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯系小編并注明來源。

任務:

測試開源產品 dtle(https://github.com/actiontech...),對 mysql 字符類型,表結構的支持性。

測試需求如下:

1.?測試 dtle 對 mysql 所有的字符類型支持性

2.?測試 dtle 對表結構的支持性

3.?等.......

測試步驟大致為:設計表結構,數據類型。

使用 dtle 遷移表/數據。

對比使用 dtle 遷移的源數據庫和目標數據庫的數據、表結構是否有差異。

起初,我開啟了 2 個窗口一條條的對比,但是當我比對到第 100 條數據的時候,我發現眼花了,似乎有些數據“好像不一樣”。我還有好幾萬條數據要這么對比呢,而且每次發新版本,我都要這么來一次......這不是人能完成的艱難任務!

所以我尋找是不是有什么工具能幫我做這部分工作,搜索后發現一部分私人寫的小工具(具體的就不列舉了),但是經過使用后,發現很多工具自身就帶有一部分 BUG,如果我用這些工具做數據對比肯定會遺漏 BUG。

經過幾天的搜索試用,發現 mysql 官方提供了一個非常不錯工具mysqldiff/mysqldbcompare,所以想著分享給大家。

以下就直接說說使用方法:

(系統:Ubuntu 18.04)

1. 軟件下載,地址如下:

2. 解壓到當前目錄 mysql-utilities-1.6.5 下:tar -zxvf mysql-utilities-1.6.5.tar.gz

3. cd 到 mysql-utilities-1.6.5,執行安裝:apt install mysql-utilities

如下圖:

4. 演示 mysql-utilities 中的 mysqldiff 使用和效果:

首先我們可以通 過 mysqldiff --help 命令查看用法:

接下來我要測試通過 DTLE 數據遷移的 2 個數據庫,然后驗證:

1.?是否有表結構改變

2.?DTLE 是否將源數據庫的所有數據全部遷移到目標數據庫

分別使用如下 2 條命令:mysqldiff--server1=test:test@10.20.30.3:3306--server2=test1:test1@10.20.30.4:3307 testdb:testdb

執行效果如下:

結論:通過比對,發現源數據庫中有 2 張表并不在目標數據庫中,而且很詳細的列出了遷移失敗的表名。mysqldiff--server1=test:test@10.20.30.3:3306--server2=test1:test1@10.20.30.4:3307 testdb.char_columns:testdb.char_columns

執行效果如下:

結論:通過比對,發現有源數據庫中 char_columns 表的建表語句有差異。

5. 演示 mysql-utilities 中的 mysqldbcompare 使用和效果:

同上我們可以通過 mysqldbcompare --help 命令查看用法:

使用如下命令可以查看源庫和目標庫中的表數據是否有差異:mysqldbcompare--server1=test:test@10.20.30.3:3306--server2=test1:test1@10.20.30.4:3307 testdb:testdb

執行效果如下:

結論:通過比對,發現源庫和目標庫中的數據一致。

本次分享幾條簡單的命令到此結束。

重點在于:作為測試,我們可以通過以上 2 個小工具減少我們重復性的工作,提高測試結果的準確性。

如果我們有一定代碼基礎,可以集成以上小工具,完成一套 DTLE 的自動化測試腳本,方便以后每次版本發布的回歸測試。

總結

以上是生活随笔為你收集整理的mysql db compare_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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