問題:由於主備庫的表jrwz2_zx.zx_bank_sjsx中的記錄數,表結構,索引等不一致導致的錯誤.
主庫操作:
select count(*) from jrwz2_zx.zx_bank_sjsx;
describe jrwz2_zx.zx_bank_sjsx;
備庫操作:
select count(*) from jrwz2_zx.zx_bank_sjsx;
describe jrwz2_zx.zx_bank_sjsx;
經過對比,發現ogg的主備表jrwz2_zx.zx_bank_sjsx中的記錄數不一樣。所以需要同步資料。
主庫操作:
select count(*) from jrwz2_zx.zx_bank_sjsx;
多次查詢,發現該錶的記錄數並不經常更新和新增。所以採取不鎖主庫的表。不對業務有影響。如果實現不了,就鎖主庫的表 lock jrwz2_zx.zx_bank_sjsx
然後載同步主備的資料;
以下操作是在備庫執行:
備庫操作:create global temporary table jrwz2_zx.zx_bank_ysx_bak as select * from jrwz2_zx.zx_bank_ysx@to_pri where 1 = 2;
備庫操作:insert into jrwz2_zx.zx_bank_ysx_bak select * from jrwz2_zx.zx_bank_ysx@to_pri;
備庫操作:select count(*) from jrwz2_zx.zx_bank_ysx_bak;
備庫操作:commit;
備庫操作:delete from jrwz2_zx.zx_bank_ysx;
備庫操作:insert into jrwz2_zx.zx_bank_ysx select * from jrwz2_zx.zx_bank_ysx_bak;
備庫操作:commit;
快取不一致
當程式在執行過程中,會將運算需要的資料從主存複製乙份到cpu的快取記憶體當中,那麼cpu進行計算時就可以直接從它的快取記憶體讀取資料和向其中寫入資料,當運算結束之後,再將快取記憶體中的資料重新整理到主存當中。舉個簡單的例子 i i 1。當執行緒執行這個語句時,會先從主存當中讀取i的值,然後複製乙份到...
執行緒資料不一致例項
package kkkk public class sharedata private static class sharethread1 implements runnablecatch interruptedexception e private static class sharethread...
Redis Mysql資料不一致問題
目前各個大專案中多多少少用了寫redis快取技術,通過對redis中資料的讀取來減少對db的壓力。那麼在讀 寫兩個分離的技術中就容易造成,資料庫和快取不一致的問題 當使用者在更新資料時,在第二個步驟還未執行,但是此時又通過獲取資料介面,此時快取已經刪除,但是資料庫中還是老資料,那麼就會將老資料重新寫...