Extract encountered a read error in the asynchronous reader thread and is abending: Error code 447, error message: ORA-00447: fatal error in background process.
Recently I configured a report server. Used Oracle GoldenGate 12c Integrated Mode for the Real Time Replication from Production server. Nearly I configured the replication for more than 7 Schemas and size of each schema was more than 300 GB.
As all know, before starting the Oracle GoldenGate Online Replication, one should make the primary and target data in sync. To achieve this I used the Initial Load-File to Replicat technique. I just went with one bye one schema instead of all at a time.
I already configured 5 schemas for Online Replciation. I configured the 6th one, Initial load completed successfully and started the Regular Replication. But within few minutes, I ended up with the below errors.,
2014-11-21 10:09:44 INFO OGG-01487 Oracle GoldenGate Capture for Oracle, invdmext.prm: DDL found, operation [truncate table INVESTMENT_DM.PROJECT_PRODUCT_FACT (size 51)], start SCN [7340384677561], commit SCN [7340384707225] instance [GGDB1 (1)], DDL seqno [335571], marker seqno [335423].
2014-11-21 10:09:44 INFO OGG-00487 Oracle GoldenGate Capture for Oracle, invdmext.prm: DDL operation included [INCLUDE MAPPED], optype [TRUNCATE], objtype [TABLE], objowner [INVESTMENT_DM], objname [PROJECT_PRODUCT_FACT].
2014-11-21 10:09:44 INFO OGG-00497 Oracle GoldenGate Capture for Oracle, invdmext.prm: Writing DDL operation to extract trail file.
2014-11-21 10:31:03 ERROR OGG-02077 Oracle GoldenGate Capture for Oracle, traext.prm: Extract encountered a read error in the asynchronous reader thread and is abending: Error code 4031, error message: ORA-04031: unable to allocate bytes of shared memory (“”,””,””,””).
2014-11-21 10:31:03 ERROR OGG-02077 Oracle GoldenGate Capture for Oracle, odsnext.prm: Extract encountered a read error in the asynchronous reader thread and is abending: Error code 4031, error message: ORA-04031: unable to allocate bytes of shared memory (“”,””,””,””).
2014-11-21 10:31:04 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, traext.prm: PROCESS ABENDING.
2014-11-21 10:31:05 ERROR OGG-02077 Oracle GoldenGate Capture for Oracle, utlext.prm: Extract encountered a read error in the asynchronous reader thread and is abending: Error code 4031, error message: ORA-04031: unable to allocate bytes of shared memory (“”,””,””,””).
2014-11-21 10:31:07 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, odsnext.prm: PROCESS ABENDING.
2014-11-21 10:31:08 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, utlext.prm: PROCESS ABENDING.
2014-11-21 10:33:33 ERROR OGG-02077 Oracle GoldenGate Capture for Oracle, rmext.prm: Extract encountered a read error in the asynchronous reader thread and is abending: Error code 4031, error message: ORA-04031: unable to allocate bytes of shared memory (“”,””,””,””).
2014-11-21 10:33:33 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, rmext.prm: PROCESS ABENDING.
2014-11-21 10:35:06 ERROR OGG-02077 Oracle GoldenGate Capture for Oracle, odsext.prm: Extract encountered a read error in the asynchronous reader thread and is abending: Error code 4031, error message: ORA-04031: unable to allocate bytes of shared memory (“”,””,””,””).
2014-11-21 10:35:21 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, odsext.prm: PROCESS ABENDING.
2014-11-21 10:40:54 INFO OGG-01026 Oracle GoldenGate Capture for Oracle, invdmdp.prm: Rolling over remote file /ogg/dirdat/nt017188.
All my extract got ABENDED. I got shocked and started analyzing the issue. Integrated Capture mode is tightly bind with the Oracle Architecture. It integrates with the logminer server for capturing the changes written to the Online Redo logs.
It uses mainly the Streams_Pool_Size. So it all depends on the memory which we allocate to the STREAMS. In Integrated capture file we will define the below parameter,
EXTRACT TRAEXT
USERID ggadmin, PASSWORD oracle
CACHEMGR CACHESIZE 1G
DDL INCLUDE MAPPED EXCLUDE ALL INSTR ‘MATERIALIZED VIEW’
DDLOPTIONS ADDTRANDATA, REPORT
EXTTRAIL /ogg/dirdat/tr
TRANLOGOPTIONS INTEGRATEDPARAMS (max_sga_size 1024, parallelism 1)
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
TABLE TRAEXT.*;
TRANLOGOPTIONS INTEGRATEDPARAMS (max_sga_size 1024, parallelism 1)
Here the max_sga_size is nothing but the streams_pool_size allocated for the particular extract. My value for STREAMS_POOL_SIZE was only 5G and when adding the 6th Extract process to the GoldenGate there was no sufficient memory and hence caused all other process to be ABEND.
I had set 1024M for the max_sga_size to each Integrated Capture process. After 5G it was not able to allocate memory to the Capture process.
So one should take care of the Memory requirements before configuring the Oracle GoldenGate Integrated Capture Mode.
After configuring the memory requirements correctly, everything went fine.
For tips on “Memory requirement for Oracle GoldenGate Integrated Extract” please click here