1 System Requirements and Preinstallation Instructions

This chapter contains the requirements for the system and database resources that support Oracle GoldenGate.

This chapter includes the following sections:

1.1 Verifying Certification and System Requirements

Make sure that you are installing your product on a supported hardware or software configuration. For more information, see the certification document for your release on the Oracle Fusion Middleware Supported System Configurations page.

Oracle has tested and verified the performance of your product on all certified systems and environments; whenever new certifications occur, they are added to the proper certification document right away. New certifications can occur at any time, and for this reason the certification documents are kept outside of the documentation libraries and are available on Oracle Technology Network.

1.2 Operating System Requirements

This section describes the Informix Dynamic Server operating system requirements. These requirements fall into one of the following categories:

1.2.1 Memory Requirements

The amount of memory that is required for Oracle GoldenGate depends on the number of concurrent processes that will be running. At minimum on the source system, there is a primary Extract process that captures source data and a secondary Extract data-pump process that transfers data across the network. At minimum on the target system is at least one Replicat process that applies the replicated data to the target database. In some cases, these processes might all operate on the same system, depending on the required configuration.

It is possible that you will need to use additional, parallel processes to improve throughput if your environment generates a large volume of transactional data that must be replicated. Oracle GoldenGate supports up to 5,000 concurrent Extract and Replicat processes per instance of Oracle GoldenGate. Each Extract and Replicat process needs approximately 25-55 MB of memory, or more depending on the size of the transactions and the number of concurrent transactions.

The actual amount of physical memory that is used by any Oracle GoldenGate process is controlled by the operating system, not the Oracle GoldenGate program. The Oracle GoldenGate cache manager takes advantage of the memory management functions of the operating system to ensure that Oracle GoldenGate processes work in a sustained and efficient manner. For more information about evaluating Oracle GoldenGate memory requirements, see the CACHEMGR parameter in the Administering Oracle GoldenGate for Windows and UNIX

1.2.2 Disk Requirements

Assign free disk space according to the following instructions:

  • 50-150 MB, depending on the database and platform. This includes space for the compressed download file and space for the uncompressed files. You can delete the download file after the installation is complete.

  • 40 MB for the working directories and binaries for each instance of Oracle GoldenGate that you are installing on the system. For example, to install two builds of Oracle GoldenGate into two separate directories, allocate 80 MB of space.

  • An additional 1 GB of disk space on any system that hosts Oracle GoldenGate trails, which are files that contain the working data. You may need more or less than this amount, because the space that is consumed by the trails depends on the volume of data that will be processed. See the guidelines for sizing trails in Administering Oracle GoldenGate for Windows and UNIX.

1.2.3 Temporary Disk Requirements

By default, Oracle GoldenGate maintains data that it swaps to disk in the dirtmp sub-directory of the Oracle GoldenGate installation directory. The cache manager assumes that all of the free space on the file system is available. This directory can fill up quickly if there is a large transaction volume with large transaction sizes. To prevent I/O contention and possible disk-related Extract failures, dedicate a disk to this directory. You can assign a name and size to this directory with the CACHEDIRECTORY option of the CACHEMGR parameter. The CACHESIZE option of CACHEMGR sets a soft limit for the amount of virtual memory (cache size) that is available for caching transaction data. See Reference for Oracle GoldenGate for Windows and UNIX for the default values of these options and detailed explanations, in case system adjustments need to be made.

1.2.4 Network

Configure networking according to the following instructions:

  • Configure the system to use TCP/IP services, including DNS. Oracle GoldenGate supports IPv4 and IPv6 and can operate in a system that supports one or both of these protocols.

  • Configure the network with the host names or IP addresses of all systems that will be hosting Oracle GoldenGate processes and to which Oracle GoldenGate will be connecting. Host names are easier to use.

  • Oracle GoldenGate requires some unreserved and unrestricted TCP/IP ports, the number of which depends on the number and types of processes in your configuration. See the Administering Oracle GoldenGate for Windows and UNIX for details on how to configure the Manager process to handle the required ports.

  • Keep a record of the ports that you assigned to Oracle GoldenGate. You will specify them with parameters when configuring the Manager process.

  • Configure your firewalls to accept connections through the Oracle GoldenGate ports.

1.2.5 Operating System Privileges

Assign operating privileges according to the following instructions.

The Oracle GoldenGate Manager process requires the following operating system privileges:

  • Full control over the files and folders within the Oracle GoldenGate directories.

  • Full control over the trail files, if stored in a location other than the Oracle GoldenGate directory.

  • Membership in the local Administrators Group.

The programs that capture and replicate data (Extract and Replicat) run under the Manager account and inherit those Administrator rights.

The Manager process can run as a Windows service, or it can run interactively as the current user. You make this decision when installing Oracle GoldenGate. See Section 2.4, "Installing Oracle GoldenGate on Windows" for more information.

1.2.6 Other Programs

  • Oracle GoldenGate fully supports virtual machine environments created with any virtualization software on any platform. When installing Oracle GoldenGate into a virtual machine environment, select a build that matches the database and the operating system of the virtual machine, not the host system.

  • Make sure an Open Database Connectivity (ODBC) driver manager is installed on the system. On UNIX, you can use the unixODBC driver manager, which is free for download at

    http://www.unixodbc.org/

1.3 Informix Dynamic Server Requirements

To operate with Informix Dynamic Server (IDS) database, Oracle GoldenGate requires the following setup in the database instance.

Oracle recommends that you install the latest Informix Client SDK (CSDK) rather than using the CSDK that is delivered with the IDS.

http://www-01.ibm.com/software/data/informix/

1.3.1 Install the Informix Client SDK Fix Pack

You must install the Informix CSDK version 4.10 fix to any of the supported Informix versions you have installed prior to installing Oracle GoldenGate. This is because Oracle GoldenGate was developed with this fix and failure to install it results in unpredictable Extract and Replicat behavior and may abend. The Informix Server fixes are found at:

http://www-933.ibm.com/support/fixcentral/

In addition, it was determined that there are memory leak issues in the IDS that IBM has addressed. Oracle recommends that you upgrade your databases to the versions as appropriate for your environment:

Existing IDS Version Upgrade to Version
12.10 12.10.FC3W1
11.70 11.70.xC8
11.50 No upgraded needed.

1.3.2 Database Configuration

The database should be configured according to the following recommendations:

  • A root installation of Informix Dynamic Server must exist on a system that is a source or target for Oracle GoldenGate. You can install Oracle GoldenGate on any supported platform that is remote from the system hosting the Informix database.

  • The database libraries libthcli, libifdmr, libifgls.so, and libifglx.so runtime libraries must exist on the system where Oracle GoldenGate is installed (source, target, or remote system). The LD_LIBRARY_PATH or LIBPATH variable (depending on the platform) must be set to the installation path of these libraries. As an example, assuming $INFORMIXDIR is the path to the root Informix installation, the library path for the runtime environment must be set as follows:

    LD_LIBRARY_PATH=$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$ LD_LIBRARY_PATH
    
  • The Informix Dynamic Server database must be running when installing and running Oracle GoldenGate on any Informix system.

  • A SYSCDC database must be created before you install Oracle GoldenGate on a source or target Informix system. The script to create the SYSCDC database and related functions typically exists in the location $INFORMIXDIR/etc/syscdcv1.sql. Run the script as the informix user.

  • Oracle GoldenGate passes change data to the Extract process on an Informix source system. This is enabled for Informix database objects by means of the Oracle GoldenGate ADD TRANDATA command.

  • Enable transaction logging by any of the three modes supported by Informix: Unbuffered, buffered, or ANSI-Compliant. This must be done for both the source and target Informix databases. You can use the Informix tool ondblog that is included in the Informix Dynamic Server installation to change the logging.

  • Set an appropriate value for the IDS logical log size by using the onmode tool.

    onmode -wf logsize=value
    

    To determine the optimal log size, you can get performance data from the database engine by using the following command:

    onstat -g ckp
    
  • Support for the Informix Web DataBlade HTML data type is reliant on having the IBM Informix Web DataBlade module installed and enable. Further, the source or target database must have the Web DataBlade module registered on both databases as in the following example:

    EXECUTE FUNCTION 
    sysbldprepare('web.4.13.FC4','create');
    
  • Set the GL_USEGLU environment variables as follows:

    SET GL_USEGLU=0 
     
    
  • Optionally, install and configure Open Admin (OAT) to connect to the Informix server instance.

1.3.3 Database Connection

Oracle GoldenGate uses the Informix ODBC driver to connect to the SYSCDC database. The driver files are libthcli or libifdmr on UNIX and iclit09b.so on Windows. The driver version must be compatible with the Informix Dynamic Server version.

The Oracle GoldenGate Extract process must connect as the informix user, and only to the SYSCDC database. This user has all of the database privileges that are required by Oracle GoldenGate to capture data from an Informix database. The credentials of this user must be supplied in the Oracle GoldenGate parameter files in a secure manner. You will be prompted for this information during the configuration instructions.

1.4 Supported Informix Dynamic Server Data Types

Oracle GoldenGate supports most Informix data types except those listed under Section 1.5, "Non-Supported Informix Dynamic Server Data Types."

Limitations of Support

  • Oracle GoldenGate does not support the filtering, column mapping, or manipulation of large objects larger than 4K. Full Oracle GoldenGate functionality can be used for objects that are 4K or smaller.

  • LOB objects are not captured through the API. To capture a LOB column, the FETCHCOLS option must be used in the Extract TABLE statement that specifies the affected table. For more information about this parameter, see Reference for Oracle GoldenGate for Windows and UNIX.

  • Oracle GoldenGate may truncate an INTERVAL data type to no more than four digits if that INTERVAL has a non-default precision.

  • Oracle GoldenGate supports Informix DATETIME data from 0001/01/03:00:00:00 to 9999/12/31:23:59:59. If a timestamp is converted from GMT to local time, these limits also apply to the resulting timestamp. Depending on the time zone, conversion may add or subtract hours, which can cause the timestamp to exceed the lower or upper supported limit.

  • Oracle GoldenGate supports Informix replication onto HTML data type column only if a function named, textashtml, is created on the target database as in the following example:

    create function textashtml(lo_text REFERENCES TEXT) returning html;
    return lo_text::clob::html;
    end function
    

    You must ensure that you grant Execute privileges to users that will invoke this function. When replicating HTML data type columns, you must also ensure that the data size does not exceed 65534 bytes if there is more than one HTML column in the same table due to a limitation in the Informix ODBC driver.

  • To replicat LOBs, you need to create the following procedures on the target:

    create function textasclob(lo_text REFERENCES TEXT) returning clob;
    return lo_text::clob;
    end function;
    
    create function textasclob(lo_clob CLOB) returning clob;
    return lo_clob;
    end function;
    
    create function byteasblob(lo_byte REFERENCES BYTE) returning blob;
    return lo_byte::blob;
    end function;
    
    create function byteasblob(lo_blob BLOB) returning blob;
    return lo_blob;
    end function;
    

    You must ensure that you grant Execute privileges to users that will invoke these function.

  • Oracle GoldenGate supports data containing 0x00 only when you use he BYTE data type because Informix interprets zero values as terminators.

  • The MONEY type can be declared as COLMONEY MONEY, without scale and precision. However, without specifying the scale and precision, Replicat cannot return the same value with the same precision and scale across every locale. For example, in the Japanese locale, when you enter 3.1 it returns \3 because the backslash symbol is the ASCII representation for the Yen symbol and the number is rounded because there are no decimal representations for Yen. This is expected behavior because you cannot prevent Informix from rounding the number in Japanese locale.

    Oracle recommends that you define the MONEY column explicitly with precision and scale as in the following example:

    COLMONEY MONEY(p,s) 
    

    In doing so, you can replicate all the digits after the decimal point irrespective of the locale.

  • For the DECIMAL and NUMERIC data types, Informix only supports a maximum default precision to 16 digit so you must ensure the number of digits do not exceed this maximum if specified during the table creation. When this default precision value is exceeded, data loss is possible.

1.5 Non-Supported Informix Dynamic Server Data Types

The following Informix data types are not supported are not supported by Oracle GoldenGate.

  • All user-defined types, except HTML, are unsupported.

  • Collection data types (SET, MULTISET, LIST, ROW)

  • Spatial data type not supported for Informix.

1.6 Supported Objects and Operations for Informix Dynamic Server

The following objects and operations are supported:

  • Oracle GoldenGate supports the capture and apply of DML operations on tables that contain rows of up to the maximum length supported by the database engine.

  • The following operations are supported:

    • INSERT

    • UPDATE

    • DELETE

    • TRUNCATE

      Note:

      While TRUNCATE is supported, Oracle does not recommend the use of this operation because it may cause performance issues.
    • ROLLBACK of a transaction

    • ROLLBACK to a savepoint in a transaction

  • Oracle GoldenGate supports Informix tables that use data compression and column encryption.

  • Oracle GoldenGate Extract (capture) processes support capture from multiple Informix databases.

  • Oracle GoldenGate Extract processes support capture from fragmented tables. The default behavior of the UPDATE operation on a fragmented source table that results in modification of a key column (primary key) is that the capture converts the update into the following operations in order:

    INSERT new row
    DELETE old row
    

    This behavior is in accordance with the way the Informix logical logs are written for primary key update on fragmented tables.

  • Oracle GoldenGate Replicat processes always perform a DELETE operation on the target database when the source operation (in the trail) is TRUNCATE.

  • Oracle GoldenGate only supports tables and columns that have lower-case names. If mixed or upper-case table names exist in your database, you must create synonyms in lower case for these objects. Column names that are not lowercase, are not supported. Extract will not capture from tables or columns that have mixed or upper-case names.

    For example, if you want Extract to capture from a table named UPPERCASETAB, issue the following command to create a lower-case synonym:

    CREATE SYNONYM 'mytables'.tabalias1 for 'mytables'."UPPERCTAB"
     
    

    In the Oracle GoldenGate parameter files, specify only the synonym when listing and mapping tables. Only the synonym will be referenced by the Oracle GoldenGate processes and stored in the trails and other files.

  • Oracle GoldenGate does not support wildcarding at the beginning of a database catalog part. For example, *.schema_name_table_name is not supported.

  • The filtering of Replicat transactions in an active-active configuration is supported based on the user ID that is assigned to the specific Replicat process by the operating system. To determine what a user's name is, do the following:

    • On UNIX, use the following command:

      id informixuid=501(informix) gid=501(informix) groups=501(informix),0(root) context=user_u:system_r:unconfined_t
      
    • On Windows, you will need to query the following registry key to retrieve the DOMAIN\username or MACHINE\username associated with "UID user ID:

      HKEY_LOCAL_MACHINE\SOFTWARE\Informix\OnLine\%INFORMIXSERVER%\Security\Users\Usernames\UID#
      

    Note:

    "%INFORMIXSERVER%" in the preceding syntax is the value of the INFORMIXSERVER environment variable for that instance. "UID#" is the literal text "UID" with the numeric user ID concatenated onto the end. For example, in the value UID23, the 23 is the user ID from the log record.
  • When Replicat is used to replicate data to multiple target databases in the same process, the DBOPTIONS SPTHREAD parameter and option must be used in the Replicat parameter file. For other uses of SQLEXEC, this parameter is not mandatory.

  • Oracle GoldenGate does not support the use of the SQL_LONGVARCHAR (a native data type for LVARCHAR) parameter as a key column in either Extract or Replicat operations. For example, if you create SQL_LONGVARCHAR as key column in your replication table, then Oracle GoldenGate will not treat it as key column and will consider other pseudo columns as part of the key columns.

  • Reading of transaction records from the archive log is not supported.

  • Dynamic wildcarding resolution is not supported.

  • Limitations on Automatic Heartbeat Table support are as follows:

    • The GLOBALS file must have a three-part table name, which is the database name, the schema name, and the heartbeat table name all separated by a period (.). For example, srcdb.informix.gg_heartbeat. The schema name must be a operating system user and an Informix DBA/Administrator. Typically, "informix" is used for the schema name.

    • A database login to the 'syscdcv1' database is mandatory before issuing any heartbeat table commands.

    • The default Oracle GoldenGate schema, GGSUSER, is not supported. Informix CDC works with a user that is an operating system user and an Informix DBA/Administrator, which is typically called "informix". Informix CDC requires a three-part table name including a catalog name, a schema name, and a table name.

    • For non-Informix user/schema, all the connect and DBA privileges to sysadmin and sysmaster system databases must be applied. For example, an Oracle GoldenGate installation with a ggatsuser1 user/schema, the GLOBALS entry for heartbeat would be:

      heartbeat_table srcdb.ggatsuser1.gg_heartbeat  
      

      If the non-Informix user/schema does not have the required privileges, the heartbeat feature cannot operate correctly.

  • Mazovia character set is supported in Informix as CP437. You must ensure that you observe following when you use Mazovia locale in your source database.

    • If the Mazovia locale is setup in the source Informix and the target has UTF-8 or other on any heterogeneous database, then the CHARMAP override feature should be used to add 17 code points of Mazovia charset that does not exist in the CP437. Then these code points should be mapped to corresponding target character set code point to avoid any data loss in the target.

    • If the source is the Informix Mazovia character set and target has oracle UTF-8 character set then both CHAR and NCHAR in the same scenario should not be used. Ensure that you do not add a mix of CHAR and NCHAR code points in your CHARMAP map because this will not work and it may corrupt the data. For example, the following is not supported:

      COLMAP(CHAR1= informix_char, NCHAR1=informix_nchar) 
      

      For the same scenario you cannot have 2 CHARMAP files having UTF-8 and UTF-16 code points together; you can only have one or the other code point in the CHARMAP file. Mixed of UTF-8 and UTF-16 is not supported.

      Informix N(VAR)CHAR/(VAR)CHAR/LVARCHAR/TEXT to Oracle VARCHAR2/CHAR/CLOB is supported.

      Oracle NVARCHAR2/NCHAR/NCLOB is not supported.

    • If the source has the Informix Mazovia charset and the target has also Informix Mazovia character set, then CHARMAP is not needed. For example:

      N(VAR)CHAR/(VAR)CHAR/LVARCHAR/TEXT or CHAR/N(VAR)CHAR

1.7 Non-Supported Objects and Operations for Informix Dynamic Server

The following objects and operations are not supported by Informix Dynamic Server:

  • All system databases are excluded from capture by Oracle GoldenGate and will be ignored if they are specified in the parameter files. These are: sysadmin, syscdcv1, sysmaster, sysuser, and sysutils.

  • All tables that have a table identifier (tabid) of less than, or equal to, 99 are excluded from capture by Oracle GoldenGate. These are Informix system tables.

  • Capture and apply of data definition language (DDL) operations is not supported.

  • Capture from log archives or backups is not supported. The transaction logs must be online. See Chapter 3, "Preparing the System for Oracle GoldenGate" for instructions on sizing the logs so that they remain available until Extract is finished processing them.

  • Extract can be started at any valid log sequence number (LSN) that is present in the active logical logs. Extract cannot be positioned at an LSN that exists in an archive or backup log. For more information about positioning options, see Reference for Oracle GoldenGate for Windows and UNIX. For more information about Extract repositioning options, see Reference for Oracle GoldenGate for Windows and UNIX.

  • The WILDCARDRESOLVE parameter must be set to IMMEDIATE in the parameter files.

  • The ATCSN and AFTERCSN options are not supported in any IDS version.

  • Do not attempt to process two Replicat operations using the same trail to Replicate sharing the same HB table on the same database as this results in an error.