91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

栖霞市| 丹凤县| 弥勒县| 通州区| 黄骅市| 莫力| 年辖:市辖区| 申扎县| 公安县| 沽源县| 汝阳县| 简阳市| 乌兰察布市| 横山县| 宁安市| 井冈山市| 安顺市| 郸城县| 天镇县| 杨浦区| 仙桃市| 望城县| 信阳市| 淮南市| 靖江市| 永济市| 崇州市| 鱼台县| 廊坊市| 黑水县| 肇州县| 蕲春县| 五原县| 贡嘎县| 宁武县| 佛山市| 文登市| 大丰市| 龙陵县| 临城县| 绥宁县|