前几日,一测试环境在dblink单表同步的时候(不管怎么说,目前仍然是同构数据库同步性能最快的方法,别听网上的扯淡,无论goldengate还是java层,都是比较慢的),某张表一直同步不过去,看了一下正在等待“enq: DX – contention”事件,搜索了下,在Oracle中enq: DX 队列锁一般用意保护分布式事务(used to protect distributed transactions)。但是没有并没有解决方法。很多网站纯属标题党,比如“https://www.askmaclean.com/archives/enq-dx-contention.html”,内容一屏,都是废话。

虽然insert select一直卡住,但是直接select并没有什么问题。于是想到了一个方法,使用with t as (select /*+ materialize */* from t@remote) insert select * from t,此时问题就解决了。

04-14 07:59