中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MYSQL 主從不一致如何解決

發布時間:2021-07-29 17:25:02 來源:億速云 閱讀:417 作者:Leah 欄目:大數據

這篇文章給大家介紹MYSQL 主從不一致如何解決,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

MYSQL 中主從不一致是很可能發生的,而怎么能發現不一致則并不是一個很簡單的問題。尤其對數據量較大的情況下。廢話說多無益,看下面的例子:

我們先建立一個存儲過程,來插入我們的初始化數據

delimiter //

DROP PROCEDURE IF EXISTS insert_test_val;

##num_limit 要插入數據的數量,rand_limit 最大隨機的數值

CREATE PROCEDURE insert_test_val()

BEGIN

DECLARE i int default 1;

DECLARE a varchar(20) ;

DECLARE b smallint ;

DECLARE c smallint ;

WHILE i<=1000000 do

set b = FLOOR(rand()*50);

set c = FLOOR(rand()*10);

if i mod 2 = 0 then

set a = 'peter';

elseif i mod 3 = 0 then

set a = 'jimmy';

elseif i mod 5 = 0 then

set a  = 'Tim';

elseif i mod 4 = 0 then

set a = 'semon';

else

set a = 'lisa';

end if;

if b < 20 then

set b = b + 15;

end if;

INSERT into test.test values (null,a,b,c);

set i = i + 1;

END WHILE;

END

//

運行存儲過程插入數據, 在插入數據后,我們開始搞破壞了,我們將在從庫刪除一些數據。

然后我們開始運行 $ pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --databases=test --replicate=test.checksums h=192.168.198.201,u=admin,p='1234.com',P=3306

注意:

1 每次pt-table-checksum 只能檢查一個表

2 檢查時不建議檢查binlog format 否則會報錯,pt-table-checksum 默認是要使用 statement 作為復制的方式

3 replicate 默認指定的表最好在需要鑒定數據是否一致的庫下,這樣在執行pt-table-sync 時候回比較方便。

4  給定檢測的連接數據庫的賬戶,應該具有建表或建庫的權限

其中pt-table-checksum 主要是將需要檢測的表(不是每行)通過塊的方式(多行組成的數據),進行檢測,通過CRC32的方式

通過命令檢測,發現相關表上有數據chunck 不一致,并且在檢測數據庫的位置,建立了checksums 表,來記錄相關的信息。

MYSQL 主從不一致如何解決

(相關的參數請查看官方文檔)

同時在主庫中在運行

pt-table-sync --replicate=test.checksums h=192.168.198.201,u=admin,p=1234.com,P=3306 h=192.168.198.202,u=admin,p=1234.com,P=3306 --print   > /data/fix.sql

MYSQL 主從不一致如何解決

在導出SQL 后在相關的從庫導入

MYSQL 主從不一致如何解決

然后回到主庫,清理checksums 表,然后在執行一遍命令,在查看chekcsums表,可以很清晰的看到,每個chunk 的值都是相等的。

MYSQL 主從不一致如何解決

可以看到修復差異的數據是可以的。

剛才僅僅是數據不同(數據缺失),如果里面的數據并沒有缺失,僅僅是里面的值變化了,會不會無法使用這個工具,答案是不可能

我們可以試試,從庫修改name 值

MYSQL 主從不一致如何解決

截圖中我們修改了NAME 的值

我們還是通過剛才的命令,可以清晰的看到,相關的修改的記錄可以被找到并且可以被修復。

MYSQL 主從不一致如何解決

所以到目前為止,通過PT工具來修復主從不一致的方法還是很奏效的,但如果你大多數表都不一致了,那還是建議從做一次主從復制比較高效。

另外,MYSQL 提供一個 checksum table 的命令,也能快速的判斷一個表和另一個表之間是否不相同。  注意這里用的是 不相同,通過官方的文提示兩個不一樣的table 也是有可能產生一致的值,當然這樣的概率會比較低。

關于MYSQL 主從不一致如何解決就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

介休市| 务川| 岱山县| 合肥市| 松阳县| 嘉兴市| 南昌市| 宽甸| 临沭县| 吴忠市| 济南市| 巫山县| 买车| 延津县| 旅游| 鸡西市| 枝江市| 张家界市| 镇安县| 天峻县| 阜康市| 青川县| 错那县| 清远市| 淅川县| 张家口市| 大埔区| 峨眉山市| 潼南县| 呼玛县| 贡嘎县| 武平县| 青神县| 无极县| 昭平县| 栾城县| 许昌市| 长宁县| 丰宁| 正镶白旗| 巨野县|