oracle goldengate ogg 11.2以后的兼容性列表

oracle goldengate ogg 11.2以后的兼容性列表 OGG database version compatible matrix

 

 

 

 

c Last Updated: March 14, 2014
This document covers the following product releases for Oracle GoldenGate:
◦ OGG 11gR2 (11.2.1.0.0), OGG 11gR2 (11.2.1.0.1), OGG 11gR2 (11.2.1.0.2), OGG 11gR2 (11.2.1.0.4), OGG 11gR2 (11.2.1.0.5), OGG 11gR2 (11.2.1.0.6), OGG 11gR2 (11.2.1.0.19)Oracle GoldenGate 11.2.1.0.20 is the Terminal Release for support of Oracle Database 10g
Installation Type Version Supported Processor Type OS Version OS
32/64 bit
Supported
Database Versions*
Exceptions and Additional Information
OGG Core 11.2.1.0.19+ x64 Windows Server 2008 R2 64 bit Microsoft SQL Server 2005 n/a
OGG Core 11.2.1.0.19+ x64 Windows Server 2008 with SP1+ 64 bit Microsoft SQL Server 2005 n/a
OGG Core 11.2.1.0.19+ x64 Windows 2003 with SP2+ 64 bit Microsoft SQL Server 2005 n/a
OGG Core 11.2.1.0.6+ x64 Red Hat EL 5 (UL3+) 64 Sybase 15.7 1. For Red Hat EL 5 (UL3+) on Oracle VM, minimum update level required is Red Hat EL 5 (UL3+) on Oracle VM 2.1.2+
OGG Core 11.2.1.0.6+ x64 Red Hat EL 6 (UL1+) 64 Sybase 15.7 n/a
OGG Core 11.2.1.0.6+ x64 Oracle Linux 5 (UL3+) 64 Sybase 15.7 1. For Oracle Linux 5 (UL3+) on Oracle VM, minimum update level required is Oracle Linux 5 (UL3+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.6+ x64 Oracle Linux 6 (UL1+) 64 Sybase 15.7 1. Support is with UEK: Unbreakable Enterprise Kernel and Red Hat Compatible Kernel.
OGG Core 11.2.1.0.6+ x64 Windows Server 2008 with SP1+ 64 Sybase 15.7 n/a
OGG Core 11.2.1.0.6+ x64 Windows Server 2008 R2 64 Sybase 15.7 n/a
OGG Core 11.2.1.0.6+ SPARC Solaris 10 Update 6+ 64 Sybase 15.7 n/a
OGG Core 11.2.1.0.5+ IBM z/OS zOS 1.13 32 bit IBM DB2 9.1
IBM DB2 10.1
n/a
OGG Core 11.2.1.0.4+ IBM AS400 AS400 5.4 64 bit DB2 (i-Series/IBM DB2/400) 5.4 n/a
OGG Core 11.2.1.0.4+ POWER AIX 7.1 (TL2+) 64 bit IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
OGG Core 11.2.1.0.4+ x64 Solaris 10 Update 6+ 64 bit MySQL 5.1 n/a
OGG Core 11.2.1.0.4+ x64 Solaris 11 (All Update Levels Included) 64 bit MySQL 5.1 n/a
OGG Core 11.2.1.0.4+ x64 Windows 2003 with SP2+/R2+ 64 bit IBM DB2/400 6.1
IBM DB2/400 7.1
n/a
OGG Core 11.2.1.0.4+ x64 Windows Server 2008 with SP1+ 64 bit IBM DB2/400 6.1
IBM DB2/400 7.1
n/a
OGG Core 11.2.1.0.4+ x86 Oracle Linux 4 (UL7+) 32 bit IBM DB2/400 5.4
IBM DB2/400 6.1
IBM DB2/400 7.1
1. For Oracle Linux 4 (UL7+) on Oracle VM, minimum update level required is Oracle Linux 4 (UL7+) on Oracle VM 2.1.2+.
2. DB2/400 is for delivery only
OGG Core 11.2.1.0.4+ x86 Oracle Linux 5 (UL3+) 32 bit IBM DB2/400 5.4
IBM DB2/400 6.1
IBM DB2/400 7.1
1. For Oracle Linux 5 (UL3+) on Oracle VM, minimum update level required is Oracle Linux 5 (UL3+) on Oracle VM 2.1.2+.
2. DB2/400 is for delivery only
OGG Core 11.2.1.0.4+ x86 Red Hat EL 4 (UL7+) 32 bit IBM DB2/400 5.4
IBM DB2/400 6.1
IBM DB2/400 7.1
1. Running Red Hat EL 4 (UL7+) on Oracle VM is not supported.
2. DB2/400 is for delivery only
OGG Core 11.2.1.0.4+ x86 Red Hat EL 5 (UL3+) 32 bit IBM DB2/400 5.4
IBM DB2/400 6.1
IBM DB2/400 7.1
1. For Red Hat EL 5 (UL3+) on Oracle VM, minimum update level required is Red Hat EL 5 (UL3+) on Oracle VM 2.1.2+
2. DB2/400 is for delivery only
OGG Core 11.2.1.0.4+ x86 Windows 2003 32 bit IBM DB2/400 6.1
IBM DB2/400 7.1
n/a
OGG Core 11.2.1.0.4+ x86 Windows Server 2008 with SP1+ 32 bit IBM DB2/400 6.1
IBM DB2/400 7.1
n/a
OGG Core 11.2.1.0.2+ HP-Itanium Red Hat EL 5 (UL3+) 64 Oracle 10.2.0.4+ n/a
OGG Core 11.2.1.0.2+ IBM AS400 AS400 6.1 64 bit DB2 (i-Series/IBM DB2/400) 6.1 n/a
OGG Core 11.2.1.0.2+ IBM AS400 AS400 7.1 64 bit DB2 (i-Series/IBM DB2/400) 7.1 n/a
OGG Core 11.2.1.0.2+ POWER AIX 5.3 (TL8+) 64 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Sybase 15.0
Sybase 15.5
Teradata v13
Teradata v13.10
Teradata v14
n/a
OGG Core 11.2.1.0.2+ POWER AIX 6.1 (TL2+) 64 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Sybase 15.0
Sybase 15.5
Teradata v13
Teradata v13.10
Teradata v14
n/a
OGG Core 11.2.1.0.2+ POWER AIX 7.1 (TL2+) 64 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Sybase 15.0
Sybase 15.5
Teradata v13
Teradata v13.10
Teradata v14
n/a
OGG Core 11.2.1.0.2+ SPARC Solaris 10 Update 4+ 64 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
n/a
OGG Core 11.2.1.0.2+ SPARC Solaris 11 (All Update Levels Included) 64 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
n/a
OGG Core 11.2.1.0.2+ SPARC Solaris 2.9 Update 9+ 64 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
n/a
OGG Core 11.2.1.0.2+ x64 Oracle Linux 4 (UL7+) 64 PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
IBM DB2/400 6.1
IBM DB2/400 7.1
Teradata v13
Teradata v13.10
Teradata v14
1. For Oracle Linux 4 (UL7+) on Oracle VM, minimum update level required is Oracle Linux 4 (UL7+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.2+ x64 Oracle Linux 5 (UL3+) 64 PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
IBM DB2/400 6.1
IBM DB2/400 7.1
Teradata v13
Teradata v13.10
Teradata v14
1. For Oracle Linux 5 (UL3+) on Oracle VM, minimum update level required is Oracle Linux 5 (UL3+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.2+ x64 Oracle Linux 6 (UL1+) 64 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
IBM DB2/400 6.1
IBM DB2/400 7.1
Teradata v13
Teradata v13.10
Teradata v14
1. Support is with UEK: Unbreakable Enterprise Kernel and Red Hat Compatible Kernel.
OGG Core 11.2.1.0.2+ x64 Red Hat EL 4 (UL7+) 64 PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
IBM DB2/400 6.1
IBM DB2/400 7.1
Teradata v13
Teradata v13.10
Teradata v14
1. Running Red Hat EL 4 (UL7+) on Oracle VM is not supported.
OGG Core 11.2.1.0.2+ x64 Red Hat EL 5 (UL3+) 64 PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
IBM DB2/400 6.1
IBM DB2/400 7.1
Teradata v13
Teradata v13.10
Teradata v14
1. For Red Hat EL 5 (UL3+) on Oracle VM, minimum update level required is Red Hat EL 5 (UL3+) on Oracle VM 2.1.2+
OGG Core 11.2.1.0.2+ x64 Red Hat EL 6 (UL1+) 64 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
IBM DB2/400 6.1
IBM DB2/400 7.1
Teradata v13
Teradata v13.10
Teradata v14
n/a
OGG Core 11.2.1.0.2+ x64 Windows 2003 with SP2+/R2+ 64 bit Teradata v13
Teradata v13.10
Teradata v14
PostgreSQL 9.0
n/a
OGG Core 11.2.1.0.2+ x64 Windows Server 2008 R2 64 bit IBM DB2/400 6.1
IBM DB2/400 7.1                         PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
Microsoft SQL Server 2012
SQL Server 2012 is supported for Delivery Only
OGG Core 11.2.1.0.2+ x64 Windows Server 2008 with SP1+ 64 bit IBM DB2/400 6.1
IBM DB2/400 7.1                         PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
Microsoft SQL Server 2012
SQL Server 2012 is supported for Delivery Only
OGG Core 11.2.1.0.2+ x86 Oracle Linux 4 (UL7+) 32 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
1. For Oracle Linux 4 (UL7+) on Oracle VM, minimum update level required is Oracle Linux 4 (UL7+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.2+ x86 Oracle Linux 5 (UL3+) 32 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
1. For Oracle Linux 5 (UL3+) on Oracle VM, minimum update level required is Oracle Linux 5 (UL3+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.2+ x86 Red Hat EL 4 (UL7+) 32 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
1. Running Red Hat EL 4 (UL7+) on Oracle VM is not supported.
OGG Core 11.2.1.0.2+ x86 Red Hat EL 5 (UL3+) 32 bit PostgreSQL 8.3
PostgreSQL 8.4
PostgreSQL 9.0
PostgreSQL 9.1
Teradata v13
Teradata v13.10
Teradata v14
1. For Red Hat EL 5 (UL3+) on Oracle VM, minimum update level required is Red Hat EL 5 (UL3+) on Oracle VM 2.1.2+
OGG Core 11.2.1.0.2+ x86 Windows 2003 32 bit Teradata v13
Teradata v13.10
Teradata v14
n/a
OGG Core 11.2.1.0.2+ x86 Windows Server 2008 with SP1+ 32 bit Teradata v13
Teradata v13.10
Teradata v14
Microsoft SQL Server 2012
SQL Server 2012 is supported for Delivery Only
OGG Core 11.2.1.0.2+ zLinux on zSeries Red Hat EL 5 (UL3+) 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
n/a
OGG Core 11.2.1.0.1+ HP NonStop Itanium (OSS) OSS – H06 and J06 64 bit SQL/MX   2.3 and 3.1 n/a
OGG Core 11.2.1.0.1+ IBM z/OS zOS 1.08 32 bit IBM DB2 8.1
IBM DB2 9.1
IBM DB2 10.1
n/a
OGG Core 11.2.1.0.1+ IBM z/OS zOS 1.09 32 bit IBM DB2 8.1
IBM DB2 9.1
IBM DB2 10.1
n/a
OGG Core 11.2.1.0.1+ IBM z/OS zOS 1.10 32 bit IBM DB2 8.1
IBM DB2 9.1
IBM DB2 10.1
n/a
OGG Core 11.2.1.0.1+ IBM z/OS zOS 1.11 32 bit IBM DB2 8.1
IBM DB2 9.1
IBM DB2 10.1
n/a
OGG Core 11.2.1.0.1+ IBM z/OS zOS 1.12 32 bit IBM DB2 8.1
IBM DB2 9.1
IBM DB2 10.1
n/a
OGG Core 11.2.1.0.1+ Itanium-2 HP-UX 11i (11.23)
B.11.23.0703.059a Base Quality Pack Bundle for HP-UX 11i v2, March 2007+
64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
n/a
OGG Core 11.2.1.0.1+ Itanium-2 HP-UX 11i (11.31)
B.11.31.0803.318a Base Quality Pack Bundle for HP-UX 11i v3, March 2008+
64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 15.0
Sybase 15.5
n/a
OGG Core 11.2.1.0.1+ PA-RISC HP-UX 11i (11.23)
B.11.23.0703.059a Base Quality Pack Bundle for HP-UX 11i v2, March 2007+
64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
n/a
OGG Core 11.2.1.0.1+ PA-RISC HP-UX 11i (11.31)
B.11.31.0803.318a Base Quality Pack Bundle for HP-UX 11i v3, March 2008+
64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
Sybase 15.0
Sybase 15.5
n/a
OGG Core 11.2.1.0.1+ POWER AIX 5.3 (TL8+) 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.7+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
n/a
OGG Core 11.2.1.0.1+ POWER AIX 6.1 (TL2+) 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.7+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
n/a
OGG Core 11.2.1.0.1+ POWER AIX 7.1 (TL2+) 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.7+
Oracle 11.2.0.1+
n/a
OGG Core 11.2.1.0.1+ SPARC Solaris 10 Update 4+ 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 15.0
Sybase 15.5
MySQL 5.1
n/a
OGG Core 11.2.1.0.1+ SPARC Solaris 11 (All Update Levels Included) 64 bit Oracle 11.2.0.1+ n/a
OGG Core 11.2.1.0.1+ SPARC Solaris 2.9 Update 9+ 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 15.0
Sybase 15.5
n/a
OGG Core 11.2.1.0.1+ x64 Oracle Linux 4 (UL7+) 64 Oracle 10.2.0.4+
Oracle 11.1.0.6+
IBM DB2 9.1
IBM DB2REMOTE 9.5
Sybase 15.0
Sybase 15.5
1. For Oracle Linux 4 (UL7+) on Oracle VM, minimum update level required is Oracle Linux 4 (UL7+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.1+ x64 Oracle Linux 5 (UL3+) 64 Oracle 10.2.0.4+
Oracle 11.1.0.6+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
Sybase 15.0
Sybase 15.5
MySQL 5.1
MySQL 5.5
1. For Oracle Linux 5 (UL3+) on Oracle VM, minimum update level required is Oracle Linux 5 (UL3+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.1+ x64 Oracle Linux 6 (UL1+) 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
1. Support is with UEK: Unbreakable Enterprise Kernel and Red Hat Compatible Kernel.
OGG Core 11.2.1.0.1+ x64 Red Hat EL 4 (UL7+) 64 Oracle 10.2.0.4+
Oracle 11.1.0.6+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2REMOTE 9.5
Sybase 15.0
Sybase 15.5
1. Running Red Hat EL 4 (UL7+) on Oracle VM is not supported.
OGG Core 11.2.1.0.1+ x64 Red Hat EL 5 (UL3+) 64 Oracle 10.2.0.4+
Oracle 11.1.0.6+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
Sybase 15.0
Sybase 15.5
MySQL 5.5
1. For Red Hat EL 5 (UL3+) on Oracle VM, minimum update level required is Red Hat EL 5 (UL3+) on Oracle VM 2.1.2+
OGG Core 11.2.1.0.1+ x64 Red Hat EL 6 (UL1+) 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
n/a
OGG Core 11.2.1.0.1+ x64 Solaris 10 Update 6+ 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 15.0
Sybase 15.5
n/a
OGG Core 11.2.1.0.1+ x64 Solaris 11 (All Update Levels Included) 64 bit Oracle 11.2.0.1+ n/a
OGG Core 11.2.1.0.1+ x64 Windows 2003 with SP2+/R2+ 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
Microsoft SQL Server 2008
Microsoft SQL Server 2008 R2
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
Sybase 15.0
Sybase 15.5
n/a
OGG Core 11.2.1.0.1+ x64 Windows Server 2008 R2 64 bit Oracle 10.2.0.4+
Oracle 11.2.0.1+
Microsoft SQL Server 2008
Microsoft SQL Server 2008 R2
MySQL 5.1
MySQL 5.5
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
Sybase 15.0
Sybase 15.5
n/a
OGG Core 11.2.1.0.1+ x64 Windows Server 2008 with SP1+ 64 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
Microsoft SQL Server 2008
Microsoft SQL Server 2008 R2
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
Sybase 15.0
Sybase 15.5
n/a
OGG Core 11.2.1.0.1+ x86 Oracle Linux 4 (UL7+) 32 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
MySQL 5.1
Sybase 15.0
Sybase 15.5
1. For Oracle Linux 4 (UL7+) on Oracle VM, minimum update level required is Oracle Linux 4 (UL7+) on Oracle VM 2.1.2+.
2. MySQL 5.0 supports Delivery only.
OGG Core 11.2.1.0.1+ x86 Oracle Linux 5 (UL3+) 32 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
MySQL 5.1
MySQL 5.5
Sybase 15.0
Sybase 15.5
1. For Oracle Linux 5 (UL3+) on Oracle VM, minimum update level required is Oracle Linux 5 (UL3+) on Oracle VM 2.1.2+.
2. MySQL 5.0 supports Delivery only.
OGG Core 11.2.1.0.1+ x86 Red Hat EL 4 (UL7+) 32 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
MySQL 5.1
MySQL 5.5
Sybase 15.0
Sybase 15.5
1. Running Red Hat EL 4 (UL7+) on Oracle VM is not supported.
2. MySQL 5.0 supports Delivery only.
OGG Core 11.2.1.0.1+ x86 Red Hat EL 5 (UL3+) 32 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
MySQL 5.1
MySQL 5.5
Sybase 15.0
Sybase 15.5
1. For Red Hat EL 5 (UL3+) on Oracle VM, minimum update level required is Red Hat EL 5 (UL3+) on Oracle VM 2.1.2+.
2. MySQL 5.0 supports Delivery only.
OGG Core 11.2.1.0.1+ x86 Windows 2003 32 bit Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
Microsoft SQL Server 2008
Microsoft SQL Server 2008 R2
MySQL 5.1
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
Sybase 15.0
Sybase 15.5
n/a
OGG Core 11.2.1.0.1+ x86 Windows Server 2008 with SP1+ 32 bit IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
IBM DB2REMOTE 9.5
Oracle 10.2.0.4+
Oracle 11.1.0.6+
Oracle 11.2.0.1+
Microsoft SQL Server 2008
Microsoft SQL Server 2008 R2
n/a
OGG Core 11.2.1.0.0+ x64 Oracle Linux 4 (UL7+) 64 Oracle 11.2.0.1+ 1. For Oracle Linux 4 (UL7+) on Oracle VM, minimum update level required is Oracle Linux 4 (UL7+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.0+ x64 Oracle Linux 5 (UL3+) 64 Oracle 11.2.0.1+ 1. For Oracle Linux 5 (UL3+) on Oracle VM, minimum update level required is Oracle Linux 5 (UL3+) on Oracle VM 2.1.2+.
OGG Core 11.2.1.0.0+ x64 Red Hat EL 4 (UL7+) 64 Oracle 11.2.0.1+ 1. Running Red Hat EL 4 (UL7+) on Oracle VM is not supported.
OGG Core 11.2.1.0.0+ x64 Red Hat EL 5 (UL3+) 64 Oracle 11.2.0.1+ 1. For Red Hat EL 5 (UL3+) on Oracle VM, minimum update level required is Red Hat EL 5 (UL3+) on Oracle VM 2.1.2+

ARCHIVEDLOGONLY TRANLOGOPTIONS

TRANLOGOPTIONS ARCHIVEDLOGONLY

Causes Extract to read from the archived logs only, without querying or validating the logs from system views such as v$log and v$archived_log. If this parameter is specified or the database is a standby database, you will be required to position the starting position of Extract to the physical address in the log, instead of using a timestamp.

 

TRANLOGOPTIONS ARCHIVEDLOGONLY
TRANLOGOPTIONS ALTARCHIVELOGDEST /oracle/g01/bkup01/archive/

 

Object ID Database – Object Database

The basic steps are the following:

  1. Initial Database setup
    1. Add GGS user to source DB
    2. Add/Check database level for supplemental logging.
    3. Add supplemental logging to tables needed in extract
  2. Make backup of primary DB – core tablespaces only
    1. This can be using RMAN, BCV splits, O.S. copy, Hot backup etc.
    2. System tablespace
    3. Rollback tablespace
    4. Temp tablespace
  3. Create standby controlfile
  4. Copy any archive log files to target system
  5. Copy Datafiles to like system
    1. Should be same structure of you will need to add parameters to map directory names
    2. Copy standby control file
  6. Startup standby DB no mount status

a. Offline drop any non-system, rollback datafiles 7. Startup mount DB

a. Recover database (standby recovery)

  1. Once recovery is until current time or last available archive file
    1. Open database read only
    2. If database needs more recovery before DB will open you need to check if ADVReplication is on for the source BD – Set in standby parameter file –

      replication_dependency_tracking = FALSE

    3. If ADV Rep is on you will need to disable it.
  2. Once DB is open you can start GGS.

10.

If the archived logs reside in a location other than the Oracle default, specify the
location with the ALTARCHIVELOGDEST option of the TRANLOGOPTIONS parameter in the Extract parameter file. This parameter is supported for RAC installations in release 10 and higher.

OGG导致归档无法RMAN删除一例

用户的SIEBEL RAC系统中配置了OGG 11.1.1.1.2 ,在最近发现备份脚本未正常将归档日志备份后删除掉,示例日志如下:

 

iece handle=al_18090002_1_848331814 tag=TAG20140523T154330 comment=API Version 2.0,MMS Version 5.0.0.0
channel ch00: backup set complete, elapsed time: 00:01:35
channel ch00: deleting archived log(s)
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/ora/archivelog/2014_05_21/o1_mf_2_171530_1cccD0E1h_.arc thread=2 sequence=171530
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/ora/archivelog/2014_05_21/o1_mf_2_171531_1cccD0VDr_.arc thread=2 sequence=171531
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/ora/archivelog/2014_05_21/o1_mf_1_84695_1cccD0K8I_.arc thread=1 sequence=84695
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/ora/archivelog/2014_05_21/o1_mf_2_171532_1cccD0C2h_.arc thread=2 sequence=171532
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/ora/archivelog/2014_05_21/o1_mf_2_171533_1cccD0Y2l_.arc thread=2 sequence=171533
channel ch00: starting archived log backup set
channel ch00: specifying archived log(s) in backup set
input archived log thread=1 sequence=84696 RECID=261042 STAMP=848117115
input archived log thread=2 sequence=171534 RECID=261053 STAMP=848117139
input archived log thread=2 sequence=171535 RECID=261051 STAMP=848117138
input archived log thread=2 sequence=171536 RECID=261054 STAMP=848117139
input archived log thread=1 sequence=84697 RECID=261048 STAMP=848117125
channel ch00: starting piece 1 at 23-MAY-14
channel ch00: finished piece 1 at 23-MAY-14
piece handle=al_18090003_1_848331909 tag=TAG20140523T154330 comment=API Version 2.0,MMS Version 5.0.0.0
channel ch00: backup set complete, elapsed time: 00:01:35
channel ch00: deleting archived log(s)
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process

 

 

针对该问题用户提交了SR,并禁用了TRANLOGOPTIONS LOGRETENTION DISABLED特性:

 

 

USERID ggs, password ************************************************ , ENCRYPTKEY default
exttrail ./dirdat/or
--HANDLECOLLISIONS
--FETCHOPTIONS FETCHPKUPDATECOLS
--FETCHOPTIONS, MISSINGROW IGNORE, NOFETCH
THREADOPTIONS OUTQUEUESIZE 512 INQUEUESIZE 1024
--TRANLOGOPTIONS _NOREADAHEAD ANY
TRANLOGOPTIONS LOGRETENTION DISABLED
--EOFDELAY 30
--BR BROFF
GETUPDATEBEFORES

但仍无法有效删除对应归档日志,相关的Note:

1. Disable logretention.

2. Make sure the capture process is removed from dba_capture.

3. Please follow the solution as per below document to cleanup the Orphan entries from metadata tables.

Ora-1 ''Unique Constraint (System.Logmnr_session_uk1) Violated'' During Streams Config (Doc ID 413774.1)

4. Please enable logretention which recreates the capture process again.
Make sure it has only one session for logminer.
Registered Extract - Archivelog Delete Problem (Doc ID 1487374.1)

 

 

 

这个case通过delete force 强制删除命令绕过了,例如:

 delete force archivelog sequence 171532 thread 2 ;

 

 

对于备份后delete input 的 删除也可以使用:

backup archivelog until time 'sysdate-1' delete input force;

【Goldengate性能优化】优化Extract抽取进程性能,解决OGG抽取日志延迟

一般来说OGG Goldengate 抽取进程对CPU的压力非常小, 而对于I/O 、network的吞吐量有轻量级的要求。

用低配置AIX测试结果如下。

抽取进程支持DB Log生成峰值速度 = 4 * 2.1 = 8.4 MB/秒,或30GB/小时,或726 GB/天。
抽取进程平均CPU占用1.9% 。

投递进程支持DB Log生成平均速度 = 2,096,854 * 2.1 = 4.5 MB/秒,或16 GB/小时,或380 GB/天。
投递进程平均CPU占用7% 。

 

 

对于Extract抽取日志缓慢导致延迟的问题,优先采用如下方法诊断具体慢在 抽取 还是 写trail上:

 

1. 收集原始慢的Extract的性能信息

GGSCI> stats extract <extract_name>, totalsonly *, reportrate sec
GGSCI> stats extract <extract_name>, totalsonly *, reportrate min

 

2. 创建一个新的extract 参数文件

cp <extract_name>.prm ETEST.prm

3. 修改上述 etest params file中的extract名字 和 trail 位置

 

4. 加入TESTMAPPINGSPEED 参数到 etest的params files

TESTMAPPINGSPEED参数的作用是 不让extract 去写trail 文件 而仅仅抽取日志, 若加入该参数后抽取速度大幅提升则说明性能瓶颈在 write trail上

TESTMAPPINGSPEED
REPORTCOUNT EVERY 5000 RECORDS

 

5. 增加etest这个extract

GGSCI> add extract etest, tranlog, begin now

GGSCI> add exttrail ./dirdat/ma , extract etest , megabytes 200

 

6. 为etest指定 原始extract 存在抽取速度问题的archivelog 的sequence

GGSCI> alter extract etest, extseqno <arch_seq_no>, extrba 0

 

7. 启动etest 这个extract

GGSCI> start extract etest

 

等待5分钟并检查

GGSCI> stats extract etest, totalsonly *, reportrate sec
GGSCI> stats extract etest, totalsonly *, reportrate min

 

对比 原始慢的extract 与 新加入的etest的 stats reportrate 报告中的性能指标,若 TESTMAPPINGSPEED 后 性能明显提升则说明问题出在 写trail  (extract 写到本地的情况) 或者 网络传出慢( 直接写到目标机上)。

 

如果TESTMAPPINGSPEED 后性能也无明显变化则继续。

 

8. 将所有extract 的表都注释掉,而仅仅extract 一张很少变化记录的表, 若这样 后性能明显提升则说明 瓶颈不在读archivelog 上而在 日志记录的处理上 log record processing 。

一般来说redo日志的解析分成2部分:

A. Record parsing in Extract
B. Record fetching if needed

 

9.为了进一步确认问题 将TESTMAPPINGSPEED 注释掉, 并 加入 TRACE/TRACE2 参数 以便确认 Extract是否慢在fetch上

 

–TESTMAPPINGSPEED http://www.askmaclean.com
TRACE ./dirtmp/ext.trc
TRACE2 ./dirtmp/ext.trc2

 

10 检查生成的trace 文件 若 其中显示 大量的时间耗费在一些SELECT语句上,则需要DBA介入来调优这些SELECT SQL

 

11. 若看到一些与undo/rollback 相关的错误例如ORA-1555则确保UNDO 表空间可用 空间足够,  也可以加入  FETCHOPTIONS NOUSESNAPSHOT 让 Extract fetch column 数据是尽可能不要走UNDO CR READ

 

12. 如果将大部分表都去掉,只剩下一个不太用的表且仍无明显的性能增长, 且CPU 也不忙, 一般来说这可能是IO瓶颈造成的

 

13. 建议dd测一下archivelog 的读取速度

例如maclean>time dd if=<归档日志> of=/dev/null bs=1M

对比其他磁盘若有明显差异, 则考虑将archivelog 移动到对应磁盘并再次上述测试。

 

 

对于cache较小的sequence 可以引起在replicat DDL 时频繁执行 ALTER SEQUENCE “SEQ_NAME” CYCLE的DDL语句:

 

2013-04-22 09:54:06  INFO    OGG-01487  DDL found, operation [ALTER SEQUENCE "TXN_SEQ" CYCLE  (size 31)], start SCN [20181621217], commit SCN [20181621231] instance [C
ULPRODB (1)], DDL seqno [2734821], marker seqno [2736076].

2013-04-22 09:54:06  INFO    OGG-00487  DDL operation included [Include Mapped], optype [ALTER], objtype [SEQUENCE], objowner [OLSUSER], objname [TXN_SEQ].

2013-04-22 09:54:06  INFO    OGG-00497  Writing DDL operation to extract trail file.
Wildcard SEQUENCE resolved (entry olsuser.*):
  Sequence "OLSUSER"."TXN_SEQ";
Resolving source sequence OLSUSER.TXN_SEQ.

2013-04-22 09:54:07  INFO    OGG-01487  DDL found, operation [ALTER SEQUENCE "TXN_SEQ" CYCLE  (size 31)], start SCN [20181621236], commit SCN [20181621248] instance [C
ULPRODB (1)], DDL seqno [2734822], marker seqno [2736077].

2013-04-22 09:54:07  INFO    OGG-00487  DDL operation included [Include Mapped], optype [ALTER], objtype [SEQUENCE], objowner [OLSUSER], objname [TXN_SEQ].

2013-04-22 09:54:07  INFO    OGG-00497  Writing DDL operation to extract trail file.
Wildcard SEQUENCE resolved (entry olsuser.*):
  Sequence "OLSUSER"."TXN_SEQ";
Resolving source sequence OLSUSER.TXN_SEQ.

2013-04-22 09:54:08  INFO    OGG-01487  DDL found, operation [ALTER SEQUENCE "TXN_SEQ" CYCLE  (size 31)], start SCN [20181621251], commit SCN [20181621261] instance [C
ULPRODB (1)], DDL seqno [2734823], marker seqno [2736078].

2013-04-22 09:54:08  INFO    OGG-00487  DDL operation included [Include Mapped], optype [ALTER], objtype [SEQUENCE], objowner [OLSUSER], objname [TXN_SEQ].

2013-04-22 09:54:08  INFO    OGG-00497  Writing DDL operation to extract trail file.
Wildcard SEQUENCE resolved (entry olsuser.*):
  Sequence "OLSUSER"."TXN_SEQ";
Resolving source sequence OLSUSER.TXN_SEQ.

 

若该replicat target库上尚有extract则 extract挖掘日志时可能因为处理频繁的DDL操作而变得很慢,”Why GoldenGate replicat issues “alter sequence .. cycle|nocycle” in sequence replication? [ID 1535322.1]” 文档指出了 这种频繁的 是为了在target 上上可信赖的同步sequence的高水位。

但是这种超频繁的 几乎每2s 一次的ALTER SEQUENCE CYCLE操作确实拖慢了Extract的速度, 可以通过指定参数 DBOPTIONS _NOAUTOMATICSEQUENCEFLUSH来减少ALTER SEQUENCE CYCLE出现,实际并不能完全避免。 文档指出使用该 DBOPTIONS _NOAUTOMATICSEQUENCEFLUSH参数可能导致TARGET上的SEQUENCE 不同步。

实际优先考虑增加SOURCE上SEQUENCE的CACHE解决问题, 之后再考虑用 DBOPTIONS _NOAUTOMATICSEQUENCEFLUSH; 针对该SEQUENCE  在EXTRACT里 排除该索引 没有效果, 例如 DDL EXCLUDE OBJNAME “XX.SEQNAME”  或者 TABLEEXCLUDE “XX.SEQUENCE”在实际测试中均没有明显的改善, 但修改DBOPTIONS _NOAUTOMATICSEQUENCEFLUSH确实可以该少性能。

了解GoldenGate中LAG的含义

GGSCI中显示的LAG代表 事务被写入到磁盘介质中的时刻例如Oracle中redo被写入到online redo logfile中 和 Replicat将同一个事务分发到目标数据库的时刻 之间的时间间隔。

 

通俗地说,一个事务内的所有行记录将对应同一个LAG; 除非出现了一个事务被打散且被多个REPLICAT分别apply或者变成多个事务的情况。 OGG参数例如RANGE这种对应于第一种情况,即一个事务被多个REPLICATE分别APPLY。 OGG参数MAXTRANSOPS对应后一种情况。

 

LAG在以下情况中被引入:

 

  1. 当Extract进程在读取redolog并写出到TRAIL或REMOTE HOST
  2. 当额外的datapump在读取extract trail并通过网络写出到远程节点REMOTE HOST
  3. 当collector在目标服务器上接受网络数据并写出到LOCAL TRAIL
  4. 当REPLICAT读取LOCAL TRAIL并写出到数据库中

 

 

同时也需要注意通过GGSCI中INFO或STATUS等命令显示的LAG,或通过SEND 对象名,LAG命令获得的LAG可能不一致:

 

INFO命令所获得的LAG可能与SEND命令所得值存在小的差别

INFO命令获得的LAG返回自MANAGER来源于最近记录的checkpoint

SEND <OBJECT>, lag获得的LAG值基于<OBJECT>正在处理的行记录的时间戳

LAG常使用时间单位或需要处理的数据单位Kilobytes来表达

 

归根结底LAG是衡量 数据归档或写出到日志的时间 和 EXTRACT/PUMP/REPLICAT处理该数据的时刻 这2个时间点之间的差距, 而不是说 LAG反映了EXTRACT还要工作多久。

 

实际EXTRACT/PUMP/REPLICAT都不知道自己要工作多久才能追上 REAL TIME,它们的LAG值只是显示 最近它们处理的一条记录的时间 和这条记录被写到REDO LOG的时间点之间的差距,即LAG只说明ER之前的工作延迟,不代表还要工作多久才能追平。

 

举个例子来说,STOP EXTRACT之后等待一段时间再重启看到有很大的LAG,这不代表EXTRACT有什么问题,只是EXTRACT最后处理的一条记录 很早就在REDO LOG里生成了 而EXTRACT真正处理这条记录是等了一段时间的而已。

 

 

 

 

 

 

 

GGSCI (XIANGBLI-CN) 27> stop load2

 

Sending STOP request to EXTRACT LOAD2 …

Request processed.

 

 

GGSCI (XIANGBLI-CN) 28> start load2

 

Sending START request to MANAGER …

EXTRACT LOAD2 starting

 

GGSCI (XIANGBLI-CN) 31> info load2

 

EXTRACT    LOAD2     Last Started 2012-09-18 20:26   Status RUNNING

Checkpoint Lag       00:04:34 (updated 00:00:08 ago)

Log Read Checkpoint  Oracle Redo Logs

2012-09-18 20:21:32  Seqno 44, RBA 13750272

SCN 0.1845479 (1845479)

 

 

GGSCI (XIANGBLI-CN) 35> lag load2

 

Sending GETLAG request to EXTRACT LOAD2 …

Last record lag: 130 seconds.

At EOF, no more records to process.

 

GGSCI (XIANGBLI-CN) 36> info load2

 

EXTRACT    LOAD2     Last Started 2012-09-18 20:26   Status RUNNING

Checkpoint Lag       00:00:00 (updated 00:00:02 ago)

Log Read Checkpoint  Oracle Redo Logs

2012-09-18 20:27:33  Seqno 44, RBA 13817856

SCN 0.1845671 (1845671)

 

 

以上可以看到 Last record lag 和 Checkpoint Lag 是不同的

 

 

EXTRACT/PUMP/REPLICAT 没法预知自己什么时候能追平(catch up), 为什么? 因为虽然看上去可能有几十个GB的redo要处理,但是实际符合EXTRACT/PUMP/REPLICAT 要的记录可能很少。

 

 

又由于INFO的LAG是基于checkpoint的,所以如果出现大事务的情况Long Running Transactions (LRTs),事务可能长时间不提交COMMIT。 该事务可能变成一个最老而又最无聊的数据由于一直不COMMIT而无法写出。 这将造成EXTRACT/PUMP/REPLICAT实际处理这个大事务的时间点远落后于该大事务实际commit的时间点。 对于REPLICAT可以使用MAXTRANSOPS 参数来减少LAG。

了解GoldenGate Replicat的HANDLECOLLISIONS参数

HANDLECOLLISIONS是我们使用goldengate过程中常有的一个REPLICAT参数,该参数依赖于主键或唯一索引处理冲突数据,常用于初始化阶段。对于无主键或唯一索引的表无法处理冲突,且可能导致重复记录。注意打开此参数则所有数据错误不管reperror如何配置均不再写discard文件,即所有数据冲突信息被默认规则处理,没有任何日志(则会忽略error mapping数据错误,而且不会报告到discard文件),因此日常复制不建议使用该参数;可予以考虑的特殊场景为只需新增数据,无需复制历史数据。

 

使用HANDLECOLLISIONS的几个场景:

  1. target丢失delete记录(missing delete),忽略该问题并不记录到discardfile
  2. target丢失update记录(missing update)
    • 更新的键值是主键=》 update转换成INSERT ,默认情况下插入记录不完整
    • 更新的键值是非主键=》 忽略该问题并不记录到discardfile
  3. 重复插入已存在的主键值到target表中,这将被replicat转换为UPDATE现有主键值的行的其他非主键列

情景1 target丢失delete记录(missing delete) :

C:\Users\ML>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Sep 18 13:38:03 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> conn sender/oracle
Connected.
SQL> create table handlec(t1 int primary key,t2 int);

Table created.

SQL> insert into handlec values(1,2);

1 row created.

SQL> insert into handlec values(3,2);

1 row created.

SQL> insert into handlec values(4,2);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from handlec;

        T1         T2
---------- ----------
         1          2
         3          2
         4          2

target :

SQL> conn receiver/oracle
Connected.
SQL> create table handlec(t1 int primary key,t2 int);

Table created.

SQL> insert into handlec values(1,2);

1 row created.

SQL> commit;

SQL> select * from handlec;

        T1         T2
---------- ----------
         1          2

SQL>

GGSCI (XIANGBLI-CN) 1> alter extract load2 , begin now
EXTRACT altered.

GGSCI (XIANGBLI-CN) 4> alter replicat rep2, begin now
REPLICAT altered.

GGSCI (XIANGBLI-CN) 13> add trandata sender.*

Logging of supplemental redo data enabled for table SENDER.HANDLEC.

Logging of supplemental redo log data is already enabled for table SENDER.TV.

GGSCI (XIANGBLI-CN) 14> start mgr
MGR is already running.

GGSCI (XIANGBLI-CN) 15> start er *

Sending START request to MANAGER ...
EXTRACT LOAD2 starting

Sending START request to MANAGER ...
REPLICAT REP2 starting

GGSCI (XIANGBLI-CN) 16> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT     RUNNING     LOAD2       00:00:00      00:00:01
REPLICAT    RUNNING     REP2        00:00:00      00:00:08

***SOURCE端删除一条TARGET没有的数据

SQL> delete handlec where t1=3;

1 row deleted.

SQL> commit;

Commit complete.

出现SQL error 1403错误,REPLICAT ABORT

2012-09-18 13:45:48  WARNING OGG-01004  Aborted grouped transaction on 'RECEIVER.HANDLEC', Database error 1403 (OCI Error ORA-01403: no data found, SQL ).

2012-09-18 13:45:48  WARNING OGG-01003  Repositioning to rba 1091 in seqno 3.

2012-09-18 13:45:48  WARNING OGG-01154  SQL error 1403 mapping SENDER.HANDLEC to RECEIVER.HANDLEC OCI Error ORA-01403: no data found, SQL .

2012-09-18 13:45:48  WARNING OGG-01003  Repositioning to rba 1091 in seqno 3.

Source Context :
  SourceModule            : [er.errors]
  SourceID                : [er/errors.cpp]
  SourceFunction          : [take_rep_err_action]
  SourceLine              : [623]
  ThreadBacktrace         : [8] elements
                          : [D:\ogg\V34342-01\gglog.dll(??1CContextItem@@UEAA@XZ+0x3272) [0x000000018010BDD2]]
                          : [D:\ogg\V34342-01\gglog.dll(?_MSG_ERR_MAP_TO_TANDEM_FAILED@@YAPEAVCMessage@@PEAVCSourceContext@@AEBV?$CQualDBObjName@$00@ggapp@gglib@ggs@@1W4MessageDisposition@CMessageFactory@@@Z+0x138) [0x00000001800AD508]]
                          : [D:\ogg\V34342-01\replicat.exe(ERCALLBACK+0x6e1e) [0x0000000140099D5E]]
                          : [D:\ogg\V34342-01\replicat.exe(shutdownMonitoring+0x4411) [0x00000001400C9BE1]]
                          : [D:\ogg\V34342-01\replicat.exe(shutdownMonitoring+0x289cd) [0x00000001400EE19D]]
                          : [D:\ogg\V34342-01\replicat.exe(CommonLexerNewSSD+0x9440) [0x00000001402AE980]]
                          : [C:\windows\system32\kernel32.dll(BaseThreadInitThunk+0xd) [0x000000007733652D]]
                          : [C:\windows\SYSTEM32\ntdll.dll(RtlUserThreadStart+0x21) [0x000000007746C521]]

2012-09-18 13:45:48  ERROR   OGG-01296  Error mapping from SENDER.HANDLEC to RECEIVER.HANDLEC.

***********************************************************************
*                   ** Run Time Statistics **                         *
***********************************************************************

Last record for the last committed transaction is the following: 
___________________________________________________________________
Trail name :  D:\ogg\V34342-01\ex\ze000003
Hdr-Ind    :     E  (x45)     Partition  :     .  (x04) 
UndoFlag   :     .  (x00)     BeforeAfter:     B  (x42) 
RecLength  :     9 (x0009)    IO Time    : 2012-09-18 13:45:38.000000  
IOType     :     3  (x03)     OrigNode   :   255  (xff)
TransInd   :     .  (x03)     FormatType :     R  (x52)
SyskeyLen  :     0  (x00)     Incomplete :     .  (x00)
AuditRBA   :         44       AuditPos   : 3337232
Continued  :     N  (x00)     RecCount   :     1  (x01)

2012-09-18 13:45:38.000000 Delete             Len     9 RBA 1091
Name: SENDER.HANDLEC
___________________________________________________________________

Reading D:\ogg\V34342-01\ex\ze000003, current RBA 1091, 0 records

Report at 2012-09-18 13:45:48 (activity since 2012-09-18 13:45:48)

From Table SENDER.HANDLEC to RECEIVER.HANDLEC:
       #                   inserts:         0
       #                   updates:         0
       #                   deletes:         0
       #                  discards:         1

Last log location read:
     FILE:      D:\ogg\V34342-01\ex\ze000003
     SEQNO:     3
     RBA:       1091
     TIMESTAMP: 2012-09-18 13:45:38.000000
     EOF:       NO
     READERR:   0

2012-09-18 13:45:48  ERROR   OGG-01668  PROCESS ABENDING.

2012-09-18 13:45:48  INFO    OGG-01237  Trace file D:\ogg\V34342-01\REP_TRACE1.TRC closed.

2012-09-18 13:45:48  INFO    OGG-01237  Trace file D:\ogg\V34342-01\REP_TRACE2.TRC closed.

CACHE OBJECT MANAGER statistics

CACHE MANAGER VM USAGE
vm current     =      0    vm anon queues =      0 
vm anon in use =      0    vm file        =      0 
vm used max    =      0    ==> CACHE BALANCED

CACHE CONFIGURATION
cache size       =   2G   cache force paging = 3.41G
buffer min       =  64K   buffer highwater   =   8M
pageout eligible size =   8M

================================================================================

使用skiptransaction跳过上述失败事务

GGSCI (XIANGBLI-CN) 18> start rep2 skiptransaction

Sending START request to MANAGER ...
REPLICAT REP2 starting

 

 

 

 

情景2 target丢失update记录(missing update),更新的键值是主键 :

 

 

继续我们的测试, 针对source的某条记录进行更新

SQL> update handlec set t1=5 where t1=4;

1 row updated.

SQL> commit;

Commit complete.

对于在target 丢失更新(miss update)的情况也会造成 Database error 1403+OGG-01296

2012-09-18 13:49:30  WARNING OGG-01004  Aborted grouped transaction on 'RECEIVER.HANDLEC', Database error 1403 (OCI Error ORA-01403: no data found, SQL <UPDATE "RECEIVER"."HANDLEC" SET "T1" = :a1 WHERE "T1" = :b0>).

2012-09-18 13:49:30  WARNING OGG-01003  Repositioning to rba 1218 in seqno 3.

2012-09-18 13:49:30  WARNING OGG-01003  Repositioning to rba 1218 in seqno 3.

Source Context :
  SourceModule            : [er.errors]
  SourceID                : [er/errors.cpp]
  SourceFunction          : [take_rep_err_action]
  SourceLine              : [623]
  ThreadBacktrace         : [8] elements
                          : [D:\ogg\V34342-01\gglog.dll(??1CContextItem@@UEAA@XZ+0x3272) [0x000000018010BDD2]]
                          : [D:\ogg\V34342-01\gglog.dll(?_MSG_ERR_MAP_TO_TANDEM_FAILED@@YAPEAVCMessage@@PEAVCSourceContext@@AEBV?$CQualDBObjName@$00@ggapp@gglib@ggs@@1W4MessageDisposition@CMessageFactory@@@Z+0x138) [0x00000001800AD508]]
                          : [D:\ogg\V34342-01\replicat.exe(ERCALLBACK+0x6e1e) [0x0000000140099D5E]]
                          : [D:\ogg\V34342-01\replicat.exe(shutdownMonitoring+0x4411) [0x00000001400C9BE1]]
                          : [D:\ogg\V34342-01\replicat.exe(shutdownMonitoring+0x289cd) [0x00000001400EE19D]]
                          : [D:\ogg\V34342-01\replicat.exe(CommonLexerNewSSD+0x9440) [0x00000001402AE980]]
                          : [C:\windows\system32\kernel32.dll(BaseThreadInitThunk+0xd) [0x000000007733652D]]
                          : [C:\windows\SYSTEM32\ntdll.dll(RtlUserThreadStart+0x21) [0x000000007746C521]]

2012-09-18 13:49:30  ERROR   OGG-01296  Error mapping from SENDER.HANDLEC to RECEIVER.HANDLEC.

加入HANDLECOLLISIONS后,rep可以继续工作且不生成discard记录

GGSCI (XIANGBLI-CN) 23> view params rep2
replicat rep2
userid receiver , password oracle
trace ./rep_trace1.trc
trace2 ./rep_trace2.trc
ASSUMETARGETDEFS
HANDLECOLLISIONS
map sender.*, target receiver.*;

GGSCI (XIANGBLI-CN) 18> start rep2

SQL> select * from handlec;

        T1         T2
---------- ----------
         1          2
         5

 

 

 

这里出现T1=5 T2 NULL记录的原因是 ,丢失update的更新操作是针对主键的更新,此时replicat会尝试插入一条记录而非忽略该update。
注意插入的记录可能不是完整的行,如上例中的T2 为NULL ,若要求完整的行记录则要求EXTRACT使用PKUPDATE选项。

需要加入的选项是FETCHOPTIONS FETCHPKUPDATECOLS

将以上选项加入到EXTRACT参数文件中,并重启EXTRACT。 这将引起extract捕获完整的主键更新镜像。

如以下的例子:

SQL> conn receiver/oracle
Connected.
SQL> select * from handlec;

T1 T2
---------- ----------
1 2
10 100
5
20 200

SQL> delete handlec where t1=5;

1 row deleted.

SQL> commit;

Commit complete.

SQL> select * from handlec;

T1 T2
---------- ----------
1 2
10 100
20 200

SQL> conn sender/oracle
Connected.

SQL> update handlec set t1=t1+1000 where t1=5;

1 row updated.

SQL> commit;

Commit complete.

SQL> conn receiver/oracle
Connected.
SQL>
SQL>
SQL> select * from handlec;

T1 T2
---------- ----------
1 2
10 100
20 200
1005 2

 

 

 

如上述实验验证FETCHOPTIONS FETCHPKUPDATECOLS将捕获完整的redo image镜像到trail中,这保证把primary key的更新通过HANDLECOLLISIONS转换为对target的一个完整记录的插入。

 

情景3 重复插入已存在的主键值到target表中,这将被replicat转换为UPDATE现有主键值的行的其他非主键列:

 

 

 

*** TARGET 

SQL> conn receiver/oracle
Connected.

SQL> select * from handlec;

        T1         T2
---------- ----------
         1          2
        10          9
		 5

target中已经存在 t1=10 t2=9的记录 ,此时再在source中插入(10,100)的记录

>>SOURCE

SQL> insert into handlec values(10,100);

1 row created.

SQL> commit;

>>TARGET

SQL> select * from handlec;

        T1         T2
---------- ----------
         1          2
        10        100
         5

上面可以看到在source的insert操作,因为在target中已有对应的主键记录所以被启用HANDLECOLLISIONS的REPLICAT转换为UPDATE非主键的其他COLUMNS

 

 

总结

 

HANDLECOLLISIONS是我们使用goldengate过程中常有的一个REPLICAT参数,该参数依赖于主键或唯一索引处理冲突数据,常用于初始化阶段。对于无主键或唯一索引的表无法处理冲突,且可能导致重复记录。注意打开此参数则所有数据错误不管reperror如何配置均不再写discard文件,即所有数据冲突信息被默认规则处理,没有任何日志,因此日常复制不建议使用该参数;可予以考虑的特殊场景为只需新增数据,无需复制历史数据。

 

使用HANDLECOLLISIONS的几个场景:

  1. target丢失delete记录(missing delete),忽略该问题并不记录到discardfile
  2. target丢失update记录(missing update)
    • 更新的键值是主键=》 update转换成INSERT ,默认情况下插入记录不完整
    • 更新的键值是非主键=》 忽略该问题并不记录到discardfile
  3. 重复插入已存在的主键值到target表中,这将被replicat转换为UPDATE现有主键值的行的其他非主键列

另:该参数仅处理数据本身的Insert/Delete冲突,如果出现两端映射或其它结构性问题Replicat进程依然会abend,不能被忽略

 

此外对于主键的更新操作,若在target使用HANDLECOLLISIONS且该update丢失,在会转换为INSERT该主键的操作,注意默认情况下插入的记录不完整,FETCHOPTIONS FETCHPKUPDATECOLS将捕获完整的redo image镜像到trail中,这保证把primary key的更新通过HANDLECOLLISIONS转换为对target的一个完整记录的插入。

 

 

我们可以通过send 命令动态取消HANDLECOLLISIONS

GGSCI (XIANGBLI-CN) 29> send rep2, NOHANDLECOLLISIONS

Sending NOHANDLECOLLISIONS request to REPLICAT REP2 ...
REP2 NOHANDLECOLLISIONS set for 1 tables and 0 wildcard entries

Oracle Goldengate OGG 11g与各操作系统及数据库版本的兼容列表

Oracle Goldengate OGG 11g (11.1.1.0.0)与各操作系统及数据库版本的兼容列表如下,仅供参考:

 

Oracle GoldenGate Certification Matrix 11.1.1.0.0
Version Supported Processor Type OS Version OS
32/64 bit
Oracle FM
32/64 bit
JDK Vendor
Version*
JDK
32/64 bit
Oracle
Database*
Exceptions and Additional Information
11gR1 (11.1.1.1+) x86 Red Hat EL 4 (UL7+) 32 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15
MySQL 5.0
MySQL 5.1
Teradata 12
Teradata 13
MySQL 5.0 supports Delivery only
11gR1 (11.1.1.1+) x86 Red Hat EL 5 (UL3+) 32 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15
MySQL 5.0
MySQL 5.1
Teradata 12
Teradata 13
MySQL 5.0 supports Delivery only
11.1.1.0.0 x86 SLES 10 (SP1+) 32 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15
MySQL 5.0
MySQL 5.1
Teradata 12
Teradata 13
MySQL 5.0 supports Delivery only
11.1.1.0.0 x86 Windows 2003 32 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Microsoft SQL Server 2000
Microsoft SQL Server 2005
Microsoft SQL Server 2008
MySQL 5.0
MySQL 5.1
Sybase 12.5.4
Sybase 15
TimesTen 7.05
Teradata 12
Teradata 13
MySQL 5.0 supports Delivery only
TimeTen supports Delivery only
11.1.1.0.0 x86 Windows XP Professional with SP3+ 32 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Microsoft SQL Server 2000
Microsoft SQL Server 2005
Microsoft SQL Server 2008
MySQL 5.0
MySQL 5.1
Sybase 12.5.4
Sybase 15
TimesTen 7.05
Teradata 12
Teradata 13
MySQL 5.0 supports Delivery only
TimeTen supports Delivery only
11.1.1.0.0 x64 Red Hat EL 4 (UL7+) 64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Microsoft SQL Server 2000
Microsoft SQL Server 2005
Microsoft SQL Server 2008
MySQL 5.0
MySQL 5.1
Sybase 12.5.4
Sybase 15
TimesTen 7.05
Teradata 12
Teradata 13

11.1.1.0.0 x64 Red Hat EL 5 (UL3+) 64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Microsoft SQL Server 2000
Microsoft SQL Server 2005
Microsoft SQL Server 2008
MySQL 5.0
MySQL 5.1
Sybase 12.5.4
Sybase 15
Teradata 12
Teradata 13

11.1.1.0.0 x64 SLES 10 (SP1+) 64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Microsoft SQL Server 2000
Microsoft SQL Server 2005
Microsoft SQL Server 2008
MySQL 5.0
MySQL 5.1
Sybase 12.5.4
Sybase 15
TimesTen 7.05
Teradata 12
Teradata 13
MySQL 5.0 supports Delivery only
TimeTen supports Delivery only
11.1.1.0.0 x64 Windows 2003 with SP2/R2+ 64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Microsoft SQL Server 2000
Microsoft SQL Server 2005
Microsoft SQL Server 2008
MySQL 5.0
MySQL 5.1
Sybase 12.5.4
Sybase 15
TimesTen 7.05
Teradata 12
Teradata 13
MySQL 5.0 supports Delivery only
TimeTen supports Delivery only
11.1.1.0.0 x64 Windows Server 2008 with SP1+ 64 NA NA NA Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
Sybase 12.5.4
Sybase 15
MySQL 5.0
MySQL 5.1
Teradata 12
Teradata 13
Microsoft SQL Server 2000
Microsoft SQL Server 2005
Microsoft SQL Server 2008

11.1.1.0.0 Itanium-2 Windows Server 2008 with SP1+ 64 NA NA NA Microsoft SQL Server 2000
Microsoft SQL Server 2005
Microsoft SQL Server 2008

11.1.1.0.0 SPARC Solaris 2.9 Update 9+ 64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15

11.1.1.0.0 SPARC Solaris 10 Update 4+ 64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15

11.1.1.0.0 PA-RISC HP-UX 11i (11.23)
B.11.23.0703.059a Base Quality Pack Bundle for HP-UX 11i v2, March 2007+
64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15

11.1.1.0.0 PA-RISC HP-UX 11i (11.31)
B.11.31.0803.318a Base Quality Pack Bundle for HP-UX 11i v3, March 2008+
64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15

11.1.1.0.0 Itanium-2 HP-UX 11i (11.23)
B.11.23.0703.059a Base Quality Pack Bundle for HP-UX 11i v2, March 2007+
64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7

11.1.1.0.0 POWER AIX 5.3 (TL8+) 64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15

11.1.1.0.0 POWER AIX 6.1 (TL2+) 64 NA NA NA Oracle 9.2.0.7+
Oracle 10.2.0.4+
Oracle 11.1.+
Oracle 11.2.+
IBM DB2 9.1
IBM DB2 9.5
IBM DB2 9.7
Sybase 12.5.4
Sybase 15

Goldengate Parameter SUPPRESSTRIGGERS & DEFERREFCONST

 

SUPPRESSTRIGGERS

Trigger的抑制和Cascading Deletes

在复制的时候,由于应用以及Trigger会出现影响DB的一致性的情况
“SUPPRESSTRIGGERS”选项用于抑制在数据复制时对目标段对象的Trigger启动
DBOPTIONS SUPPRESSTRIGGERS

缺省值为不抑制 (NOSUPPRESSTRIGGERS)
可使用的DB版本
Oracle 10.2.0.5 以上
Oracle 11.2.0.2 以上
Replicat的用户必须有Streams的管理权限
dbms_goldengate_auth.grant_admin_privilege

 

DEFERREFCONST 约束生效的延迟

    • 可以用DEFERREFCONST选项来代替手动设置约束无效
      • Database 9.2.0.7以上
    • 一直到Replicat的事务提交、DEFERREFCONST会延迟完整性约束的确认与生效
    • DBOPTIONS DEFERREFCONST

      不支持的版本则会忽略DEFERREFCONST参数。忽略的话,也不会写GoldenGate的log。

 

 

DBOPTIONS SUPPRESSTRIGGERS for delete cascade constraint on the target side (REPLICAT) in 11.1.0.7 is missing.

Ct was using OGG ver 10.4 initially for replicating from 9.2.0.8 on Sun Solaris to 11.1.0.7 on AIX.
Ct ran into issues as they had 232 tables with 250 DELETE CASCADE constraints while replicating delete records.
We gave the recommendation of disabling the constraint which obviously worked but the ct does not want
to disable the constraint and involves lot of manual work.
In working thru’ the issues with GG support, it was mentioned that OGG ver 11.1. would have a parameter
that was to be set in the REPLICAT which would fix this issue.
In reading thru’ the Release notes
http://download.oracle.com/docs/cd/E18101_01/doc.1111/e18165.pdf
(Page 6).

the parameter SUPPRESSTRIGGERS is not available for 11gR1, 11.1.0.7.

I was adivsed to open an SR with GG support to check if there will be an additional build
on top of 11.1.1 so that this parameter becomes available for 11gR1. Otherwise the ct will not be
very happy as initially, we were told the ct that the parameter will be available for 11.1.0.7, but it didnt make it as per the doc.
If we can build the same for 11.1.0.7 it will go a long way in maintaining this high profile ct.

check the OGG v11 guides and ensure that you are looking for SUPPRESSTRIGGERS or DEFERREFCONST.

SUPPRESSTRIGGERS
********************
Valid for Replicat for Oracle. Prevents triggers from firing on target objects that are configured for replication with Oracle GoldenGate. You can use this parameter for Oracle 10.2.0.5 and later patches, and for Oracle 11.2.0.2 and later, instead of manually
disabling the triggers.

DEFERREFCONST
****************
Valid for Replicat for Oracle. Delays referential integrity constraint checking and enforcement by the database until the Replicat transaction is committed. You can use this parameter instead of disabling the constraints on the target tables if the database is
Oracle version 9.2.0.7 and later.

When coming to SUPPRESSTRIGGERS, we have some packages added to 10.2.0.5 or 11.2.0.2 and above. Those packages are needed for this to work.

For 10.2.0.5, we need to use dbms_streams_auth.grant_admin_privilege and For 11.2.0.2, we use dbms_goldengate_auth.grant_admin_privilege.