MXS-1485: MariaDB 10 GTID is always on for slave connections

MariaDB 10 GTID is always on for slave connections.
Remove mariadb10_slave_gtid option
This commit is contained in:
MassimilianoPinto 2017-10-23 16:02:57 +02:00
parent 0bfe89b86b
commit d6812b91a0
3 changed files with 38 additions and 47 deletions

View File

@ -159,15 +159,39 @@ the router options.
### `mariadb10-compatibility`
This parameter allows binlogrouter to replicate from a MariaDB 10.0 master
server. If `mariadb10_slave_gtid` is not enabled GTID will not be used in the
replication. This parameter is enabled by default since MaxScale 2.2.0. In
earlier versions the parameter was disabled by default.
server: this parameter is enabled by default since MaxScale 2.2.0.
In earlier versions the parameter was disabled by default.
```
# Example
router_options=mariadb10-compatibility=1
```
Additionally, since MaxScale 2.2.1, MariaDB 10.x slave servers
can connect to binlog server using GTID value instead of binlog name and position.
Example of a MariaDB 10.x slave connection to MaxScale
```
MariaDB> SET @@global.gtid_slave_pos='0-10122-230';
MariaDB> CHANGE MASTER TO
MASTER_HOST='192.168.10.8',
MASTER_PORT=5306,
MASTER_USE_GTID=Slave_pos;
MariaDB> START SLAVE;
```
**Note:**
- Slave servers can connect either with _file_ and _pos_ or GTID.
- MaxScale saves all the incoming MariaDB GTIDs (DDLs and DMLs)
in a sqlite3 database located in _binlogdir_ (`gtid_maps.db`).
When a slave server connects with a GTID request a lookup is made for
the value match and following binlog events will be sent.
### `transaction_safety`
This parameter is used to enable/disable incomplete transactions detection in
@ -271,29 +295,6 @@ Example:
3;bbbbbbbbbaaaaaaabbbbbccccceeeddddd3333333ddddaaaaffffffeeeeecccd
```
### `mariadb10_slave_gtid`
If enabled this option allows MariaDB 10.x slave servers to connect to binlog
server using GTID value instead of binlog_file name and position.
MaxScale saves all the incoming MariaDB GTIDs (DDLs and DMLs)
in a sqlite3 database located in _binlogdir_ (`gtid_maps.db`).
When a slave server connects with a GTID request a lookup is made for
the value match and following binlog events will be sent.
Default option value is _off_.
Example of a MariaDB 10.x slave connection to MaxScale
```
MariaDB> SET @@global.gtid_slave_pos='0-10122-230';
MariaDB> CHANGE MASTER TO
MASTER_HOST='192.168.10.8',
MASTER_PORT=5306,
MASTER_USE_GTID=Slave_pos;
MariaDB> START SLAVE;
```
**Note:** Slave servers can connect either with _file_ and _pos_ or GTID.
### `mariadb10_master_gtid`
This option allows MaxScale binlog router to register
with MariaDB 10.X master using GTID instead of _binlog_file_ name
@ -374,7 +375,6 @@ follows.
encrypt_binlog=1,
encryption_algorithm=aes_ctr,
encryption_key_file=/var/binlogs/enc_key.txt,
mariadb10_slave_gtid=On,
mariadb10_master_gtid=Off,
slave_hostname=maxscale-blr-1,
master_retry_count=1000,

View File

@ -66,7 +66,6 @@ A **complete example** of a service entry for a binlog router service would be a
encrypt_binlog=On,
encryption_algorithm=aes_ctr,
encryption_key_file=/var/binlogs/enc_key.txt,
mariadb10_slave_gtid=On,
mariadb10_master_gtid=Off,
slave_hostname=maxscale-blr-1,
master_retry_count=1000,
@ -198,7 +197,7 @@ If a slave is connected to MaxScale with SSL, an entry will be present in the Sl
Slave connected with SSL: Established
```
If option `mariadb10_slave_gtid=On` last seen GTID is shown:
If option `mariadb10-compatibility=On` last seen GTID is shown:
```
Last seen MariaDB GTID: 0-10124-282
@ -253,7 +252,7 @@ Master_SSL_Verify_Server_Cert: No
Master_Info_File: /home/maxscale/binlog/first/binlogs/master.ini
```
If the option `mariadb10_slave_gtid` is set to On, the last seen GTID is shown:
If the option `mariadb10-compatibility` is set to On, the last seen GTID is shown:
```
Using_Gtid: No
@ -277,11 +276,8 @@ slaves must not use *MASTER_AUTO_POSITION = 1* option.
It also works with a MariaDB 10.X setup (master and slaves).
Starting from MaxScale 2.2 the slave connections may include **GTID** feature
`MASTER_USE_GTID=Slave_pos` if option *mariadb10_slave_gtid* has been set.
The default is that a slave connection must not include any GTID
feature: `MASTER_USE_GTID=no`
Starting from MaxScale 2.2.1 the slave connections might optionally include
**GTID** feature `MASTER_USE_GTID=Slave_pos`: only option *mariadb10-compatibility* is required.
Starting from MaxScale 2.2 it's also possible to register to MariaDB 10.X master using
**GTID** using the new option *mariadb10_master_gtid*.
@ -545,8 +541,8 @@ be issued for the new configuration.
### Removing binary logs from binlogdir
Since version 2.2, if `mariadb10_slave_gtid` or `mariadb10_master_gtid`
are set to On, it's possible to remove the binlog files from _binlogdir_
Since version 2.2.1, if `mariadb10-compatibility`is set to On,
it's possible to remove the binlog files from _binlogdir_
and delete related entries in GTID repository using the admin
command `PURGE BINARY LOGS TO 'file'`
@ -653,8 +649,8 @@ Example:
```
##### MariaDB 10 GTID
If connecting slaves are MariaDB 10.x it's also possible to connect with GTID,
*mariadb10_slave_gtid=On* has to be set in configuration before starting MaxScale.
Since MaxScale 2.2.1 the MariaDB 10.x connecting slaves can optionally connect with GTID,
*mariadb10-compatibility=On* has to be set in configuration before starting MaxScale.
```
SET @@global.gtid_slave_pos='';
@ -688,7 +684,7 @@ MariaDB> CHANGE MASTER TO
MariaDB> START SLAVE;
```
Additionally, if *mariadb10_slave_gtid=On*, it's also possible to retrieve the list of binlog files downloaded from the master with the new admin command _SHOW BINARY LOGS_:
Additionally it's also possible to retrieve the list of binlog files downloaded from the master with the new admin command _SHOW BINARY LOGS_:
```
MariaDB> SHOW BINARY LOGS;

View File

@ -190,7 +190,6 @@ MXS_MODULE* MXS_CREATE_MODULE()
MXS_MODULE_OPT_NONE, enc_algo_values
},
{"encryption_key_file", MXS_MODULE_PARAM_PATH, NULL, MXS_MODULE_OPT_PATH_R_OK},
{"mariadb10_slave_gtid", MXS_MODULE_PARAM_BOOL, "false"},
{"mariadb10_master_gtid", MXS_MODULE_PARAM_BOOL, "false"},
{
"binlog_structure", MXS_MODULE_PARAM_ENUM, "flat",
@ -359,8 +358,8 @@ createInstance(SERVICE *service, char **options)
inst->request_semi_sync = config_get_bool(params, "semisync");
inst->master_semi_sync = 0;
/* Enable MariaDB GTID tracking for slaves */
inst->mariadb10_gtid = config_get_bool(params, "mariadb10_slave_gtid");
/* Enable MariaDB GTID tracking for slaves if MariaDB 10 compat is set */
inst->mariadb10_gtid = inst->mariadb10_compat;
/* Enable MariaDB GTID registration to master */
inst->mariadb10_master_gtid = config_get_bool(params, "mariadb10_master_gtid");
@ -539,10 +538,6 @@ createInstance(SERVICE *service, char **options)
{
inst->encryption.enabled = config_truth_value(value);
}
else if (strcmp(options[i], "mariadb10_slave_gtid") == 0)
{
inst->mariadb10_gtid = config_truth_value(value);
}
else if (strcmp(options[i], "mariadb10_master_gtid") == 0)
{
inst->mariadb10_master_gtid = config_truth_value(value);