现在 有两个数据库 A B
将B中一个表的数据写入A中结构一样的表中用 PLSQL Developer 执行
如 insert into system.t1 select * from system.t1@Bdblink写入之后显示写入成功信息。
没有执行commit,就关闭了然后重新打开的时候,查询 A数据库的表,发现没有数据
在A中commit也没有作用,依然差不到数据再次运行语句 insert into system.t1 select * from system.t1@Bdblink
A中rollback也没有作用就给出了ORA-02049 超时分布式事务处理等待锁定的错误。大家帮帮忙吧!!!!!十分感谢!!

解决方案 »

  1.   

    insert   into   system.t1   select   *   from   system.t1
    这个好象是死循环了吧
      

  2.   

    select   *   from   system.t1@Bdblink Bdblink   是B数据库在A中的一个DBlink
      

  3.   

    看看lock视图。
    02049, 00000, "timeout: distributed transaction waiting for lock"
    // *Cause: exceeded INIT.ORA distributed_lock_timeout seconds waiting for lock.
    // *Action: treat as a deadlock
      

  4.   

    ORA-02049是不是肯定就是死锁的问题。
    具体都有哪些操作会导致这种情况发生呢?