-35

私は mysql レプリケーションを行っていますが、単純な例として、2 つのテーブルtableAtableB.

レプリケーション用のスレーブでtableAは許可tableBされますが、無視されます。

replicate-do-table='dbname.tableA'

マスターでは、このクエリが作成されています (マスターに変更を加えることはできません):

UPDATE tableA as a LEFT JOIN tableB as b ON b.type = a.type
SET b.col1 = CONCAT(IFNULL(a.col1,''),'|',IFNULL(a.col2,''))

明らかにtableB、スレーブ上で作成して偽のテーブルを更新させることもできますが、特にこのテーブルは、検索に使用されるメモリ内テーブルであり、ほぼ常に更新され、多くのリソースが浪費されます。

保持しながらこれらの更新をレプリケーションから除外する方法はありますtableAか? マスターにアクセスすることはできませんが、システムの動作に影響を与えない変更であれば変更を依頼できます。

4

2 に答える 2

1

私の状況では、代わりにテーブルが存在しないというエラーを無視する方が理にかなっています。これは、データベース システムが変更される可能性がほとんどまたはまったくなく、問題の更新がレプリケートしているテーブルを対象としていないためです。

これは、私たちが徐々に離れようとしているレガシー システムです。

slave-skip-errors=1146

これを解決する他の唯一の信頼できる方法は、マスターで行レベルのビン ロギングに切り替えることですが、その変更を行うように依頼することはできませんでした。

于 2013-09-23T20:39:52.283 に答える