解决方案 »

  1.   

    恐怕不行
    官方说明如下:
    APPLIES TO:Oracle GoldenGate - Version 11.1.1.0.0 and later
    Information in this document applies to any platform.
    SYMPTOMSExtract report shows following messages:2012-03-05 09:14:54  WARNING OGG-00723  Oracle GoldenGate Capture for Oracle, ext_bi.prm:  Record with class# 34, slt# 4, at seqno 77324,
    rba 32995856 SCN 27.2929925862 (118894042854) has secondary transaction ID that is duplicate of existing open uncommitted transaction.2012-03-05 09:14:54  WARNING OGG-00715  Oracle GoldenGate Capture for Oracle, ext_bi.prm:  [Thread #1] Purging transaction
    (transaction id: 9.4.26367119, start time: 2012-03-05 09:11:35, start seqno: 77323, start RBA: 154945040).2012-03-05 09:14:54  WARNING OGG-00712  Oracle GoldenGate Capture for Oracle, ext_bi.prm:  Updating I/O checkpoint after purging
    orphaned transactions on thread 1 with current position (Seq#: 77324, RBA: 32998564). s CAUSEThis is due to the presence of XA (distributed transactions).This can be verified by running the following query:sql> spool output.txtset headin off
    select /*+ ORDERED */
    '-------- Found Global XID -----------------------'||'
    Current Time : '|| substr(to_char(sysdate,'dd-Mon-YYYY HH24.MI.SS'),1,22) ||'
    '||'Ascii GTXID='||g.K2GTITID_ORA
    from x$k2gte g;
    set headin off
    select /*+ ORDERED */
    '----------------------------------------'||'
    Curent Time : '|| substr(to_char(sysdate,'dd-Mon-YYYY HH24.MI.SS'),1,22) ||'
    '||'GTXID='||substr(g.K2GTITID_EXT,1,10) ||'
    '||'Ascii GTXID='||g.K2GTITID_ORA ||'
    '||'Branch= '||g.K2GTIBID ||'
    Local TX Id ='||substr(t.KXIDUSN||'.'||t.kXIDSLT||'.'||t.kXIDSQN,1,10) ||'
    '||'KTUXESTA='|| x.KTUXESTA ||'
    '||'KTUXEDFL='|| x.KTUXECFL
    from x$k2gte g, x$ktcxb t, X$KTUXE x
    where g.K2GTDXCB =t.ktcxbxba and
    x.KTUXEUSN = t.KXIDUSN(+) and
    x.KTUXESLT = t.kXIDSLT(+) and
    x.KTUXESQN =t.kXIDSQN(+);set headin onsql> spool offExtract/ Classic Extract encountered a shutdown of an instance, and is purging any transactions that are open on that instance.
    Extract/ Classic Extract does not have the capability to handle XA transactions on RAC. It may purge XA transactions that would eventually
    commit. Note the first warning (secondary  transaction ID that is duplicate of existing open uncommitted transaction) suggests that we have encountered
    XA on RAC.There can be data loss (precisely in such cases where an instance with an XA branch crashes and the crashed XA txn is recovered in another instance).SOLUTIONUpgrade to OGG v11.2 and configure "Integrated Extract" which supports XA transactions.How To Upgrade From Goldengate Classic Extract To Integrated Extract (Doc ID 1484313.1)For environments using Classic Extract, the following can be used as a work-around_clusterwide_global_transactions=false1. What is the impact of setting "_clusterwide_global_transactions"=falseThis will ensure that ALL branches of XA goes to the same Oracle instance. However if the instance fails the whole XA transaction will roll back.
    This will only impact incoming distributed transactions.2. For existing connections will it be transparent ?It is not transparent. We still have to setup services to accept XA connections.From the Oracle 10.2 doc:
    For services that you are going to use for distributed transaction processing, create the service using Enterprise Manager, DBCA, or SRVCTL and
    define only one instance as the preferred instance. You can have as many AVAILABLE instances as you want. For example, the following SRVCTL command
    creates a singleton service for database crm, xa_01.service.us.oracle.com, whose preferred instance is RAC01:eg., srvctl add service -d crm -s xa_01.service.us.oracle.com -r RAC01 -a RAC02, RAC03For incoming transactions we will have to set up the services as explained above. Then  the service for distributed transaction processing by
    setting the DTP parameter to TRUE; the default is FALSE. Enterprise Manager enables you to set this parameter on the Cluster Managed Database Services: Create
    Service or Modify Service page. You can also use the DBMS_SERVICE package to modify the DTP property of the singleton service as follows:eg., EXECUTE DBMS_SERVICE.MODIFY_SERVICE(service_name=>'xa_01.service.us.oracle.com', DTP=>TRUE);If, for example, RAC01 which provides service XA_01 fails, then the singleton service that it provided fails over to one of the other instances, such as
    RAC02 or RAC03.Additional details on XA transactions are available in following documenthttp://www.oracle.com/technetwork/products/clustering/overview/distributed-transactions-and-xa-163941.pdf
      

  2.   

    这个文章我看过,我想明白什么分布式事务不能被同步?如果我只是做表级的DML操作同步,这些告警是不是可以忽略。
      

  3.   

    没试过分布式事务的goldengate同步。从日志上看,这只是一个warning,而不是error
    如果该分布式事务只是出现在查询中,不造成数据的变化,应该问题不大。否则可能造成同步进程中断