1 System Requirements and Preinstallation Instructions

Learn about the requirements for the system and MySQL database resources that support Oracle GoldenGate.

Topics:

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 MySQL 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 amount of data being processed, the number of Oracle GoldenGate processes running, the amount of RAM available to Oracle GoldenGate, and the amount of disk space that is available to Oracle GoldenGate for storing pages of RAM temporarily on disk when the operating system needs to free up RAM (typically when a low watermark is reached). This temporary storage of RAM to disk is commonly known as swapping or paging (herein referred to as swapping). Depending on the platform, the term swap space can be a swap partition, a swap file, a page file (Windows) or a shared memory segment (IBM i platforms).

Modern servers have sufficient RAM combined with sufficient swap space and memory management systems to run Oracle GoldenGate. However, increasing the amount of RAM available to Oracle GoldenGate may significantly improve its performance, as well as that of the system in general.

Typical Oracle GoldenGate installations provide RAM in multiples of gigabytes to prevent excessive swapping of RAM pages to disk. The more contention there is for RAM the more swap space that is used.

Excessive swapping to disk causes performance issues for the Extract process in particular, because it must store data from each open transaction until a commit record is received. If Oracle GoldenGate runs on the same system as the database, the amount of RAM that is available becomes critical to the performance of both.

RAM and swap usage are controlled by the operating system, not the Oracle GoldenGate processes. The Oracle GoldenGate cache manager takes advantage of the memory management functions of the operating system to ensure that the Oracle GoldenGate processes work in a sustained and efficient manner. In most cases, users need not change the default Oracle GoldenGate memory management configuration.

For more information about evaluating Oracle GoldenGate memory requirements, see the CACHEMGR parameter in Reference for Oracle GoldenGate.

1.2.2 Disk Requirements

Assign free disk space according to the following instructions.

  • To determine the size of the Oracle GoldenGate download file, view the Size column before downloading your selected build from Oracle Software Delivery Cloud. The value shown is the size of the files in compressed form. The size of the expanded Oracle GoldenGate installation directory will be significantly larger on disk.

  • To install Oracle GoldenGate into a cluster environment, install the Oracle GoldenGate binaries and files as the Oracle user on a shared file system that is available to all cluster nodes. For more information, see Preparing to Install Oracle GoldenGate Within a Cluster.

  • Allocate 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.

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 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 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 Extract, Replicat, and Manager processes must operate as an operating system user that has privileges to read, write, and delete files and subdirectories in the Oracle GoldenGate directory. In addition, the Manager process requires privileges to control the other Oracle GoldenGate processes.

  • Dedicate the Extract, Replicat, and Manager operating system users to Oracle GoldenGate. Sensitive information might be available to anyone who runs an Oracle GoldenGate process.

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.

1.3 Database Requirements

This section describes the MySQL database requirements. These requirements fall into one of the following categories:

1.3.1 Supported Version

This release of Oracle GoldenGate for MySQL supports MySQL 5.6 and 5.7. The DDL feature is supported on MySQL 5.7.10 and later.

1.3.2 Database Character Set

MySQL provides a facility that allows users to specify different character sets at different levels.

Level Example

Database

create database test charset utf8;

Table

create table test( id int, name char(100)) charset utf8;

Column

create table test ( id int, name1 char(100) charset gbk, name2 char(100) charset utf8));

Limitations of Support

  • When you specify the character set of your database as utf8mb4/utf8, the default collation is utf8mb4_unicode_ci/utf8_general_ci. If you specify collation_server=utf8mb4_bin, the database interprets the data as binary. For example, specifying the CHAR column length as four means that the byte length returned is 16 (for utf8mb4) though when you try to insert data more than four bytes the target database warns that the data is too long. This is the limitation of database so Oracle GoldenGate does not support binary collation. To overcome this issue, specify collation_server=utf8mb4_bin when the character set is utf8mb4 and collation_server=utf8_bin for utf8.

  • The following character sets are not supported:

    • armscii8
    • keybcs2
    • utf16le
    • geostd8

1.3.3 Database Storage Engine

Requirements for the database storage engine are as follows:

  • Oracle GoldenGate supports the InnoDB storage engine for a source MySQL database.

  • On a target MySQL database, the Oracle GoldenGate Replicat process connects to the database through the MySQL native API.

  • The NDB cluster engine is supported.

1.3.4 Database User for Oracle GoldenGate Processes

Requirements for the database user for Oracle GoldenGate processes are as follows:

  • Create a database user that is dedicated to Oracle GoldenGate. It can be the same user for all of the Oracle GoldenGate processes that must connect to a database:

    • Extract (source database)

    • Replicat (target database)

    • DEFGEN (source or target database)

  • To use DDL the MySQL user must have privileges to install the database plugins. Additionally, the user requires insert privileges on the source user.

  • To preserve the security of your data, and to monitor Oracle GoldenGate processing accurately, do not permit other users, applications, or processes to log on as, or operate as, the Oracle GoldenGate database user.

  • Keep a record of the database users. They must be specified in the Oracle GoldenGate parameter files with the USERID parameter.

  • The Oracle GoldenGate user requires read access to the INFORMATION_SCHEMA database.

  • The Oracle GoldenGate user requires the following user privileges.

    Table 1-1 Oracle GoldenGate database user privileges for MySQL

    Privilege Extract Replicat

    INSERT, UPDATE, DELETE on target tables

     

    X

    CREATE TABLE

     

    XFoot 1

    EXECUTE

     

    XFoot 2

    SELECT ANY TABLE

    or

    SELECT ON database.table

    X

    X

    Footnote 1

    If using the checkpoint table feature (recommended)

    Footnote 2

    To execute stored procedures

  • To capture binary log events, an Administrator must provide the following privileges to the Extract user:

    • Read and Execute permissions for the directory where the MySQL configuration file (my.cnf) is located

    • Read permission for the MySQL configuration file (my.cnf)

    • Read and Execute permissions for the directory where the binary logs are located

    • Read and Execute permission for the tmp directory

1.3.5 Supported MySQL Data Types

MySQL supports the following data types:

  • CHAR

  • VARCHAR

  • INT

  • TINYINT

  • SMALL INT

  • MEDIUM INT

  • BIG INT

  • DECIMAL

  • FLOAT

  • DOUBLE

  • DATE

  • TIME

  • YEAR

  • DATETIME

  • TIMESTAMP

  • BINARY

  • VARBINARY

  • TEXT

  • TINYTEXT

  • MEDIUMTEXT

  • LONGTEXT

  • BLOB

  • TINYBLOB

  • MEDIUMBLOB

  • LONGBLOB

  • ENUM

  • BIT(M)

1.3.5.1 Limitations and Clarifications

When running Oracle GoldenGate for MySQL, be aware of the following:

  • Oracle GoldenGate does not support BLOB or TEXT types when used as a primary key.

  • Oracle GoldenGate supports UTF8 and UCS2 character sets. UTF8 data is converted to UTF16 by Oracle GoldenGate before writing it to the trail.

  • UTF32 is not supported by Oracle GoldenGate.

  • Oracle GoldenGate supports a TIME type range from 00:00:00 to 23:59:59.

  • Oracle GoldenGate supports timestamp 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 does not support negative dates.

  • The support of range and precision for floating-point numbers depends on the host machine. In general, the precision is accurate to 16 significant digits, but you should review the database documentation to determine the expected approximations. Oracle GoldenGate rounds or truncates values that exceed the supported precision.

  • When you use ENUM type in non-strict sql_mode, the non-strict sql_mode does not prevent you from entering an invalid ENUM value and an error will be returned. To avoid this situation, do one of the following:

    • Use sql_mode as STRICT and restart Extract. This prevents users from entering invalid values for any of the data types. An IE user can only enter valid values for those data types.

    • Continue using non-strict sql_mode, but do not use ENUM data types.

    • Continue using non-strict sql_mode and use ENUM data types with valid values in the database. If you specify invalid values, the database will silently accept them and Extract will abend.

  • To preserve transaction boundaries for a MySQL target, create or alter the target tables to the InnoDB transactional database engine instead of the MyISAM engine. MyISAM will cause Replicat records to be applied as they are received, which does not guarantee transaction integrity even with auto-commit turned off. You cannot roll back a transaction with MyISAM.

  • Extraction and replication from and to views is not supported.

  • Transactions applied by the slave are logged into the relay logs and not into the slave's binlog. If you want a slave to write transactions the binlog that it receives from the master , you need to start the replication slave with the log slave-updates option as 1 in my.cnf. This is in addition to the other binary logging parameters.  After the master's transactions are in the slave's binlog, you can then setup a regular capture on the slave to capture and process the slave's binlog.

1.3.6 Non-Supported MySQL Data Types

MySQL does not support the following data types:

  • The XML, SET, and Geometry data types and similar are not supported.

  • There is no support for the Interval data type.

1.3.7 Supported Objects and Operations for MySQL

Oracle GoldenGate for MySQL supports to following objects and operations:

  • Basic extraction and replication of DDL (data definition language) operations for MySQL 5.7.10 and later. Only the CREATE TABLE, ALTER TABLE, and DROP TABLE operations are supported.

  • Oracle GoldenGate supports the extraction and replication of transactional tables.

  • Oracle GoldenGate supports transactional tables up to the full row size and maximum number of columns that are supported by MySQL and the database storage engine that is being used. InnoDB supports up to 1017 columns.

  • Oracle GoldenGate supports the AUTO_INCREMENT column attribute. The increment value is captured from the binary log by Extract and applied to the target table in a Replicat insert operation.

  • Oracle GoldenGate supports the following DML operations on source and target database transactional tables:

    • Insert operation

    • Update operation (compressed included)

    • Delete operation (compressed included); cascade delete queries result in the deletion of the child of the parent operation

    • Truncate operation

  • Oracle GoldenGate can operate concurrently with MySQL native replication.

  • Oracle GoldenGate supports the DYNSQL feature for MySQL.

  • Limitations on Automatic Heartbeat Table support are as follows:

    • Ensure that the database in which the heartbeat table is to be created already exists to avoid errors when adding the heartbeat table.

    • In the heartbeat history lag view, the information in fields like heartbeat_received_ts, incoming_heartbeat_age, and outgoing_heartbeat_age are shown with respect to the system time. You should ensure that the operating system time is setup with the correct and current time zone information.

    • Heartbeat Table is not supported on MySQL 5.5.

1.3.8 Non-Supported Objects and Operations for MySQL

Oracle GoldenGate for MySQL does not support the following objects and operations:

  • The Oracle GoldenGate BATCHSQL feature.

  • Array fetching during initial load.

  • The following character sets are not supported:

    • ULIB_CS_ARMSCII8, /* American National 166-9 */
    • ULIB_CS_GEOSTD8, /* Geogian Standard */
    • ULIB_CS_KEYBCS2, /* Kemennicky MS-DOS
  • Capturing NLS LOB data using the FETCHMOCOLS and FETCHMODCOLEXCEPT TABLE options is not supported when DDL is enabled.

  • Renaming tables.

  • DDL statements inside stored procedures is not supported.