Oracle CDC(Change Data Capture)是 Oracle 数据库提供的一种数据变更捕获技术,可以用于捕获数据库中的数据变更,并将变更信息传递给其他系统或应用程序。Oracle CDC 可以通过增量模式或日志模式实现数据变更的捕获。
在 Oracle CDC 的增量模式中,CDC 进程会定期扫描数据库中的 redo log,捕获变更信息,并将变更信息写入到 CDC 表中。因此,在增量模式下,Oracle CDC 不会直接锁表,而是通过扫描 redo log 获取变更信息,不会对表进行写操作。
需要注意的是,Oracle CDC 在增量模式下会对 redo log 进行扫描和读取,可能会对数据库的性能产生一定的影响。因此,在使用 Oracle CDC 时,需要根据实际情况进行配置和优化,以减少对数据库性能的影响。
在Oracle CDC增量模式中,不会对表进行锁定。增量扫描是通过读取数据库的 redo log 和/或 archive log 文件来实现的,这些文件是由 Oracle 数据库自动维护的,不会对表进行锁定。
flinkCDC中的Oracle CDC应该是不支持无锁表
会锁表,但锁表的情况只出现在初始化CDC配置时。在进行CDC数据采集期间,不会锁表。
在初始化CDC配置时,Oracle会在源表上创建一个隐藏的日志表和相关索引,在创建和插入数据时会对源表施加一个短暂的排他锁。这是因为Oracle需要创建和加载日志表和元数据表,确保同步期间的数据一致性和可靠性。在配置完成后,锁会自动释放。
因此,在进行Oracle CDC增量模式的初始化期间可能会对源表造成短暂的锁定,对于高并发的应用场景需要特别注意。如果需要避免锁表,可以考虑在低峰期进行初始化配置。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。