我正在尝试使用过滤器来选择要复制的特定表。 我尝试使用安装程序运行它
./tools/tungsten-installer --master-slave -a \
...
--svc-extractor-filters=replicate \
--property=replicator.filter.replicate.do=test,*.foo"
在master未正确安装后,在trepctl状态下出现此异常:
插件类名称属性缺失或为null:key = replicator.filter.replicate
哪个文件是这个属性文件?我怎么找到它?此外,在指定过滤器的设置时,我如何知道要准确放置什么?
我发现我应该根据问题219在配置之前修改配置模板文件,但是我应该在钨复制器-2.0.5-diff中进行哪些更改,以后将修补到提取?
问题254建议如果你想要开箱即用,你可以在钨安装程序中使用这些选项:
-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:缺少插件类名称属性或null:key = replicator.filter.replicate
非常感谢您的协助。
Rumbi
更新: 你好 我看了看这个文件:/ root / tungsten / tungsten-replicator / samples / conf / filters / default / tableignore.tpl。根据这个样本,a static-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
但是,我没有找到tabledo.js(或类似的东西) tableignore.js所在的目录。我可以请你 此文件的位置。如果有另一种指定方式 --property = replicator.filter.replicate.do =不使用测试 这个.js文件,非常欢迎您的建议。
答案 0 :(得分:1)
下载最新版本的钨复制器。大约一个月前添加了丢失的tpl文件。安装后,应将过滤后的表添加到FILTERS部分下的static-service.properties中。
答案 1 :(得分:0)
/opt/continuent/tungsten/tungsten-replicator/conf/static-mysql2vertica.properties
确保设置了各个dbms属性,特别是设置replicator.applier.dbms:
# Batch applier basic configuration information. 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 replicator.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 # Timezone and character set. replicator.applier.dbms.timezone=GMT+0:00 replicator.applier.dbms.charset=UTF-8 # Parameters for loading and merging via stage tables. replicator.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 replicator.applier.dbms.cleanUpFiles=false
根据您复制的数据库,您可能必须省略/修改某些行。
有关更多信息,请参阅: https://code.google.com/p/tungsten-replicator/wiki/Replicator_Batch_Loading
答案 2 :(得分:-1)
我不知道这个问题是否仍然存在。
我正在使用此版本2.0.6-xxx并使用参数安装服务适合我。 我想指出,因为参数说“--svc-extractor-filters”定义了一个提取器过滤器。这意味着参数将指导主服务器中的数据提取。
如果您打算在奴隶服务上使用它,您应该使用“--svc-applier-filters”。
参数
--svc-extractor-filters = 复制 \
--property = replicator.filter。的复制强>。做=测试,*。foo“的
应该在属性文件中创建以下内容:
这是过滤器设置。
replicator.filter。的复制强> = com.continuent.tungsten.replicator.filter.ReplicateFilter
replicator.filter。的复制强> .IGNORE =
replicator.filter。复制 .do = test,*。foo
你也应该能够找到 replicator.stage.binlog到q.filters =复制 参数集。
如果您打算在奴隶中使用此过滤器,请找到以下行:
replicator.stage.q到dbms.filters = mysqlsessions,p键,bidiSlave
并将其更改为
replicator.stage.q到dbms.filters = mysqlsessions,p键,bidiSlave,的复制强>
希望这个简短的描述对你有所帮助!