Prerequisites
The following section describes the prerequisites for working with the Qlik Replicate MySQL endpoint.
Supported versions and editions
For information on supported MySQL versions, see the ReplicateSupport Matrix.
The following MySQL editions are supported:
- MySQL Community Edition
- MySQL Standard Edition
- MySQL Enterprise Edition
- MySQL Cluster Carrier Grade Edition
Driver prerequisites
Replicate on Windows
Install MySQL ODBC Unicode Driver 64-bit version 8.0.32 on the Replicate machine.
Replicate on Linux
-
Stop the Replicate service and optionally confirm that it has stopped as described in Replicate server procedures.
- Install MySQL ODBC Unicode Driver 64-bit version 8.0.32 on the Replicate machine.
-
Change the working directory to <Replicate-Install-Dir>/bin.
-
Copy the driver location to the site_arep_login.sh file:
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh
This will add the driver to "LD_LIBRARY_PATH" and update the driver location in the site_arep_login.sh file.
-
Optionally, confirm that the driver location was copied:
cat site_arep_login.sh
-
Make sure that the /etc/odbcinst.ini file contains an entry for MySQL, as in the following example:
[MySQL ODBC 8.0 Unicode Driver]
Driver = /usr/lib64/libmyodbc8w.so
UsageCount = 1
-
Start the Replicate service and optionally confirm that it has started as described in Replicate server procedures.
General prerequisites
Make sure the following prerequisites have been met:
- A MySQL account with the Required permissions.
- To be able to capture changes, the user's database account should be set up to use either SHA-256 pluggable authentication (sha256_password) or caching SHA-2 pluggable authentication (caching_sha2_password).
-
Certified MySQL versions support the fractional value for temporal data types (introduced in MySQL 5.6). Consequently, replication of the old temporal data type format is no longer supported.
Information noteNote that upgrading to MySQL versions that support the fractional value for temporal data types does not upgrade the temporal data type format automatically. This needs to be done separately. This also applies when upgrading from MariaDB 10.1. For instructions on upgrading the temporal data type format, see the vendor's online help.
Enable binary logging
To enable binary logging (required for CDC replication), the following parameters must be configured in MySQL’s my.ini (Windows) or my.cnf (UNIX) files.
Parameter | Value |
---|---|
server_id |
Any value from 1. Example: server_id=1 |
log-bin=<path> |
Path to the binary log file (without an extension). Example: log-bin=E:\MySql_Logs\BinLog |
binlog_format |
Must be: binlog_format=row |
expire_logs_days |
To prevent disk space issues, it is strongly recommended not to use the default value (0). Example: expire_logs_days=5 |
binlog_row_image |
Must be: binlog_row_image=full |
Cluster prerequisites
To be able to replicate clustered (NDB) tables (by connecting to any of the cluster nodes), the following parameters must be configured in MySQL’s my.ini (Windows) or my.cnf (UNIX) files.
-
Replication from Galera Cluster for MySQL/MariaDB is also supported. For more information, see Galera Cluster Considerations below.
- When using Percona as a source, there is no need to perform the procedures described in this section.
Parameter | Value |
---|---|
ndb_log_bin |
Must be: ndb_log_bin=on Ensures that changes in clustered tables will be logged to the binary log. |
ndb_log_update_as_write |
Must be: ndb_log_update_as_write=OFF Prevents UPDATEs being written as INSERTs in the binary log. |
ndb_log_updated_only |
Must be: ndb_log_updated_only=OFF Ensures that the binary log will contain the entire row and not just the changed columns. |
Galera cluster considerations
You can replicate data from any active MySQL instance. In the event that an instance to which Replicate is currently connected fails, Replicate will attempt to reconnect several times. If it is unable to reconnect, the task will fail. In this case, you will need to manually change the server instance (by editing the endpoint settings) and then start the task from the timestamp of the first failure. If the exact point of failure is unknown, it can be retrieved from the log. Make sure to specify the timestamp of the first failure (i.e. before Replicate started to try to reconnect) or even a few minutes earlier.
Replicating 4-byte UTF8 emojis
Replication of 4-byte UTF8 emojis to certain targets requires the following preparation:
- Microsoft SQL Server Target: Transform the emojis from WSTRING(n) to WSTRING(n*2).
- Amazon Redshift Target: Transform the emojis from WSTRING(n) to WSTRING(n*2).
For information on defining transformations, see Using the Transform tab.