由于跨数据库引用而导致的数据库复制错误-表不存在

|| 我们在收集一些测量数据的服务器上运行mysql v5.0.77。 在mysql服务器上,我们有以下数据库: raw_data_db config_tables_db 已处理_数据_数据库 我们只想复制\'processed_data_db \',它是使用\'raw_data_db \'和\'config_tables_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
我正在假设发生的事情是,跨数据库选择无法找到原始数据库,因为我们没有在复制原始数据库,并且数据在从属服务器上不存在……或类似的东西? 所以我尝试使用忽略,但是我们仍然遇到错误 复制野生-忽略表= raw_data_db。* 复制野生忽略表= data.temp * 其他配置信息: 复制-重写-db =已处理的数据_db->数据 复制数据库-数据 如果所有表都是从对其他数据库的引用中创建的,是否可以仅复制一个数据库?关于如何解决此错误的任何想法? 我查看了基于行的复制,这似乎可以解决问题,但仅在v5.1或更高版本中可用。...在早期版本中是否有类似之处? 我将ignore table语句固定为\“ data。%temp%\”,似乎可以忽略,但是我仍然无法复制所需的表,因为insert语句现在引用的表不不存在。 例如
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\'\'
处理过程是从原始数据库创建临时表,然后对临时表中的所有值求平均,然后将结果插入到processing_data_db中,但是由于我忽略了create语句,因此它无权访问这些表,但我首先忽略它们的原因是因为它们引用了我要复制的表之外的表...所以我不确定该如何处理...。任何建议都会很大赞赏。     
已邀请:
  临时表和复制   选项。默认情况下,所有临时   表被复制;有时候是这样的   是否有任何匹配   --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 编辑: 复制raw_data_db和config_tables_db表,其中使用 在您插入查询 使用drbd协议 http://www.mysql.com/why-mysql/drbd/     

要回复问题请先登录注册