恐怕不行 官方说明如下: 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
官方说明如下:
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
如果该分布式事务只是出现在查询中,不造成数据的变化,应该问题不大。否则可能造成同步进程中断