Version End of Life. Not Yet Set
Release 7.0.0 is a major release introducing many new features including a fully documented API. There are a large number of bug fixes and improvements in all areas of the product, and a number of key behavior changes, most significantly being Security is now enabled by default.
The following changes have been made to Tungsten Replicator and may affect existing scripts and integration tools. Any scripts or environment which make use of these tools should check and update for the new configuration:
The tpm diag command now uses
tar czf
instead of thezip
command to compress the gathered files. Thezip
command is no longer a pre-requisite for tpm diag.Issues: CT-1253
tungsten_set_position has been deprecated and no longer available in this release. dsctl should be used instead.
tungsten_provision_slave has now been renamed to tprovision
Issues: CT-1302
The tungsten_find_orphaned script now creates a log file every time it runs which is stored in the configured temporary directory (
/tmp/
by default, tpm query values temp_directory). This is to allow for easier troubleshooting and visibility during automatic execution.Issues: CT-1447
tpm now accepts chrony as a valid time synchronization software
Issues: CT-1462
The tpm diag command now uses the ss (socket status) command in place of netstat on SUSE and other operating systems that have deprecated netstat.
Issues: CT-1483
The tpm diag command now gathers the
/etc/os-release
file when located. Also now using the ip command on systems where ifconfig and/or route is deprecated.Issues: CT-1496
Changed output of thl purge command when no lower and upper bounds are given from 'Deleting events where' to 'Deleting all events'.
Issues: CT-1738
tungsten_provision_slave has now been renamed to tprovision.
Issues: CT-1436
The following issues are known within this release but not considered critical, nor impact the operation of Tungsten Replicator. They will be addressed in a subsequent patch release.
After starting up Tungsten components, a
defunct
process for each running component can be found in the process listing.Whilst this does not cause any issues, it could generate unnecessary alerts for customers monitoring.
The cause has been identified and affects version 7.0.0 and 7.0.1. This will be fixed in the next 7.0.2 release.
Issues: CT-1876
The check_tungsten_online command returns a Replicator offline error on active witness hosts.
Issues: CT-1783
Improvements, new features and functionality
Two new tpm options have been included as part of the new API in this release.
The options are used for setting the API admin user credentials and are as follows:
Issues: CT-1327
Support now included for MariaDB 10.3+
Issues: CT-1276, CT-1433
Support has been added for Java 17 LTS
Issues: CT-1706
A new tpm option delete-service is now available to simplify the removal of replicator services.
Issues: CT-327
Prometheus exporters mysqld_exporter and node_exporter are now included with the distribution packages.
A new command line tool tmonitor is now available for the management and testing of external Prometheus exporters (node and mysqld), and for the testing of internal exporters (Replicator).
Issues: CT-960
A new tpm option purge-thl
and a new script tungsten_purge_thl
have been added to allow easier and more intelligent THL purging across all nodes in a topology.
This allow you to purge THL files based on the following rules:
Gather the last applied seqno from all Replica nodes and take the lowest one
Find the current THL file which contains that seqno, then locate the previous one
Construct a thl purge command to remove thl thru the last seqno in the prev file
The default behavior is to display the needed commands for the admin to execute manually.
Issues: CT-1273
tpm diag now collects routing table information via route -n
, and has two new
command-line arguments: --include
and --groups
.
--include
specifies a comma-separated list of subroutines to include. Any gather subroutine not
listed will be skipped.
--groups
specifies a comma-separated list of subroutine groups to include. Any group not listed will be skipped.
Issues: CT-1322
tungsten_send_diag now supports a new command-line argument, --cleanup
, which
will cause the removal of the diagnostic archive file generated using the --diag
argument.
Issues: CT-1360
With the release of APIv2, a new cli tool has been introduced to allow easier access called tapi.
In addition, the vast majority of Tungsten cli tools have been updated to optionally use the APIv2 interface when desired.
The Nagios and Zabbix checks are also available via APIv2 using the tapi tool.
Issues: CT-1454
The tungsten_purge_thl command is now a wrapper for the tpm purge-thl command.
Issues: CT-1488
The tmonitor command now has better help text and more options to ease usage,
including --filter
to allow easy viewing of the tmonitor test output.
Issues: CT-1585
A new option to print the merged logs to STDOUT
has been added to tungsten_merge_logs (--stdout|-O
).
The tpm command suite now properly supports the --profile
argument to specify a Tungsten json configuration
file in place of the installed tungsten.cfg
.
Issues: CT-1680
A new command (error) has been added to trepctl to output a full stack trace of the last error, if any.
shell> trepctl -service <serviceName>
error
Event application failed: seqno=10 fragno=0 message=Table hr.regions not found in database. Unable to generate a valid statement.
com.continuent.tungsten.replicator.applier.ApplierException: Table hr.regions not found in database. Unable to generate a valid statement.
at com.continuent.tungsten.replicator.applier.JdbcApplier.getTableMetadata(JdbcApplier.java:582)
at com.continuent.tungsten.replicator.applier.JdbcApplier.fillColumnNames(JdbcApplier.java:494)
at com.continuent.tungsten.replicator.applier.JdbcApplier.getColumnInformation(JdbcApplier.java:1236)
at com.continuent.tungsten.replicator.applier.MySQLApplier.applyOneRowChangePrepared(MySQLApplier.java:418)
at com.continuent.tungsten.replicator.applier.JdbcApplier.applyRowChangeData(JdbcApplier.java:1460)
at com.continuent.tungsten.replicator.applier.JdbcApplier.apply(JdbcApplier.java:1576)
at com.continuent.tungsten.replicator.applier.ApplierWrapper.apply(ApplierWrapper.java:100)
at com.continuent.tungsten.replicator.pipeline.SingleThreadStageTask.apply(SingleThreadStageTask.java:871)
at com.continuent.tungsten.replicator.pipeline.SingleThreadStageTask.runTask(SingleThreadStageTask.java:601)
at com.continuent.tungsten.replicator.pipeline.SingleThreadStageTask.run(SingleThreadStageTask.java:185)
at java.base/java.lang.Thread.run(Thread.java:834)
Issues: CT-1747
Adds a new option redshiftCopyOptions
that can be supplied in the s3.json file to include valid options
that can be included in the Redshift COPY command when loading csv data from S3 into Redshift staging tables. See example below.
{ "awsS3Path" : "s3://your-bucket-for-redshift/redshift-test", "awsIAMRole" : "arn:iam-role", "redshiftCopyOptions" : "ACCEPTANYDATE ACCEPTINVCHARS TRUNCATECOLUMNS", "cleanUpS3Files" : "true" }
Issues: CT-1298
It is now possible to compress and/or encrypt THL on disk. For more information on using these features see https://docs.continuent.com/tungsten-replicator-7.0/thl-compress-encrypt.html
Issues: CT-630
The replicator will now be able to handle new SQL_MODES available in later releases of MySQL and MariaDB, these are as follows:
MySQL: TIME_TRUNCATE_FRACTIONAL
MariaDB: TIME_ROUND_FRACTIONAL, SIMULTANEOUS_ASSIGNMENT
Issues: CT-1362
In-Flight THL Compression is now available.
For full details on enabling this feature, refer to this page
Issues: CT-1420
Added a new property to allow configuration of character set used during batch loading into MySQL targets.
Default is ut8mb4. Override using the following:
property=replicator.applier.dbms.loadCharset=utf8
Issues: CT-1647
Default systemd configuration files for Tungsten components no longer specifies the tungsten group to execute the command. This will prevent file access issues when tungsten user belongs to several groups.
Issues: CT-1550
When services are deployed with systemd and MySQL could not start due to an error, tpm would not be able to later start MySQL
Issues: CT-1734
Issuing dsctl set [--reset] against Aurora source and targets would fail with Access Denied errors. This is due to the inability to disable Binary Logging for specific transactions which dsctl issues. The errors did not prevent dsctl from working, however they were misleading.
Issues: CT-1040
In certain cases, tprovision would not be able to find the binary log position of the backup when taken from a primary. This has been fixed.
Issues: CT-1085
Fixes a bug in tprovision when using xtrabackup version 8, due to changes in xtrabackup binaries.
Issues: CT-1248
The tpm connector command now handles special characters in the password string.
Issues: CT-1258
The tpm update command will now exit with an error if any files not owned by the configured Tungsten OS user are found in the Tungsten installation directory.
For example, if the OS user is tungsten and the installation directory is /opt/continuent
, containing the
file /opt/continuent/thl/archived_thl.zip
owned by root
would cause something like the
following error to be produced, and tpm update would exit:
Foreign-owned files found! Located files in the Tungsten installed directory /opt/continuent that are not owned by the Tungsten OS user (tungsten): /opt/continuent/thl/archived_thl.zip Please change the ownership of these files to OS user "tungsten" using the chown command as root via sudo, then rerun the `tpm update` command. For example: shell> sudo chown -R tungsten:tungsten /opt/continuent
Issues: CT-1260
Fixes a security issue within the tpm diag command.
Issues: CT-1295
tungsten_send_diag no longer prints an error about Use of uninitialized value $diagArgs in concatenation
.
Issues: CT-1354
The tpm command no longer prints an error when run with no other command-line arguments.
Issues: CT-1373
The tpm command no longer aborts with a Use of uninitialized value error
when a stray tungsten.cfg
file exists under $CONTINUENT_ROOT
Issues: CT-1394
Fixes a monitoring bug with users using caching_sha2_password
.
Issues: CT-1406
The tpm command now checks the local host’s shortname in addition to the FQDN returned by the hostname command upon initialization.
This fixes a bug that prevented tpm mysql from working on applier hosts running MySQL.
Issues: CT-1414
tprovision (formerly tungsten_provision_slave) may fail to provision if the MySQL data directory was not accessible to the tungsten user.
Issues: CT-1475
The tmonitor command no longer fails on Debian 9 and Ubuntu.
Issues: CT-1485
All tpm sub-commands now handle command-line arguments more intelligently.
Issues: CT-1487
The tpm purge-thl command now handles command-line arguments more intelligently.
Issues: CT-1489
The tpm diag command now properly collects the system information file on Debian systems.
Issues: CT-1492
Database monitoring logs are now reporting the correct error number and SQL state when database errors occur.
Issues: CT-1497
The tpm update command now handles updates/upgrades more gracefully when the previous version did not have the latest tpm framework..
Issues: CT-1506
The tpm ask command no longer calls Data::Dumper
when it is not available.
Issues: CT-1626
tpm now parses the MYSQL SSL related setting correctly.
Issues: CT-1662
Fixes an issue where the deployall command would create a root owned wrapper.log in the ./tools directory.
Issues: CT-1664
When MySql services where badly installed, some distribution could show a “not-found”
status within systemctl, confusing tpm
Issues: CT-1677
The tpm command now communicates properly when there is no INI configuration file or staging-method deploy.cfg
configuration defined.
Issues: CT-1712
The tpm diag command now handles Multi-Site/Active-Active topologies better.
Issues: CT-1718
tungsten_monitor.rb script no longer uses sudo to send emails if the configuration doesn't allow it.
Issues: CT-1737
The tpm diag command now handles zero-length mysqld.log
files gracefully.
Issues: CT-1740
The replicator metadata cache will now correctly handle table names when
lower_case_table_names=1
is set in the MySQL configuration.
Issues: CT-651
When using parallel apply, the replicator would error with a Foreign Key constraint error if statements were issued against two or more objects that shared the same name, but with different case sensitivity, for example:
mysql> create table testtable; mysql> drop table testtable; mysql> create table TestTable;
Issues: CT-1259
A change in the way MySQL logs CREATE TABLE AS SELECT
in the Binary Logs from v8.0.20 onwards, meant these
transactions would previously fail.
ROW
based replication. An alternative workaround to ensure
correct rollback on failure, would be to run the statement with STATEMENT
based replication for the session.
This will also provide better performance for larger tables.
Issues: CT-1301
Fixes occurences of NullPointerException
that would occur when bringing the replicator online before MySQL was started.
Issues: CT-1348
For row based events, SQL modes were not displayed in the THL output. This is now fixed.
Issues: CT-1440
When connecting to a THL server, a client will now connect to the next available host in its THL uri, if the first does not have the sequence number that the client requires. The client will then fail only if none of the hosts from the uri can provide the needed sequence number.
Issues: CT-1558
Fixed an issue when using Parallel apply that would show a NullPointerException
in case an event could either not be found or
be corrupted in THL. This will now display a correct message Missing or corrupted event from storage
Issues: CT-1722
Fixed an issue with the batch loader where DATETIME
and TIME
datatypes
with milliseconds would be replicated as .000 instead of the real millisecond value.
Issues: CT-1739
Fixed an issue where trepctl was leaving JMX connections opened.
Issues: CT-1752
Added more debug information for detecting possible hanging connections while a THL client connects to the THL server. Also, added socket timeout for the connection initialization
Issues: CT-1760
Includes previously missing template file to enable easy configuration of the dbrename
filter.
Issues: CT-1350
The BidiRemoteSlaveFilter
could fail to correctly flag fragmented events in unprivileged environments (Aurora, for example)
In such an environment (multi-active, unprivileged database access), a new setting was introduced to force extraction process to read ahead
to the last fragment to detect the service name (false by default). Enabled with repl_svc_extractor_multi_frag_service_detection=true
Issues: CT-1351