我是intersystems缓存的新手。我们有一个使用缓存数据库的旧系统,现在我们想要提取并转换其中的所有数据,首先将其存储到另一个不同的数据库中,如PostgreSQL,然后监视原始缓存数据的所有修改,以便及时修改(新的或更新) PostgreSQL中转换后的数据。
有没有办法监控缓存中的所有数据修改?
缓存有没有像mongodb的oplog一样的修改/复制日志?
任何想法都将不胜感激,谢谢!
发布于 2020-11-24 14:56:56
简而言之,是的,有一种方法可以监控数据修改。InterSystems使用journaling有一些原因,主要是为了保持数据的一致性。在某些情况下,日志可能比其他情况下有更多的记录。它用于回滚事务、在意外关闭时恢复数据、用于备份、用于镜像等。
但我认为在你的情况下这可能会有所帮助。Caché上的大多数相当老的应用程序不使用对象和SQL表,只按原样使用全局变量。而在日志中,你只能找到全局变量,所以,如果你的缓存应用程序中已经有了对象和表,你应该知道它在全局变量中存储数据的位置和方式。使用Journals API,您将能够读取数据中的每一处更改。将有任何更改,如果应用程序使用事务,您也将有关于它的标志。每条记录只更改一个值,它可以是set或kill。
请注意,Caché会根据设置清除过期的日志文件,因此,您必须增加清除该文件的天数。
https://stackoverflow.com/questions/64966011
复制相似问题