2010-11-22 6 views
3

私はマスターとスレーブ上に同じテーブルを持っています。両方とも多くの列にpriceがあります。複製が上書きされないように、スレーブのprice列の個々の値を設定する可能性はありますか?MySQLのスレーブでいくつかの列のレプリケーションをスキップ

私たちのシステムは、個々の価格を持つ多くの国で機能しますが、中央データベースからいくつかの共通データも共有したいと考えています。いくつかの解決策までしかし

私は:

  • はレプリケートされません他のテー​​ブルに、すべての国の特定の列を抽出します。
  • これには、ソースコードに多くの変更が必要です。
  • マスターからレプリケートする共通の共有列のみを持つプロキシデータベースをいくつか作成し、完全な列定義を持つマスターベースのデータベースに設定します。
  • 私は醜いです。

良いことはありますか?助けていただければ幸いです。

答えて

0

私は本当に複製があなたに求めているような「ほとんど複製」をするように設計されているとは思わないのです。私はあなたがテーブルの一部だけを複製できるとは思わない。

あなたの最初の解決策は、私にとって最も合理的です。

一般に、私は、複製を行わない、またはすべてのテーブルを複製するソフトウェアソリューションを考え出します。次に、本番環境で複製を追加して、冗長性またはパフォーマンスを追加します。それ以外のものは、開発とテストがかなり複雑なものと思われます。

(私:私は、MySQLのレプリケーションに数回を設定しているのに、私は、まさにMySQLの専門家ではない。)

0

Percona Server 5.1のスレーブ・スキップ・カラムのパッチがあります。あなたは一見をしたいかもしれません。

0

これは古い質問ですが、Googleで最初に起動するので、私は、これは、関連すると便利であると思った:https://dev.mysql.com/doc/refman/5.5/en/replication-features-differing-tables.html要するに

、テーブル内のあなたの共通の列が、マスターにスレーブ上のものである場合同じタイプで同じ順序であれば、レプリケーションはマスターまたはスレーブの最後に余分な列があっても機能します。不一致データ型の場合、いくつかの規則があります。

関連する問題