mysql主從數據一致性檢測工具


 

壹元視頻

percona-toolkit產品安裝部署手冊

 

 

 

 

屬 性

內 容

保密級別

 

文檔級別

D級

文檔編號

ITSM-01.01

編 寫 人

 

審 核 人

 

 

 

2019年02月

 

 

 

 

文檔修訂記錄

序號

版本號

狀態

簡要說明

修訂日期

變更人

審核人

備注

1

V1.0

C

創建,全頁。

2018/08/09

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*狀態:C——創建,A——增加,M——修改,D——刪除


目 錄

第一章 percona-toolkit產品簡介... 1

1.1 功能概述... 1

1.2 部署說明... 1

第二章 PT產品安裝部署... 2

2.1 環境准備... 2

2.1.1 主機環境... 2

2.1.2 環境檢查... 2

2.2 PT產品程序安裝... 3

2.2.1 基礎安裝... 3

2.3 驗證部署... 3

 


第一章 percona-toolkit產品簡介

1.1 功能概述

MySQL數據庫是輕量級、開源數據庫的佼佼者,其功能和管理,健壯性與Oracle相比還是有相當的差距。因此有很多功能強大第三方的衍生產品,如percona-toolkit,XtraBackup等等。percona-toolkit是一組高級命令行工具的集合,可以查看當前服務的摘要信息,磁盤檢測,分析慢查詢日志,查找重復索引,實現表同步等等。這個工具套件對DBA及運維人員着實不可多得。本文簡要描述這個工具的安裝及其工具的大致介紹。

1.2 部署說明

percona-toolkit部署在mysql主庫上,檢測mysql從庫和主庫的數據是否一致!

 

第二章 PT產品安裝部署

2.1 環境准備

2.1.1 主機環境

2.1.1.1 操作系統

使用cat /etc/centos-release命令出現如下:

 
   


CentOS Linux release 7.5.1804 (Core)

2.1.1.2 所需介質

使用yum安裝依賴命令如下:

yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl perl-DBI  perl-Digest-MD5 -y

2.1.2 環境檢查

2.1.2.1 Mysql主從狀態檢測

在mysql從庫上使用mysql -uroot -p輸入mysql的root用戶密碼使用show slave status \G 命令查看主從狀態:

 

如果slave_IO_running 和slave_sql_running都為yes,表明狀態正常。

2.2 PT產品程序安裝

2.2.1 基礎安裝

           下載pt安裝包:

   Wget https://www.percona.com/downloads/percona-toolkit/2.2.7/RPM/percona-toolkit-2.2.7-1.noarch.rpm

安裝命令為:

   Rpm -ivh percona-toolkit-2.2.7-1.noarch.rpm

 

如圖上所示表示安裝成功!

2.3 主要工具介紹

如果是非源碼安裝或源碼安裝是未指定路徑,缺省情況下所有的pt相關的工具位於/usr/bin目錄下,以pt-開頭。

  獲取有關命令行的幫助信息,直接在shell提示符下輸入命令行與--hlep即可。如: /usr/bin/pt-upgrade --help

  # ls -hltr /usr/bin/pt-*

  pt-upgrade

    #該命令主要用於對比不同mysql版本下SQL執行的差異,通常用於升級前進行對比。

    #會生成SQL文件或單獨的SQL語句在每個服務器上執行的結果、錯誤和警告信息等。

  pt-online-schema-change

    #功能為支持在線變更表構,且不鎖定原表,不阻塞原表的DML操作。

    #該特性與Oracle的dbms_redefinition在線重定義表原理基本類似。

  pt-mysql-summary

    #對連接的mysql服務器生成一份詳細的配置情況以及sataus信息

    #在尾部也提供當前實例的的配置文件的信息

  pt-mext

    #並行查看SHOW GLOBAL STATUS的多個樣本的信息。

    #pt-mext會執行你指定的COMMAND,並每次讀取一行結果,把空行分割的內容保存到一個一個的臨時文件中,最后結合這些臨時文件並行查看結果。

  pt-kill

    #Kill掉符合指定條件mysql語句

  pt-ioprofile

    #pt-ioprofile的原理是對某個pid附加一個strace進程進行IO分析

  pt-fingerprint

    #用於生成查詢指紋。主要將將sql查詢生成queryID,pt-query-digest中的ID即是通過此工具來完成的。

    #類似於Oracle中的SQL_ID,涉及綁定變量,字面量等

  pt-find

    #用與查找mysql表並執行指定的命令,類似於find命令

  pt-fifo-split

    #模擬切割文件並通過管道傳遞給先入先出隊列而不用真正的切割文件

  pt-deadlock-logger

    #用於監控mysql服務器上死鎖並輸出到日志文件,日志包含發生死鎖的時間、死鎖線程id、死鎖的事務id、發生死鎖時事務執行時間等詳細信息。

  pt-archiver

    #將mysql數據庫中表的記錄歸檔到另外一個表或者文件

    #該工具具只是歸檔舊的數據,對線上數據的OLTP查詢幾乎沒有影響。

    #可以將數據插入另外一台服務器的其他表中,也可以寫入到一個文件中,方便使用load data infile命令導入數據。

  pt-agent

    #基於Percona Cloud的一個客戶端代理工具

  pt-visual-explain

    #用於格式化explain的輸出

  pt-variable-advisor

    #用於分析mysql系統變量可能存在的一些問題,可以據此評估有關參數的設置正確與否。

  pt-stalk

    #用於收集mysql數據庫故障時的相關信息便於后續診斷處理。

  pt-slave-delay

    #用於設定從服務器落后於主服務器的時間間隔。

    #該命令行通過啟動和停止復制sql線程來設置從落后於主指定時間。

 

  pt-sift

    #用於瀏覽pt-stalk生成的文件。

  pt-show-grants

    #將當前實例的用戶權限全部輸出,可以用於遷移數據庫過程中重建用戶。

  pt-query-digest

    #用於分析mysql服務器的慢查詢日志,並格式化輸出以便於查看和分析。

  pt-pmp

    #為查詢程序執行聚合的GDB堆棧跟蹤,先進性堆棧跟蹤,然后將跟蹤信息匯總。

  pt-index-usage

    #從log文件中讀取查詢語句,並用分析當前索引如何被使用。

    #完成分析之后會生成一份關於索引沒有被查詢使用過的報告,可以用於分析報告考慮剔除無用的索引。

  pt-heartbeat

    #用於監控mysql復制架構的延遲。

    #主要是通過在主庫上的--update線程持續更新指定表上的一個時間戳,從庫上--monitor線程或者--check線程檢查主庫更新的時間戳並與當前系統時間對比,得到延遲值。

  

  pt-fk-error-logger

    #將外鍵相關的錯誤信息記錄到日志或表。

  pt-duplicate-key-checker

     #功能為從mysql表中找出重復的索引和外鍵,這個工具會將重復的索引和外鍵都列出來

     #同時也可以生成相應的drop index的語句

  pt-diskstats

    #類似於iostat,打印磁盤io統計信息,但是這個工具是交互式並且比iostat更詳細。可以分析從遠程機器收集的數據。

  pt-config-diff

    #用於比較mysql配置文件和服務器變量

    #至少2個配置源需要指定,可以用於遷移或升級前后配置文件進行對比

  pt-align

    #格式化輸出

  pt-slave-find

    #連接mysql主服務器並查找其所有的從,然后打印出所有從服務器的層級關系。

  pt-table-checksum

    #用於校驗mysql復制的一致性。

    #該工具主要是高效的查找數據差異,如果存在差異性,可以通過pt-table-sync來解決

2.4 驗證部署

 

使用pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=xiaoboluo.checksums --databases=yipai  -h 192.168.254.90 -P 3306 -u root -proot --recursion-method="processlist"

--databases=yipai =yipai :表示要檢測的庫名。

-h 192.168.254.90 -P 3306 -u root -proot --recursion-method="processlist" :表示連接數據的用戶名和密碼(該環境為本地測試環境的虛擬機,生產環境中不可使用root用戶,使用有遠程登錄權限的和讀寫yipai庫的用戶來驗證)!

如圖下:

 

             DIFFS為0則表示 數據表的數據為一致,為1 則表示有數據不同!

             ERRORS 為0則表示無報錯信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM