好用的資料校驗&修復工具gt-checksum開源啦
* GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯系小編並注明來源。
1. 背景介紹
2. 功能特性
3. gt-checksum使用
3.1 標準使用案例
3.2 直接在命令列模式下使用
3.3 使用極簡配置檔案案例
4. 專案資訊
5. 開源釋出會
不用說,看名字也知道,gt-checksum
工具是資料校驗工具。
沒錯,gt-checksum
是GreatSQL社群新增的成員,它是 一款靜態資料庫校驗修復工具,支援MySQL、Oracle等主流資料庫,採用Go語言開發,今天正式開源。
1. 背景介紹
作為MySQL DBA,相信應該都聽說過Percona出品的 pt-table-checksum & pt-table-sync
工具(沒聽說過的絕對不是合格的MySQL DBA,嘿嘿),可以用它倆進行資料校驗及修復工作,非常好用。
不過,在MySQL MGR架構中,或者是當下常見的上雲、下雲業務中,以及MySQL、Oracle間的異構資料等多種場景中,pt工具並不支援。針對這些需求痛點,我們結合平時遇到的客戶需求,開發了 gt-checksum
資料校驗&修復工具,並貢獻給GreatSQL社群,進行開源,繼續促進業內開源生態健康發展。
gt-checksum
工具支援以下幾種常見業務需求場景:
MySQL主從複製:主從複製中斷後較長時間才發現,且主從間差異的資料量太多,這時候通常基本上只能重建複製從庫,如果利用 pt-table-checksum
先校驗主從資料一致性後 ,再利用pt-table-sync
工具修復差異資料,這個過程要特別久,時間代價太大。MySQL MGR組複製:MySQL MGR因故崩潰整個叢集報錯退出,或某個節點異常退出,在恢復MGR叢集時一般要面臨著先檢查各節點間資料一致性的需求,這時通常為了省事會選 擇其中一個節點作為主節點,其餘從節點直接複製資料重建,這個過程要特別久,時間代價大。 上雲下雲業務場景:目前上雲下雲的業務需求很多,在這個過程中要進行大量的資料遷移及校驗工作,如果出現字符集改變導致特殊資料出現亂碼或其他的情況,如果資料遷 移工具在遷移過程中出現bug或者資料異常而又遷移成功,此時都需要在遷移結束後進行一次資料校驗才放心。 異構遷移場景:有時我們會遇到異構資料遷移場景,例如從Oracle遷移到MySQL,通常存在字符集不同,以及資料型別不同等情況,也需要在遷移結束後進行一次資料校驗才 放心。 定期校驗場景:作為DBA在維護高可用架構中為了保證主節點出現異常後能夠快速放心切換,就需要保證各節點間的資料一致性,需要定期執行資料校驗工作。
以上這些場景,都可以利用 gt-chcksum
工具來滿足。
2. 功能特性
在正式開源之前,gt-checksum
工具已經在內部經過了十數個版本迭代,可以滿足絕大多數場景下的資料校驗&修復需求,尤其是MySQL、Oracle間的異構資料庫場景。
gt-checksum
工具主要功能特性有:
支援主從複製、MGR以及MySQL、Oracle間的資料校驗&修復; 資料庫名、表名設定支援多種正規表示式 支援多種字符集 支援設定表名大小寫敏感 支援多種資料校驗模式,資料、表結構、索引、分割槽、外來鍵、儲存過程等 支援多種資料校驗方式,全量校驗,抽樣校驗和行數校驗 支援多種資料修復模式,校驗完畢後直接修復或是生成修復SQL檔案再自行手動處理 支援校驗無索引表 支援併發多執行緒校驗 更好支援大表資料校驗,效率更高,且基本不會發生OOM等問題
3. gt-checksum使用
3.1 標準使用案例
指定配置檔案,開始執行資料校驗,示例:
shell> gt-checksum -f ./gc.conf
-- gt-checksum init configuration files --
-- gt-checksum init log files --
-- gt-checksum init check parameter --
-- gt-checksum init check table name --
-- gt-checksum init check table column --
-- gt-checksum init check table index column --
-- gt-checksum init source and dest transaction snapshoot conn pool --
-- gt-checksum init cehck table query plan and check data --
begin checkSum index table db1.t1
[████████████████████████████████████████████████████]113% task: 678/600
table db1.t1 checksum complete
** gt-checksum Overview of results **
Check time: 73.81s (Seconds)
Schema Table IndexCol checkMod Rows Differences Datafix
db1 t1 ol_w_id,ol_d_id,ol_o_id,ol_number rows 5995934,5995918 yes file
3.2 直接在命令列模式下使用
設定只校驗db1庫下的所有表,不校驗test庫下的所有表,並設定沒有索引的表也要校驗
shell> gt-checksum -S type=mysql,user=root,passwd=abc123,host=172.16.0.1,port=3306,charset=utf8 -D type=mysql,user=root,passwd=abc123,host=172.16.0.2,port=3306,char
set=utf8 -t db1.* -it test.* -nit yes
3.3 使用極簡配置檔案案例
gt-checksum還支援極簡配置檔案模式,最少只需要配置三個引數,即可完成資料校驗,例如:
shell> cat gc.conf-simple
[DSNs]
srcDSN = mysql|pcms:abc123@tcp(172.17.16.1:3306)/information_schema?charset=utf8
dstDSN = mysql|pcms:abc123@tcp(172.17.16.2:3306)/information_schema?charset=utf8
[Schema]
tables = db1.t1
shell> gt-checksum -f ./gc.conf-simple
...
注意:
極簡配置檔名必須是 gc.conf-simple
。配置檔案中僅需指定源和目標端的DSN,以及要校驗的表名即可。
更多使用場景和案例歡迎大家一起來解鎖。
4. 專案資訊
gt-checksum
程式碼已上傳到gitee上,專案地址 ,歡迎圍觀、加星,也歡迎來“找茬”,提patch/issue。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024923/viewspace-2938387/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【工具篇】推薦5款好用的Linux磁碟資料修復工具!Linux
- 推薦一款好用的資料一致性校驗工具
- 資料校驗
- MySQL手動資料校驗+雲資料庫資料校驗MySql資料庫
- 主流好用的15個開源資料視覺化工具軟體視覺化
- 報表開發工具FineReport報表填報資料校驗
- 使用DBCC CHECKDB工具修復資料庫XT資料庫
- 前端資料校驗從建模開始前端
- 最好用的開源日誌分析工具
- 資料恢復工具Recoverit使用教程:如何修復損壞的影片資料恢復
- easypoi資料校驗
- DW中的資料校驗
- 資料庫修復資料恢復資料庫資料恢復
- [資料校驗/資料質量] 資料校驗框架(Java):hibernate-validation框架Java
- 行式填報 資料校驗 --- 小計校驗
- 【建議使用】告別if,Java超好用引數校驗工具類Java
- ORACLE資料校驗文件Oracle
- BBED (Oracle Block Brower and EDitor Tool) :資料塊修復工具OracleBloC
- 免費好用的開源威脅狩獵工具!
- 勒索病毒資料修復恢復
- 修復工具DBVERIFY的使用
- 修復損壞的資料塊
- Firebird資料庫修復資料庫
- Interbase資料庫修復資料庫
- Binding(四):資料校驗
- struts2資料校驗
- 使用 voluptuous 校驗資料
- 一款很好用的修圖工具
- 前端資料校驗後,後端介面是否需要再次校驗?前端後端
- Linux系統磁碟資料修復工具,建議收藏!Linux
- Golang 資料視覺化利器 go-echarts 開源啦Golang視覺化Echarts
- zt_Oracle資料恢復:資料檔案頭的SCN與時間校驗_file$_scnOracle資料恢復
- 好用的專案初始化工具 SCION 升級啦!
- 修復已經CORRUPTED的資料塊
- Hbase修復工具Hbck
- 磁碟修復工具TestDisk
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 很好用的搜網盤資源工具。很多都能找到