MySQL主從復(fù)制是指將一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)自動(dòng)同步到另一個(gè)數(shù)據(jù)庫(kù)中。主數(shù)據(jù)庫(kù)被稱為主庫(kù),從數(shù)據(jù)庫(kù)被稱為從庫(kù)。在一些情況下,我們需要屏蔽主庫(kù)上的刪除操作,以免誤刪數(shù)據(jù)影響從庫(kù)的同步。
要屏蔽主庫(kù)上的刪除操作,我們需要在從庫(kù)上設(shè)置參數(shù)。在從庫(kù)上開啟如下幾個(gè)參數(shù),可以屏蔽主庫(kù)上的刪除操作:
slave-skip-errors = 1062,1213
replicate-wild-ignore-table = db_name.table_name
slave-skip-errors
參數(shù)是指主從復(fù)制過程中出現(xiàn)特定錯(cuò)誤時(shí)跳過同步操作,1062表示唯一鍵重復(fù)錯(cuò)誤,1213表示死鎖錯(cuò)誤。由于刪除操作會(huì)導(dǎo)致唯一鍵沖突和死鎖,設(shè)定這個(gè)參數(shù)可以屏蔽這些錯(cuò)誤,從而達(dá)到屏蔽刪除操作的目的。replicate-wild-ignore-table
參數(shù)是指忽略從庫(kù)上指定的數(shù)據(jù)庫(kù)和表不與主庫(kù)同步。我們可以指定需要屏蔽刪除操作的數(shù)據(jù)庫(kù)和表,從而達(dá)到屏蔽刪除操作的目的。例如:replicate-wild-ignore-table = mydb.t1
。這個(gè)參數(shù)還可以使用通配符表示多張表。
在設(shè)置完以上參數(shù)后,從庫(kù)上將不再同步被屏蔽的數(shù)據(jù)庫(kù)和表的刪除操作。不過需要注意的是,如果從庫(kù)上已經(jīng)存在這些被屏蔽的數(shù)據(jù),那么主庫(kù)上的刪除操作仍然會(huì)同步到從庫(kù)上。
總而言之,MySQL主從復(fù)制是一種強(qiáng)大的數(shù)據(jù)同步機(jī)制,合理設(shè)置參數(shù)可以達(dá)到一定的數(shù)據(jù)保護(hù)目的。在實(shí)際應(yīng)用中,我們需要根據(jù)實(shí)際需求來配置參數(shù),以便實(shí)現(xiàn)最佳的效果。