减少配置表:SymmetricDS

时间:2017-12-04 06:09:28

标签: database symmetricds

我正在尝试将数据从内存中的DB1迁移到我的DB2。为此,我使用SymmetricDS配置,当SymmetricDS启动时,它将执行从DB1到DB2的初始加载。此外,只要在DB1中发生某些数据修改,就会将其拉到DB2。

现在这是我遇到问题的地方。 SymmetricDS要求配置表或Sym表存在于DB1端和DB2端。

由于我的DB1在内存中,因此这些配置表占用了大量内存。

所以我想知道的是是否有办法,将配置表完全保存在单独的磁盘数据库中,从DB1端,并保留现有功能? < / p>

希望我能够清楚自己。

任何和所有建议都将不胜感激。

3 个答案:

答案 0 :(得分:1)

选项1:最小化运行时表占用空间。您可以积极清除运行时表。例如,每10分钟清除一次,并且只保留10分钟的活动:

purge.retention.minutes=10
job.purge.incoming.cron=0 */10 * * * *
job.purge.outgoing.cron=0 */10 * * * *

完全避免记录incoming_batch表:

incoming.batches.record.ok.enabled=false

选项2:将SymmetricDS放入另一个数据库。将SymmetricDS设置为指向数据库,如基于H2文件的数据库。所有&#34; SYM&#34;桌子会去。然后配置&#34; jdbc&#34;要加载到内存数据库中的参数。例如,您可以加载到Apache Ignite:

jdbc.db.url=jdbc:ignite:thin://localhost
jdbc.db.driver=org.apache.ignite.IgniteJdbcThinDriver
jdbc.db.user=
jdbc.db.password=

然后将sym_channel.data_loader_type设置为&#34; jdbc&#34;对于您用来加载数据的频道(例如&#34;默认&#34;以及&#34;重新加载&#34;频道)。

答案 1 :(得分:0)

低挂水果将减少吹扫时间,即将参数job.purge.period.time.ms从五天(以秒为单位 - 7200000)减少到几小时。 SymmetricDs会更频繁地清除所有成功同步的传出批次(sym_outgoin_batch)和关联的提取数据(sym_data)。

SymmetricDs允许将其表保存在另一个目录和/或架构中,这并不能真正解决您的问题。

答案 2 :(得分:0)

SymmetricDS 3.9将提供“仅加载”功能,允许您加载到数据库并在磁盘H2数据库中创建sym表。这将允许您复制到您的D2,而不包含任何sym表。