我正在尝试将数据从内存中的DB1迁移到我的DB2。为此,我使用SymmetricDS配置,当SymmetricDS启动时,它将执行从DB1到DB2的初始加载。此外,只要在DB1中发生某些数据修改,就会将其拉到DB2。
现在这是我遇到问题的地方。 SymmetricDS要求配置表或Sym表存在于DB1端和DB2端。
由于我的DB1在内存中,因此这些配置表占用了大量内存。
所以我想知道的是是否有办法,将配置表完全保存在单独的磁盘数据库中,从DB1端,并保留现有功能? < / p>
希望我能够清楚自己。
任何和所有建议都将不胜感激。
答案 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表。