1

我正在尝试使用过滤器来选择要复制的特定表。我尝试使用安装程序运行它

./tools/tungsten-installer --master-slave -a \
  ...
  --svc-extractor-filters=replicate \
--property=replicator.filter.replicate.do=test,*.foo"

并在 master 未正确安装后在 trepctl 状态下获得此异常:

插件类名属性缺失或为空:key=replicator.filter.replicate

这个属性文件是哪个文件?我如何找到它?此外,在指定过滤器的设置时,我怎么知道要放什么?

我发现我应该在配置之前根据问题 219 修改配置模板文件,但是我应该在 tungsten-replicator-2.0.5-diff 中进行哪些更改,以便稍后修补到提取?

问题 254 建议如果您想应用开箱即用的过滤器,您可以将这些选项与 tungsten-installer 一起使用:

-a --property=replicator.filter.Replicate.ignoreFilter=schema_x.tablex,schema_x,tabley,schema_y,tablez
 --svc-thl-filter=Replicate 

但是,当我尝试将其用于--property=replicator.filter.replicate.do时,问题仍然相同:

pendingExceptionMessage:插件类名属性丢失或为空:key=replicator.filter.replicate

您的帮助将不胜感激。

伦比

更新:您好,我查看了这个文件:/root/tungsten/tungsten-replicator/samples/conf/filters/default/tableignore.tpl。根据这个示例,静态SERVICE_NAME.properties 文件应该有类似的东西此配置,请确认这是否是正确的语法:

replicator.filter.tabledo=com.continuent.tungsten.replicator.filter.JavaScr iptFilter 
replicator.filter.tabledo.script=${replicator.home.dir}/samples/ 
scripts/javascript-advanced/tabledo.js 
replicator.filter.tabledo.tables=foo(database).bar(table) 
replicator.stage.thl-to-dbms.filters=tabledo 

但是,我没有在 tableignore.js 所在的目录中找到 tabledo.js(或类似的东西)。请问这个文件的位置。如果有另一种指定 --property=replicator.filter.replicate.do=test 而不使用此 .js 文件的方法,我们非常欢迎您提出建议。

4

3 回答 3

1

下载最新版本的钨复制器。大约一个月前添加了丢失的 tpl 文件。安装后,应将过滤后的表添加到过滤器部分下的 static-service.properties。

于 2012-01-26T10:47:17.900 回答
0
  • 在静态 YOUR_SERVICE_NAME .properties中找到您的复制器配置文件,例如
/opt/continuent/tungsten/tungsten-replicator/conf/static-mysql2vertica.properties

确保设置了各个 dbms 属性,特别是设置了replicator.applier.dbms:

# 批处理应用程序基本配置信息。
replicator.applier.dbms=com.continuent.tungsten.replicator.applier.batch.SimpleBatchApplier
replicator.applier.dbms.url=jdbc:mysql:thin://${replicator.global.db.host}:${replicator.global.db.port}/tungsten_${service.name}?createDB=true
复制器.applier.dbms.driver=org.drizzle.jdbc.DrizzleDriver
replicator.applier.dbms.user=${replicator.global.db.user}
replicator.applier.dbms.password=${replicator.global.db.password}
replicator.applier.dbms.startupScript=${replicator.home.dir}/samples/scripts/batch/mysql-connect.sql

# 时区和字符集。
复制器.applier.dbms.timezone=GMT+0:00
复制器.applier.dbms.charset=UTF-8

# 通过阶段表加载和合并的参数。
复制器.applier.dbms.stageTablePrefix=stage_xxx_
replicator.applier.dbms.stageDirectory=/tmp/staging
replicator.applier.dbms.stageLoadScript=${replicator.home.dir}/samples/scripts/batch/mysql-load.sql
replicator.applier.dbms.stageMergeScript=${replicator.home.dir}/samples/scripts/batch/mysql-merge.sql
复制器.applier.dbms.cleanUpFiles=false

根据您要复制到的数据库,您可能必须省略/修改某些行。

有关更多信息,请参阅: https ://code.google.com/p/tungsten-replicator/wiki/Replicator_Batch_Loading

于 2013-10-30T17:19:18.963 回答
-1

我不知道这个问题是否仍然存在。

我正在使用此版本 2.0.6-xxx 并使用参数安装服务对我有用。我想指出,正如参数所说,“--svc-extractor-filters”定义了一个提取器过滤器。这意味着参数将指导主服务器中的数据提取。

如果你打算在从服务上使用它,你应该使用“--svc-applier-filters”。

参数
--svc-extractor-filters=复制\
--property=replicator.filter。复制.do=test,*.foo"

应该在属性文件中创建以下内容:

这是设置的过滤器。
复制器.过滤器。复制=com.continuent.tungsten.replicator.filter.ReplicateFilter
复制器.filter。复制.ignore=
replicator.filter。复制.do=test,*.foo

而且您还应该能够找到replicator.stage.binlog-to-q.filters=replicate 参数集。

如果您打算在从站中使用此过滤器,请找到以下行:
replicator.stage.q-to-dbms.filters=mysqlsessions,pkey,bidiSlave

并将其更改为
replicator.stage.q-to-dbms.filters=mysqlsessions,pkey,bidiSlave, replicate

希望这个简短的描述对您有所帮助!

于 2012-07-25T12:57:21.577 回答