2

サーバー上で mysql v5.0.77 を実行して、いくつかの測定データを収集しています。

mysql サーバーには、次のデータベースがあります。

raw_data_db
config_tables_db
processing_data_db

「raw_data_db」と「config_tables_db」からの情報を使用して構築された「processed_data_db」のみを複製したいと考えています。

処理されたデータを構築しているステートメントを複製しようとすると、スレーブサーバーでエラーが発生し続けます。

例:
[ERROR] Slave: Error 'Table 'raw_data_db.s253' doesn't exist' on query. Default database: 'data'. Query: 'CREATE TEMPORARY TABLE temp SELECT * FROM raw_data_db.s253 WHERE DateTimeVal>='2011/04/21 17:00:00' AND DateTimeVal<='2011/04/21 17:10:00'', Error_code: 1146

私が想定しているのは、データベースを複製していないため、クロスデータベースの選択が生のデータベースを見つけることができず、データがスレーブに存在しないということです...またはそれらの線に沿ったものですか?

そのため、ignoreを使用してみましたが、まだエラー
replicate-wild-ignore-table = raw_data_db.*
が 発生しています。

その他の構成情報:
replica-rewrite-db = processing_data_db->data
replica-do-db = data

すべてのテーブルが他のデータベースへの参照から作成されている場合、1 つのデータベースだけを複製することは可能ですか? このエラーを回避する方法についてのアイデアはありますか?

行ベースのレプリケーションを調べましたが、うまくいくように見えましたが、v5.1 以降でしか利用できません..以前のバージョンに似たようなものはありますか?

無視テーブル ステートメントを「data.%temp%」に修正しました。問題なく無視しているように見えますが、挿入ステートメントが存在しないテーブルを参照しているため、必要なテーブルを複製できません。

元。
Error 'Table 'data.temp' doesn't exist' on query. Default database: 'data'. Query: 'INSERT INTO abc SELECT FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(DateTimeVal))), ROUND(AVG(Difference),3), ROUND(STDDEV(Difference),3), ROUND(AVG(Frequency),0), ROUND(AVG(SignalPower),1) FROM temp WHERE ABS(Difference)<'10000.0' AND Difference!='0''

処理では、生のデータベースから一時テーブルを作成し、一時テーブルのすべての値を平均して結果をprocessed_data_dbに挿入していますが、createステートメントを無視しているため、それらのテーブルにアクセスすることはできませんが、そもそもそれらを無視している理由は、複製したいもの以外のテーブルを参照しているためです...だから、これにどのようにアプローチすべきかわかりません....どんな提案でも大歓迎です。

4

1 に答える 1

0

一時テーブルとレプリケーションオプション。デフォルトでは、すべての一時テーブルが複製されます。これは、一致する--replicate-do-db、-replicate-do-table、または--replicate-wild-do-tableオプションが有効になっているかどうかに関係なく発生します。ただし、一時テーブルでは--replicate-ignore-tableおよび--replicate-wild-ignore-tableオプションが使用されます。

http://dev.mysql.com/doc/refman/5.0/en/replication-features-temptables.html

編集:

  1. クエリを挿入する際に使用するraw_data_dbテーブルとconfig_tables_dbテーブルを複製します
  2. drbdプロトコルを使用する http://www.mysql.com/why-mysql/drbd/
于 2011-04-22T14:54:39.680 に答える