Replication and Binary Log System Variables
Complete Replication and Binary Log System Variables reference for MariaDB. Complete guide for configuration values, scope settings, and performance impact.
Overview
This page lists system variables that are related to binary logging and replication.
See Server System Variables for a complete list of system variables and instructions on setting them, as well as System variables for global transaction ID.
Also see mariadbd replication options for related options that are not system variables (such as binlog_do_db and binlog_ignore_db).
Global Defaults
The following variables serve as the global default for the corresponding MASTER_* option in the CHANGE MASTER TO statement. The value is inherited from this system variable when the user enters the DEFAULT keyword for that option.
For more details, see CHANGE MASTER TO.
Variable Descriptions
auto_increment_increment
auto_increment_incrementDescription: The increment for all AUTO_INCREMENT values on the server, by default
1. Intended for use in primary-to-primary replication.Command line:
--auto-increment-increment[=#]Scope: Global, Session
Dynamic: Yes
Data Type:
numericDefault Value:
1Range:
1to65535
auto_increment_offset
auto_increment_offsetDescription: The offset for all AUTO_INCREMENT values on the server, by default
1. Intended for use in primary-to-primary replication. Should be not be larger than auto_increment_increment. See AUTO_INCREMENT#Replication.Command line:
--auto-increment-offset[=#]Scope: Global, Session
Dynamic: Yes
Data Type:
numericDefault Value:
1Range:
1to65535
binlog_alter_two_phase
binlog_alter_two_phaseDescription: When set, split ALTER at binary logging into two statements:
START ALTERandCOMMIT/ROLLBACK ALTER. TheONsetting is recommended for long-runningALTER TABLEstatements, so it could start on replica before its actual execution on primary.Command line:
--binlog-alter-two-phase[={0|1}]Scope: Global, Session
Dynamic: Yes
Data Type:
booleanDefault Value:
OFFIntroduced: MariaDB 10.8.1
binlog_annotate_row_events
binlog_annotate_row_eventsDescription: This option tells the primary to write annotate_rows_events to the binary log.
Command line:
--binlog-annotate-row-events[={0|1}]Scope: Global, Session
Dynamic: Yes
Data Type: boolean
Default Value:
ON
binlog_cache_size
binlog_cache_sizeDescription: If the binary log is active, this variable determines the size in bytes, per-connection, of the cache holding a record of binary log changes during a transaction. A separate variable, binlog_stmt_cache_size, sets the upper limit for the statement cache. The binlog_cache_disk_use and binlog_cache_use server status variables indicates whether this variable needs to be increased (you want a low ratio of binlog_cache_disk_use to binlog_cache_use).
Command line:
--binlog-cache-size=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
32768Range - 32 bit:
4096to4294967295Range - 64 bit:
4096to18446744073709547520
binlog_checksum
binlog_checksumDescription: Specifies the type of
BINLOG_CHECKSUM_ALGfor log events in the binary log.Command line:
--binlog-checksum=name--binlog-checksum=[0|1]
Scope: Global
Dynamic: Yes
Data Type:
stringDefault Value:
CRC32Valid Values:
NONE(0),CRC32(1)
binlog_commit_wait_count
binlog_commit_wait_countDescription: Configures the behavior of group commit for the binary log, which can help increase transaction throughput and is used to enable conservative mode of in-order parallel replication. With group commit for the binary log, the server can delay flushing a committed transaction into binary log until the given number of transactions are ready to be flushed as a group. However, the delay is not longer than the value set by binlog_commit_wait_usec. The default value of
0means that no delay is introduced. Setting this value can reduce I/O on the binary log and give an increased opportunity for parallel apply on the replica when conservative mode of in-order parallel replication is enabled, but too high a value decreases the transaction throughput. By monitoring the status variable binlog_group_commit_trigger_count, it is possible to see how often this is occurring.If the server detects that one of the committing transactions T1 holds an InnoDB row lock that another transaction T2 is waiting for, the commit completes immediately without further delay. This helps avoid losing throughput when many transactions need conflicting locks. This often makes it safe to use this option without losing throughput on a replica with conservative mode of in-order parallel replication, provided the value of slave_parallel_threads is sufficiently high.
Command line:
--binlog-commit-wait-count=#]Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0Range:
0to18446744073709551615
binlog_commit_wait_usec
binlog_commit_wait_usecDescription: Configures the behavior of group commit for the binary log, which can help increase transaction throughput and is used to enable conservative mode of in-order parallel replication. With group commit for the binary log, the server can delay flushing a committed transaction into binary log until the transaction has waited the configured number of microseconds. By monitoring the status variable binlog_group_commit_trigger_timeout, it is possible to see how often group commits are made due to
binlog_commit_wait_usec. As soon as the number of pending commits reaches binlog_commit_wait_count, the wait is terminated, though. Thus, this setting only takes effect ifbinlog_commit_wait_countis non-zero.Command line:
--binlog-commit-wait-usec#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
100000Range:
0to18446744073709551615
binlog_direct_non_transactional_updates
binlog_direct_non_transactional_updatesDescription: Replication inconsistencies can occur due when a transaction updates both transactional and non-transactional tables and the updates to the non-transactional tables are visible before being written to the binary log. This is because, to preserve causality, the non-transactional statements are written to the transaction cache, which is only flushed on commit. Setting
binlog_direct_non_transactional_updatesto1(0is default) causes non-transactional tables to be written straight to the binary log, rather than the transaction cache. This setting has no effect when row-based binary logging is used, as it requires statement-based logging. See binlog_format. Use with care, and only in situations where no dependencies exist between the non-transactional and transactional tables, for example, inserting into a non-transactional table based upon the results of aSELECTfrom a transactional table.Command line:
--binlog-direct-non-transactional-updates[=value]Scope: Global, Session
Dynamic: Yes
Data Type:
booleanDefault Value:
OFF (0)
binlog_do_db
binlog_do_dbDescription: This option allows you to configure a replication primary to write statements and transactions affecting databases that match a specified name into its binary log. Since the filtered statements or transactions are not be present in the binary log, its replicas are not be able to replicate them.
This option does not work with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
Until MariaDB 11.2.0, only available as an option, not a system variable. This option can not be set dynamically.
When setting it on the command-line or in a server option group in an option file, the option does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the option multiple times.
See Replication Filters for more information.
Command line:
--binlog-do-db=#Scope: Global
Dynamic: No
Data Type:
stringDefault Value: NULL
Introduced: MariaDB 11.2.0 (as a system variable)
binlog_expire_logs_seconds
binlog_expire_logs_secondsDescription: If non-zero, binary logs are purged after
binlog_expire_logs_secondsseconds. Possible purges happen at startup and at binary log rotation. From MariaDB 10.6.1,binlog_expire_logs_secondsand expire_logs_days are forms of aliases, such that changes to one automatically reflect in the other.Command line:
--binlog-expire-logs-seconds=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0Range:
0to8553600Introduced: MariaDB 10.6.1
binlog_file_cache_size
binlog_file_cache_sizeDescription: Size of in-memory cache that is allocated when reading binary log and relay log files.
Command line:
--binlog-file-cache-size=#Scope: Global, Session
Dynamic: Yes
Data Type:
numericDefault Value:
16384Range:
8192to18446744073709551615
binlog_format
binlog_formatDescription: Determines whether replication is row-based, statement-based or mixed. Statement-based was the default until MariaDB 10.2.3. Be careful of changing the binary log format when a replication environment is already running. See Binary Log Formats. A replica applies any events it gets from the primary, regardless of the binary log format.
binlog_formatonly applies to normal (not replicated) updates.Command line:
--binlog-format=formatScope: Global, Session
Dynamic: Yes
Data Type:
enumerationDefault Value:
MIXEDValid Values:
ROW,STATEMENTorMIXED
binlog_gtid_index
binlog_gtid_indexDescription: Enable the creation of a GTID index for every binlog file, and the use of such index for speeding up GTID lookup in the binlog. See Binlog indexing.
Command line:
--binlog-gtid-index{=0|1}Scope: Global
Dynamic: Yes
Data Type:
booleanDefault Value:
ONIntroduced: MariaDB 11.4
binlog_gtid_index_page_size
binlog_gtid_index_page_sizeDescription: Page size to use for the binlog GTID index. See Binlog indexing.
Command line:
--binlog-gtid-index-page-size=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
4096Range:
64to16777216Introduced: MariaDB 11.4
binlog_gtid_index_span_min
binlog_gtid_index_span_minDescription: Control sparseness of the binlog GTID index. If set, at most one index record is added for every
Nbytes of binlog file written, to reduce the size of the index. Normally, this does not need tuning. See Binlog indexing.Command line:
--binlog-gtid-index-span-min=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
65536Range:
1to1073741824Introduced: MariaDB 11.4
binlog_ignore_db
binlog_ignore_dbDescription: This option allows you to configure a replication primary to not write statements and transactions affecting databases that match a specified name into its binary log. Since the filtered statements or transactions are not be present in the binary log, its replicas are not able to replicate them.
This option does not work with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
When setting it on the command-line or in a server option group in an option file, the option does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the option multiple times.
See Replication Filters for more information.
Command line:
--binlog-ignore-db=nameScope: Global
Dynamic: No
Data Type:
stringDefault Value: NULL
Introduced: MariaDB 11.2.0
binlog_large_commit_threshold
binlog_large_commit_thresholdDescription: Increases transaction concurrency for large transactions (for instance, those with sizes larger than this value) by using the large transaction's cache file as a new binary log and rotating the active binary log to the large transaction's cache file at commit time. This avoids the default commit logic that copies the transaction cache data to the end of the active binary log file while holding a lock that prevents other transactions from binlogging.
Command line:
--binlog-large-commit-threshold=valScope: Global
Dynamic: Yes
Data Type:
bigint unsignedDefault Value:
134217728Range:
10485760to18446744073709551615Introduced: MariaDB 11.7
binlog_legacy_event_pos
binlog_legacy_event_posDescription: Fill in the
end_log_posfield of all events in the binlog, even when doing so costs performance. Can be used in case some old application needs it for backwards compatibility. Setting this option can hurt binlog scalability.Command line:
--binlog-legacy-event-pos{=0|1}Scope: Global
Dynamic: Yes
Data Type:
booleanDefault Value:
OFFIntroduced: MariaDB 11.4
binlog_optimize_thread_scheduling
binlog_optimize_thread_schedulingDescription: Run fast part of group commit in a single thread, to optimize kernel thread scheduling. On by default. Disable to run each transaction in group commit in its own thread, which can be slower at very high concurrency. This option is mostly for testing one algorithm versus another, and it should not normally be necessary to change it. Deprecated in MariaDB 11.7, as the option was initially added to provide a safe alternative for the newly added binlog group commit logic, such that when
0, it would disable a leader thread from performing the binlog write for all transactions that are a part of the group commit. Problems related to the binlog group commit optimization are expected to be addressed by now, so the option has been deprecated and is going to be removed in future.Command line:
--binlog-optimize-thread-schedulingor--skip-binlog-optimize-thread-schedulingScope: Global
Dynamic: No
Data Type:
booleanDefault Value:
ONDeprecated: MariaDB 11.7
binlog_row_event_fragment_threshold
binlog_row_event_fragment_threshold Description: When a
Rows_log_eventexceeds this threshold, it is fragmented into multiplePartial_rows_log_eventevents in the binary log, each of it configured to maximum size. That is, allPartial_rows_log_eventevents up to the last in the group have this configured maximum size, and the last event takes the remaining size. This is relevant for events that would surpass theslave_max_allowed_packetlength when sending to the replica, and thereby a sensible value would reflect the slave's configuredslave_max_allowed_packetsize.Command line:
--binlog-row-event-fragment-thresholdScope: Global
Dynamic: Yes
Data Type:
INT unsignedDefault Value: 1GB
Introduced: MariaDB 12.3
binlog_row_event_max_size
binlog_row_event_max_sizeDescription: The maximum size of a row-based binary log event in bytes. Rows are grouped into events smaller than this size if possible. The value has to be a multiple of 256.
Command line:
--binlog-row-event-max-size=valScope: Global, Session
Dynamic: Yes
Data Type:
numericDefault Value:
8192Range:
256to4294967040(in multiples of 256)Introduced: MariaDB 11.2.0
binlog_row_image
binlog_row_imageDescription: Controls the logging format in row-based replication. In row-based replication (the variable has no effect with statement-based replication), each row change event contains an image for matching against when choosing the row to be updated, and another image containing the changes. Before the introduction of this variable, all columns were logged for both of these images. In certain circumstances, this is not necessary, and memory, disk and network resources can be saved by partial logging. Note that to safely change this setting from the default, the table being replicated to must contain identical primary key definitions, and columns must be present, in the same order, and use the same data types as the original table. If these conditions are not met, matches may not be correctly determined and updates and deletes may diverge on the replica, with no warnings or errors returned.
FULL: All columns in the before and after image are logged. This is the default, and the only behavior in earlier versions.NOBLOB: mariadbd avoids logging blob and text columns whenever possible (eg, blob column was not changed or is not part of primary key).MINIMAL: A PK equivalent (PK columns or full row if there is no PK in the table) is logged in the before image, and only changed columns are logged in the after image.FULL_NODUP: All columns are logged in the before image but only changed columns or all columns of inserted record are logged in the after image. This is essentially the same asFULL, but takes less space. From MariaDB 11.4.
Command line:
--binlog-row-image=valueScope: Global, Session
Dynamic: Yes
Data Type:
enumDefault Value:
FULLValid Values:
<= MariaDB 11.3:
FULL,NOBLOBorMINIMAL>=MariaDB 11.4:
FULL,NOBLOB,MINIMALorFULL_NODUP
binlog_row_metadata
binlog_row_metadataDescription: Controls the format used for binlog metadata logging – value is one of the following:
NO_LOG: No metadata is logged (default).MINIMAL: Only metadata required by a replica is logged.FULL: All metadata is logged.
Command line:
--binlog-row-metadata=*value*Scope: Global
Dynamic: Yes
Data Type:
enumDefault Value:
NO_LOGValid Values:
NO_LOG,MINIMAL,FULLIntroduced: MariaDB 10.5.0
binlog_space_limit
binlog_space_limitDescription: Alias for max_binlog_total_size.
Introduced: MariaDB 11.4
binlog_stmt_cache_size
binlog_stmt_cache_sizeDescription: If the binary log is active, this variable determines the size in bytes of the cache holding a record of binary log changes outside of a transaction. The variable binlog_cache_size, determines the cache size for binary log statements inside a transaction. The binlog_stmt_cache_disk_use and binlog_stmt_cache_use server status variables indicates whether this variable needs to be increased (you want a low ratio of
binlog_stmt_cache_disk_usetobinlog_stmt_cache_use).Command line:
--binlog-stmt-cache-size=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
32768Range - 32 bit:
4096to4294967295Range - 64 bit:
4096to18446744073709547520
create_tmp_table_binlog_formats
create_tmp_table_binlog_formatsDescription: The binary logging formats under which the primary logs
CREATE TEMPORARYstatements to the binary log. IfCREATE TEMPORARYis not logged, all usage of the temporary table is logged inROWformat. Allowed values areSTATEMENTorMIXED,STATEMENT.Command line:
--create-tmp-table-binlog-formats=#Scope: Global, Session
Dynamic: Yes
Data Type:
enumDefault Value:
STATEMENTValid Values:
STATEMENTorMIXED,STATEMENTIntroduced: MariaDB 12.0
default_master_connection
default_master_connectionDescription: In multi-source replication, specifies which connection is used for commands and variables if you don't specify a connection.
Command line: None
Scope: Session
Dynamic: Yes
Data Type:
stringDefault Value:
''(empty string)
encrypt_binlog
encrypt_binlogDescription: Encrypt binary logs (including relay logs). See Data at Rest Encryption and Encrypting Binary Logs.
Command line:
--encrypt-binlog[={0|1}]Scope: Global
Dynamic: No
Data Type:
booleanDefault Value:
OFF
expire_logs_days
expire_logs_daysDescription: Number of days after which the binary log can be automatically removed. By default, 0, or no automatic removal. When using replication, should always be set higher than the maximum lag by any replica. Removals take place when the server starts up, when the binary log is flushed, when the next binary log is created after the previous one reaches the maximum size, or when running PURGE BINARY LOGS. Units are 1/1000000 precision (double).
expire_logs_daysand binlog_expire_logs_seconds are forms of aliases, such that changes to one automatically reflect in the other. Some container configs explicitly setexpire_logs_daysto 10, rather than leave it as the default, zero.Command line:
--expire-logs-days=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0.000000Range:
0to99
init_slave
init_slaveDescription: Similar to init_connect, but the string contains one or more SQL statements (separated by semicolons) that are executed by a replica server each time the SQL thread starts. These statements are only executed after the acknowledgement is sent to the replica and START SLAVE completes.
Command line:
--init-slave=nameScope: Global
Dynamic: Yes
Data Type:
stringRelated variables: init_connect
log_bin
log_binDescription: Whether binary logging is enabled or not. If the
--log-binoption is used,log_binis set toON, otherwise toOFF. If nonameoption is given for--log-bin,datadir/log-basename-binordatadir/mysql-binare used (the latter is used if --log-basename is not specified). We strongly recommend you use either--log-basename, or to specify a filename to ensure that replication doesn't stop if the real hostname of the computer changes. The name option can optionally include an absolute path. If no path is specified, the log is written to the data directory. The name can optionally include the file extension; if it does, it is stripped, and only the file basename is used.Command line:
--log-bin[=name]Scope: Global
Dynamic: No
Data Type:
booleanDefault Value:
OFFRelated variables: sql_log_bin
log_bin_basename
log_bin_basenameDescription: The full path of the binary log file names, excluding the extension. Its value is derived from the rules specified in
log_binsystem variable. This is a read-only variable only, there is no corresponding configuration file setting or command line option by the same name, uselog_binto set the basename path instead.Command line:
No commandline optionScope: Global
Dynamic: No
Data Type:
stringDefault Value: None
Dynamic:
No
log_bin_compress
log_bin_compressDescription: Whether or not the binary log can be compressed.
0(the default) means no compression. See Compressing Events to Reduce Size of the Binary Log.Command line:
--log-bin-compressScope: Global
Dynamic: Yes
Data Type:
booleanDefault Value:
OFF
log_bin_compress_min_len
log_bin_compress_min_lenDescription: Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See Compressing Events to Reduce Size of the Binary Log.
Command line:
--log-bin-compress-min-lenScope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
256Range:
10to1024
log_bin_index
log_bin_indexDescription: File that holds the names for last binlog files. If --log-basename is also set,
log_bin_indexshould be placed after in the config files. Later settings override earlier settings, solog-basenameoverride any earlier log file name settings.Command line:
--log-bin-index=nameScope: Global
Dynamic: No
Data Type:
stringDefault Value: None
log_bin_trust_function_creators
log_bin_trust_function_creatorsDescription: Functions and triggers can be dangerous when used with replication. Certain types of functions and triggers may have unintended consequences when the statements are applied on a replica. For that reason, there are some restrictions on the creation of functions and triggers when the binary log is enabled by default, such as:
When
log_bin_trust_function_creatorsisOFFand log_bin isON, CREATE FUNCTION and ALTER FUNCTION statements trigger an error if the function is defined with any of theNOT DETERMINISTIC,CONTAINS SQLorMODIFIES SQL DATAcharacteristics.This means that when
log_bin_trust_function_creatorsisOFFand log_bin isON, CREATE FUNCTION and ALTER FUNCTION statements only succeed if the function is defined with any of theDETERMINISTIC,NO SQL, orREADS SQL DATAcharacteristics.Setting
log_bin_trust_function_creatorstoONremoves these requirements around functions characteristics and the SUPER privileges.See Binary Logging of Stored Routines for more information.
Command line:
--log-bin-trust-function-creators[={0|1}]Scope: Global
Dynamic: Yes
Data Type:
booleanDefault Value:
OFF
log_slow_slave_statements
log_slow_slave_statementsDescription: Log slow statements executed by replica thread to the slow log if it is open.
Command line:
--log-slow-slave-statementsScope: Global
Dynamic: Yes
Data Type:
booleanDefault Value:
ON
log_slave_updates
log_slave_updatesDescription: If set to
0, the default, updates on a replica received from a primary during replication are not logged in the replica's binary log. If set to1, they are. The replica's binary log needs to be enabled for this to have an effect. Set to1if you want to daisy-chain the replicas.Command line:
--log-slave-updatesScope: Global
Dynamic: No
Data Type:
booleanDefault Value:
OFF
master_info_file
master_info_fileDescription: The location and name of the file that remembers the master and where the I/O replication thread is in the master's binlogs. Defaults to master.info.
Command line:
--master-info-file=valScope: Global
Dynamic: No
Data Type:
stringDefault Value:
master.infoIntroduced: MariaDB 12.0 (as a system variable, previously it was just an option)
master_verify_checksum
master_verify_checksumDescription: Verify binlog checksums when reading events from the binlog on the primary.
Command line:
--master-verify-checksum=[0|1]Scope: Global
Access Type: Can be changed dynamically
Data Type:
boolDefault Value:
OFF (0)
max_binlog_cache_size
max_binlog_cache_sizeDescription: Restricts the size in bytes used to cache a multi-transactional query. If more bytes are required, a
Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storageerror is generated. If the value is changed, current sessions are unaffected, only sessions started subsequently. See max_binlog_stmt_cache_size and binlog_cache_size.Command line:
--max-binlog-cache-size=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
18446744073709547520Range:
4096to18446744073709547520
max_binlog_size
max_binlog_sizeDescription: If the binary log exceeds this size in bytes after a write, the server rotates it by closing it and opening a new binary log. Single transactions are always stored in the same binary log, so the server waits for open transactions to complete before rotating. This figure also applies to the size of relay logs if max_relay_log_size is set to zero.
Command line:
--max-binlog-size=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
1073741824(1GB)Range:
4096to1073741824(4KB to 1GB)
max_binlog_stmt_cache_size
max_binlog_stmt_cache_sizeDescription: Restricts the size used to cache non-transactional statements. See max_binlog_cache_size and binlog_stmt_cache_size.
Command line:
--max-binlog-stmt-cache-size=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
18446744073709547520(64 bit),4294963200(32 bit)Range:
4096to18446744073709547520
max_binlog_total_size
max_binlog_total_sizeDescription: Maximum space in bytes to use for all binary logs. Extra logs are deleted on server start, log rotation,
FLUSH LOGSstatements, or when writing to binlog. Default is0, which means no size restrictions. See also slave_connections_needed_for_purge.Command line:
--max-binlog-size=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0Range:
0to18446744073709551615Introduced: MariaDB 11.4
max_relay_log_size
max_relay_log_sizeDescription: The replica rotates its relay log if it exceeds this size after a write. If set to
0, the max_binlog_size setting is used instead. Previously global only, since the implementation of multi-source replication, it can be set per session as well.Command line:
--max-relay-log-size=#Scope: Global, Session
Dynamic: Yes
Data Type:
numericDefault Value:
0Range:
0, or4096 to 1073741824(4KB to 1GB)
read_binlog_speed_limit
read_binlog_speed_limitDescription: Used to restrict the speed at which a replica can read the binlog from the primary. This can be used to reduce the load on a primary if many replicas need to download large amounts of old binlog files at the same time. The network traffic is restricted to the specified number of kilobytes per second.
Command line:
--read-binlog-speed-limit=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0(no limit)Range:
0to18446744073709551615
relay_log
relay_logDescription: Relay log basename. If not set, the basename of the files is
hostname-relay-bin, or derived from --log-basename. If --log-basename is also set,relay_logshould be placed after in the config files. Later settings override earlier settings, solog-basenameoverrides any earlier log file name settings.Command line:
--relay-log=file_nameScope: Global
Dynamic: No
Data Type:
filenameDefault Value:
''(none)
relay_log_basename
relay_log_basenameDescription: The full path of the relay log file names, excluding the extension. Its value is derived from the relay-log variable value.
Command line:
No commandline optionScope: Global
Dynamic: No
Data Type:
stringDefault Value: None
Dynamic:
No
relay_log_index
relay_log_indexDescription: Name and location of the relay log index file, the file that keeps a list of the last relay logs. Defaults to hostname-relay-bin.index, or derived from --log-basename. If --log-basename is also set,
relay_log_indexshould be placed after in the config files. Later settings override earlier settings, solog-basenameoverrides any earlier log file name settings.Command line:
--relay-log-index=nameScope: Global
Dynamic: No
Data Type:
stringDefault Value: None
relay_log_info_file
relay_log_info_fileDescription: Name and location of the file where the
RELAY_LOG_FILEandRELAY_LOG_POSoptions (i.e. the relay log position) for the CHANGE MASTER statement are written. The replica's SQL thread keeps this relay log position updated as it applies events.See CHANGE MASTER TO: Option Persistence for more information.
Command line:
--relay-log-info-file=file_nameScope: Global
Dynamic: No
Data Type:
stringDefault Value:
relay-log.info
relay_log_purge
relay_log_purgeDescription: If set to
1(the default), relay logs is purged as soon as they are no longer necessary.Command line:
--relay-log-purge={0|1}Scope: Global
Dynamic: Yes
Data Type:
booleanDefault Value:
ONNote: In MySQL and in MariaDB before version 10.0.8 this variable was silently changed if you did CHANGE MASTER.
relay_log_recovery
relay_log_recoveryDescription: If set to
1(0is default), on startup the replica drops all relay logs that haven't yet been processed, and retrieve relay logs from the primary. Can be useful after the replica has crashed to prevent the processing of corrupt relay logs. relay_log_recovery should always be set together with relay_log_purge. Settingrelay-log-recovery=1withrelay-log-purge=0can cause the relay log to be read from files that were not purged, leading to data inconsistencies.Command line:
--relay-log-recoveryScope: Global
Dynamic: Yes
Data Type:
booleanDefault Value:
OFF
relay_log_space_limit
relay_log_space_limitDescription: Specifies the maximum space to be used for the relay logs. The IO thread stops until the SQL thread has cleared the backlog. By default
0, or no limit.Command line:
--relay-log-space-limit=#Scope: Global
Dynamic: No
Data Type:
numericDefault Value:
0Range - 32 bit:
0to4294967295Range - 64 bit:
0to18446744073709547520
replicate_annotate_row_events
replicate_annotate_row_eventsDescription: Tells the replica to reproduce annotate_rows_events received from the primary in its own binary log. This option is sensible only when used in tandem with the log_slave_updates option.
Command line:
--replicate-annotate-row-eventsScope: Global
Dynamic: No
Data Type:
booleanDefault Value:
ON
replicate_do_db
replicate_do_dbDescription: This system variable allows you to configure a replica to apply statements and transactions affecting databases that match a specified name.
This system variable does not work with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
When setting it dynamically with SET GLOBAL, the system variable accepts a comma-separated list of filters.
When setting it on the command-line or in a server option group in an option file, the system variable does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the system variable multiple times.
See Replication Filters for more information.
Command line:
--replicate-do-db=nameScope: Global
Dynamic: Yes
Data Type:
stringDefault Value:
''(empty)
replicate_do_table
replicate_do_tableDescription: This system variable allows you to configure a replica to apply statements and transactions that affect tables that match a specified name. The table name is specified in the format:
dbname.tablename.This system variable does not work with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
When setting it dynamically with SET GLOBAL, the system variable accepts a comma-separated list of filters.
When setting it on the command-line or in a server option group in an option file, the system variable does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the system variable multiple times.
See Replication Filters for more information.
Command line:
--replicate-do-table=nameScope: Global
Dynamic: Yes
Data Type:
stringDefault Value:
''(empty)
replicate_events_marked_for_skip
replicate_events_marked_for_skipDescription: Tells the replica whether to replicate events that are marked with the
@@skip_replicationflag. See Selectively skipping replication of binlog events for more information.Command line:
--replicate-events-marked-for-skipScope: Global
Dynamic: Yes
Data Type:
enumerationDefault Value:
replicateValid Values:
REPLICATE,FILTER_ON_SLAVE,FILTER_ON_MASTER
replicate_ignore_db
replicate_ignore_dbDescription: This system variable allows you to configure a replica to ignore statements and transactions affecting databases that match a specified name.
This system variable does not work with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
When setting it dynamically with SET GLOBAL, the system variable accepts a comma-separated list of filters.
When setting it on the command-line or in a server option group in an option file, the system variable does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the system variable multiple times.
See Replication Filters for more information.
Command line:
--replicate-ignore-db=nameScope: Global
Dynamic: Yes
Data Type:
stringDefault Value:
''(empty)
replicate_ignore_table
replicate_ignore_tableDescription: This system variable allows you to configure a replica to ignore statements and transactions that affect tables that match a specified name. The table name is specified in the format:
dbname.tablename.This system variable does not work with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
When setting it dynamically with SET GLOBAL, the system variable accepts a comma-separated list of filters.
When setting it on the command-line or in a server option group in an option file, the system variable does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the system variable multiple times.
See Replication Filters for more information.
Command line:
--replicate-ignore-table=nameScope: Global
Dynamic: Yes
Data Type:
stringDefault Value:
''(empty)
replicate_rewrite_db
replicate_rewrite_dbDescription: This option allows you to configure a replica to rewrite database names. It uses the format
primary_database->replica_database. If a replica encounters a binary log event in which the default database (i.e. the one selected by the USE statement) isprimary_database, then the replica applies the event inreplica_databaseinstead.This option does not work with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
This option only affects statements that involve tables. This option does not affect statements involving the database itself, such as CREATE DATABASE, ALTER DATABASE, and DROP DATABASE.
When setting it on the command-line or in a server option group in an option file, the option does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the option multiple times.
See Replication Filters for more information.
Command line:
--replicate-rewrite-db=primary_database->replica_databaseScope: Global
Dynamic: Yes
Data Type:
stringDefault Value:
''(empty)Introduced: MariaDB 10.11.0
replicate_same_server_id
replicate_same_server_idDescription: In replication, if set to 1, do not skip events having our server id. Default value is
0(to break infinite loops in circular replication). Can't be set to1if --log-slave-updates is used.Command line:
--replicate-same-server-id[={0|1}]Scope: Global
Dynamic: No
Data Type:
booleanDefault Value:
OFFIntroduced: MariaDB 12.0 (as a system variable, previously just an option)
replicate_wild_do_table
replicate_wild_do_tableDescription: This system variable allows you to configure a replica to apply statements and transactions that affect tables that match a specified wildcard pattern. The wildcard pattern uses the same semantics as the LIKE operator.
This system variable works with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
When setting it dynamically with SET GLOBAL, the system variable accepts a comma-separated list of filters.
When setting it on the command-line or in a server option group in an option file, the system variable does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the system variable multiple times.
See Replication Filters for more information.
Command line:
--replicate-wild-do-table=nameScope: Global
Dynamic: Yes
Data Type:
stringDefault Value:
''(empty)
replicate_wild_ignore_table
replicate_wild_ignore_tableDescription: This system variable allows you to configure a replica to ignore statements and transactions that affect tables that match a specified wildcard pattern. The wildcard pattern uses the same semantics as the LIKE operator.
This system variable work with cross-database updates with statement-based logging. See the Statement-Based Logging section for more information.
When setting it dynamically with SET GLOBAL, the system variable accepts a comma-separated list of filters.
When setting it on the command-line or in a server option group in an option file, the system variable does not accept a comma-separated list. If you would like to specify multiple filters, then you need to specify the system variable multiple times.
See Replication Filters for more information.
Command line:
--replicate-wild-ignore-table=nameScope: Global
Dynamic: Yes
Data Type:
stringDefault Value:
''(empty)
replication_connect_retry
replication_connect_retryDescription: When a replica tries to connect to the primary, it automatically waits for a second between connection retry attempts. This value is implemented when a
CHANGE MASTER TOstatement usesMASTER_CONNECT_RETRY = DEFAULT.Command line:
--replication-connect-retry=#Scope: Global
Data Type:
numericDefault Value: 60
replication_retry_count
replication_retry_countDescription: The default number of connection retries that a replica does before failing. This value is applied when a
CHANGE MASTER TOstatement usesMASTER_RETRY_COUNT = DEFAULT.Command line:
--replication-retry-count=#Scope: Global
Data Type:
numericDefault Value: 0
replication_heartbeat_period
replication_heartbeat_periodDescription: The default number of connection retries that a replica does before failing. This value is applied when a
CHANGE MASTER TOstatement usesMASTER_RETRY_COUNT = DEFAULT.Command line:
--replication-heartbeat-period=#Scope: Global
Data Type:
numericDefault Value: 0
replication_ssl
replication_sslDescription: By default, SLS/TLS is enabled or disabled for replication connections. This value is applied when
MASTER_SSL = DEFAULTis used in aCHANGE MASTER TOstatement.Command line:
--replication-ssl={0|1}Scope: Global
Data Type:
booleanDefault Value: 0
replication_ssl_ca
replication_ssl_caDescription: The default path to a PEM file that contains trusted CA certificates for SSL/TLS replication connections. This value can be used as the default in the
CHANGE MASTER TOstatement when theMASTER_SSL_CA = DEFAULTis specified.Command line:
--replication-ssl-ca=filenameScope: Global
Data Type: s
tringDefault Value: empty
replication_ssl_capath
replication_ssl_capathDescription: Specifies the path that contains trusted CA certificates for SSL/TLS replication connections. This value can be used as the default in the
CHANGE MASTER TOstatement whenMASTER_SSL_CAPATH = DEFAULTis specified.Command line:
--replication-ssl-capath=path_nameScope: Global
Data Type:
stringDefault Value: empty
replication_ssl_cert
replication_ssl_certDescription: Sets the default path to the client SSL/TLS certificate file used for replication connections. When
MASTER_SSL_CERT = DEFAULTis specified, in aCHANGE MASTER TOstatement, this value is used.Command line:
--replication-ssl-cert=filenameScope: Global
Data Type:
stringDefault Value: empty
replication_ssl_key
replication_ssl_keyDescription: Sets the default path to the client SSL/TLS private key file for replication connections. If
MASTER_SSL_KEY = DEFAULTis specified in theCHANGE MASTER TOstatement, the system applies this value.Command line:
--replication-ssl-key=filenameScope: Global
Data Type:
stringDefault Value: empty
replication_ssl_cipher
replication_ssl_cipherDescription: Specifies the default list of permitted SSL cipher suites for replication connections. When
MASTER_SSL_CIPHER = DEFAULTis specified in aCHANGE MASTER TOstatement, this value is used.Command line:
--replication-ssl-cipher=filenameScope: Global
Data Type:
stringDefault Value: empty
replication_ssl_crl
replication_ssl_crlDescription: Specifies the default path to a certificate revocation list (CRL) file for SSL/TLS replication connections. When
MASTER_SSL_CRL = DEFAULTis specified in aCHANGE MASTER TOstatement, this value is used.Command line:
--replication-ssl-crl=file_nameScope: Global
Data Type:
stringDefault Value: empty
replication_ssl_crlpath
replication_ssl_crlpathDescription: Specifies the default path containing CRL file for SSL/TLS replication connections. When
MASTER_SSL_CRLPATH = DEFAULTis specified in aCHANGE MASTER TOstatement, this value is used.Command line:
--replication-ssl-crlpath=directorynameScope: Global
Data Type:
stringDefault Value: empty
replication_ssl_verify_server_cert
replication_ssl_verify_server_certDescription: When enabled, the replica verifies the server's SSL certificate on replication connections. When
MASTER_SSL_VERIFY_SERVER_CERT = DEFAULTis mentioned in aCHANGE MASTER TOstatement, this value is used.Command line:
--replication-ssl-verify-server-cert={0|1}Scope: Global
Data Type:
booleanDefault Value: 1 (verify)
replication_use_gtid
replication_use_gtidDescription: Determines the default GTID mode for replication connections. When
MASTER_USE_GTID = DEFAULTis specified in aCHANGE MASTER TOstatement, this value is applied.Command line:
--replication-use-gtid=nameScope: Global
Data Type:
enumeration(current_pos,salve_pos,no)Default Value: no
report_host
report_hostDescription: The host name or IP address the replica reports to the primary when it registers. If left unset, the replica does not register itself. Reported by SHOW SLAVE HOSTS. Note that it is not sufficient for the primary to simply read the IP of the replica from the socket once the replica connects. Due to NAT and other routing issues, that IP may not be valid for connecting to the replica from the primary or other hosts.
Command line:
--report-host=host_nameScope: Global
Dynamic: No
Data Type:
string
report_password
report_passwordDescription: Replica password reported to the primary when it registers. Reported by SHOW SLAVE HOSTS if
--show-slave-auth-infois set. This password has no connection with user privileges or with the replication user account password.Command line:
--report-password=passwordScope: Global
Dynamic: No
Data Type:
string
report_port
report_portDescription: The command line option sets the TCP/IP port for connecting to the replica that is reported to the replicating primary during the replica's registration. Viewing the variable shows this value.
Command line:
--report-port=#Scope: Global
Dynamic: No
Data Type:
numericDefault Value:
0Range:
0to65535
report_user
report_userDescription: Replica's account user name reported to the primary when it registers. Reported by SHOW SLAVE HOSTS if
--show-slave-auth-infois set. This username has no connection with user privileges or with the replication user account.Command line:
--report-user=nameScope: Global
Dynamic: No
Data Type:
string
server_id
server_idDescription: This system variable is used with MariaDB replication to identify unique primary and replica servers in a topology. This system variable is also used with the binary log to determine which server a specific transaction originated on.
When MariaDB replication is used with standalone MariaDB Server, each server in the replication topology must have a unique
server_idvalue.When MariaDB replication is used with MariaDB Galera Cluster, see Using MariaDB Replication with MariaDB Galera Cluster: Setting server_id on Cluster Nodes for more information on how to set the
server_idvalues.
Command line:
--server-id =#Scope: Global, Session
Dynamic: Yes
Data Type:
numericDefault Value:
1Range:
1to4294967295
show_slave_auth_info
show_slave_auth_infoDescription: Show user and password in SHOW REPLICA HOSTS on this primary.
Command line:
--show-slave-auth-info[={0|1}]Scope: Global
Dynamic: No
Data Type:
booleanDefault Value:
OFFIntroduced: MariaDB 12.0 (as a system variable, previously it was just an option)
skip_parallel_replication
skip_parallel_replicationDescription: If set when a transaction is written to the binlog, parallel apply of that transaction is avoided on a replica where slave_parallel_mode is not
aggressive. Can be used to avoid unnecessary rollback and retry for transactions that are likely to cause a conflict if replicated in parallel. See parallel replication.Command line: None
Scope: Session
Dynamic: Yes
Data Type:
booleanDefault Value:
OFF
skip_replication
skip_replicationDescription: Changes are logged into the binary log with the @@skip_replication flag set. Such events are not be replicated by replica that run with
--replicate-events-marked-for-skipset different from its default ofREPLICATE. See Selectively skipping replication of binlog events for more information.Command line: None
Scope: Session
Dynamic: Yes
Data Type:
booleanDefault Value:
OFF
slave_abort_blocking_timeout
slave_abort_blocking_timeoutDescription: Maximum time a replica DDL waits for a blocking
SELECTor other user query until that query is aborted. The argument is treated as a decimal value with nanosecond precision. The variable is intended to solve a problem where a long-runningSELECTon a replica causes DDL to wait for thatSELECTto complete, potentially causing massive replica lag.Command line:
--slave-abort-blocking-timeout=numScope: Global
Dynamic: Yes
Data Type:
doubleDefault Value:
31536000.000000Range:
0to31536000Introduced: MariaDB 11.7
slave_compressed_protocol
slave_compressed_protocolDescription: If set to
1(0is the default), uses compression for the replica/primary protocol if both primary and replica support this.Command line:
--slave-compressed-protocolScope: Global
Dynamic: Yes
Data Type:
booleanDefault Value:
0
slave_connections_needed_for_purge
slave_connections_needed_for_purgeDescription: Minimum number of connected replicas required for automatic binary log purge with max_binlog_total_size, binlog_expire_logs_seconds or expire_logs_days. Change of the value triggers an attempt to purging, though without binlog rotation, with the purged set of files satisfying the above two parameters and the value that is set itself.
Command line:
--slave-connections-needed-for-purge=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
1;0on Galera cluster nodes.Range:
0to18446744073709551615Introduced: MariaDB 11.4
slave_ddl_exec_mode
slave_ddl_exec_modeDescription: Modes for how replication of DDL events should be executed. Legal values are
STRICTandIDEMPOTENT(default). InIDEMPOTENTmode, the replica does not stop for failed DDL operations that would not cause a difference between the primary and the replica. In particular CREATE TABLE is treated as CREATE OR REPLACE TABLE and DROP TABLE is treated asDROP TABLE IF EXISTS.Command line:
--slave-ddl-exec-mode=nameScope: Global
Dynamic: Yes
Data Type:
enumerationDefault Value:
IDEMPOTENTValid Values:
IDEMPOTENT,STRICT
slave_domain_parallel_threads
slave_domain_parallel_threadsDescription: When set to a non-zero value, each replication domain in one primary connection can reserve at most that many worker threads at any one time, leaving the rest (up to the value of slave_parallel_threads) free for other primary connections or replication domains to use in parallel. See Parallel Replication for details.
Command line:
--slave-domain-parallel-threads=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0Valid Values:
0to16383
slave_exec_mode
slave_exec_modeDescription: Determines the mode used for replication error checking and conflict resolution.
STRICTmode is the default, and catches all errors and conflicts.IDEMPOTENTmode suppresses duplicate key or no key errors, which can be useful in certain replication scenarios, such as when there are multiple primaries, or circular replication.Scope: Global
Dynamic: Yes
Data Type:
enumerationDefault Value:
IDEMPOTENT(NDB),STRICT(All)Valid Values:
IDEMPOTENT,STRICT
slave_load_tmpdir
slave_load_tmpdirDescription: Directory where the replica stores temporary files for replicating LOAD DATA INFILE statements. If not set, the replica uses tmpdir. Should be set to a disk-based directory that survives restarts, or else replication can fail.
Command line:
--slave-load-tmpdir=pathScope: Global
Dynamic: No
Data Type:
file nameDefault Value:
/tmp
slave_max_allowed_packet
slave_max_allowed_packetDescription: Maximum packet size in bytes for replica SQL and I/O threads. This value overrides max_allowed_packet for replication purposes. Set in multiples of 1024 (the minimum) up to 1GB
Command line:
--slave-max-allowed-packet=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
1073741824Range:
1024to1073741824
slave_max_statement_time
slave_max_statement_timeDescription: A query that has taken more than this in seconds to run on the replica is aborted. The argument is treated as a decimal value with microsecond precision. A value of
0(default) means no timeout.Command line:
--slave-max-statement-time=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0.000000Range:
0to31536000Introduced: MariaDB 10.10
slave_net_timeout
slave_net_timeoutDescription: Time in seconds for the replica to wait for more data from the primary before considering the connection broken, after which it aborts the read and attempt to reconnect. The retry interval is determined by the
MASTER_CONNECT_RETRYopen for the CHANGE MASTER statement, while the maximum number of reconnection attempts is set by the master-retry-count option. The first reconnect attempt takes place immediately.Command line:
--slave-net-timeout=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
60 (1 minute)
Range:
1to31536000
slave_parallel_max_queued
slave_parallel_max_queuedDescription: When parallel_replication is used, the SQL thread reads ahead in the relay logs, queueing events in memory while looking for opportunities for executing events in parallel. This system variable sets a limit for how much memory it uses for this.
The configured value of this system variable is actually allocated for each worker thread, so the total allocation is actually equivalent to the following:
This system variable is only meaningful when parallel replication is configured (i.e. when slave_parallel_threads >
0).See Parallel Replication: Configuring the Maximum Size of the Parallel Slave Queue for more information.
Command line:
--slave-parallel-max-queued=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
131072Range:
0to2147483647
slave_parallel_mode
slave_parallel_modeDescription: Controls what transactions are applied in parallel when using parallel replication.
optimistic: tries to apply most transactional DML in parallel and handles any conflicts with rollback and retry. See optimistic mode.conservative: limits parallelism in an effort to avoid any conflicts. See conservative mode.aggressive: tries to maximize the parallelism, possibly at the cost of increased conflict rate.minimal: only parallelizes the commit steps of transactions.nonedisables parallel apply completely.
Command line: None
Scope: Global
Dynamic: Yes
Data Type:
enumDefault Value:
optimistic(>= MariaDB 10.5.1),conservative(<= MariaDB 10.5.0)Valid Values:
conservative,optimistic,none,aggressiveandminimal
slave_parallel_threads
slave_parallel_threadsDescription: This system variable is used to configure parallel replication.
If this system variable is set to a value greater than
0, then its value determines how many replica worker threads are created to apply binary log events in parallel.If this system variable is set to
0(which is the default value), no replica worker threads are created. Instead, when replication is enabled, binary log events are applied by the replica's SQL thread.The replica threads must be stopped in order to change this option's value dynamically.
Events that were logged with GTIDs with different gtid_domain_id values can be applied in parallel in an out-of-order manner. Each gtid_domain_id can use the number of threads configured by slave_domain_parallel_threads.
Events that were group-committed on the primary can be applied in parallel in an in-order manner, and the specific behavior can be configured by setting slave_parallel_mode.
Command line:
--slave-parallel-threads=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0Range:
0to16383
slave_parallel_workers
slave_parallel_workersDescription: Alias for slave_parallel_threads.
Command line:
--slave-parallel-workers=#
slave_run_triggers_for_rbr
slave_run_triggers_for_rbrDescription: See Running triggers on the slave for Row-based events for a description and use-case for this setting.
Command line:
--slave-run-triggers-for-rbr=valueScope: Global
Dynamic: Yes
Data Type:
enumDefault Value:
NOValid Values:
NO,YES,LOGGING, orENFORCE(>= MariaDB 10.5.2)
slave_skip_errors
slave_skip_errorsDescription: When an error occurs on the replica, replication usually halts. This option permits a list of error codes to ignore, and for which replication continues. This option should never be needed in normal use, and careless use could lead to replica that are out of sync with primaries. Error codes are in the format of the number from the replica error log. Using
allas an option permits the replica the keep replicating no matter what error it encounters, an option you would never normally need in production, and which could rapidly lead to data inconsistencies. A count of these is kept in slave_skipped_errors.Command line:
--slave-skip-errors=[error_code1,error_code2,...|all|ddl_exist_errors]Scope: Global
Dynamic: No
Data Type:
stringDefault Value:
OFFValid Values:
[list of error codes],ALL,OFF
slave_sql_verify_checksum
slave_sql_verify_checksumDescription: Verify binlog checksums when the replica SQL thread reads events from the relay log.
Command line:
--slave-sql-verify-checksum=[0|1]Scope: Global
Access Type: Can be changed dynamically
Data Type:
boolDefault Value:
ON (1)
slave_transaction_retries
slave_transaction_retriesDescription: Number of times a replication replica retries to execute an SQL thread after it fails due to InnDB deadlock or by exceeding the transaction execution time limit. If after this number of tries the SQL thread has still failed to execute, the replica stops with an error. See also the innodb_lock_wait_timeout system variable.
Command line:
--slave-transaction-retries=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
10Range - 32 bit:
0to4294967295Range - 64 bit:
0to18446744073709547520
slave_transaction_retry_errors
slave_transaction_retry_errorsDescription: When an error occurs during a transaction on the replica, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout is retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable. This is particularly useful in some Spider setups. Some recommended errors to retry for Spider are 1020, 1158, 1159, 1160, 1161, 1429, 2013, 12701 (these are in the default value in recent versions).
Command line:
--slave-transaction_retry-errors=[error_code1,error_code2,...]Scope: Global
Dynamic: No
Data Type:
stringDefault Value:
1158,1159,1160,1161,1205,1213,1020,1429,2013,12701(>= MariaDB 10.6.18, MariaDB 10.11.8, MariaDB 11.0.6, MariaDB 11.1.5, MariaDB 11.2.4, MariaDB 11.4.2)1158,1159,1160,1161,1205,1213,1429,2013,12701(>= MariaDB 10.4.5)
Valid Values:
comma-separated list of error codesIntroduced: MariaDB 10.3.3
slave_transaction_retry_interval
slave_transaction_retry_intervalDescription: Interval in seconds for the replica SQL thread to retry a failed transaction due to a deadlock, elapsed lock waits timeout or an error listed in slave_transaction_retry_errors. The interval is calculated as
max(slave_transaction_retry_interval, min(retry_count, 5)).Command line:
--slave-transaction-retry-interval=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0Range:
0to3600
slave_type_conversions
slave_type_conversionsDescription: Determines the type conversion mode on the replica when using row-based replication, including replications in MariaDB Galera cluster. Multiple options can be set, delimited by commas. If left empty, the default, type conversions are disallowed. The variable is dynamic and a change in its value takes effect immediately. This variable tells the server what to do if the table definition is different between the primary and replica (for example a column has a data type of
INTon the primary andBIGINTon the replica).ALL_NON_LOSSYmeans that all safe conversions (no data loss) are allowed.ALL_LOSSYmeans that all lossy conversions are allowed (for example 'bigint' to 'int'). This, however, does not imply that safe conversions (non-lossy) are allowed as well. In order to allow all conversions, one needs to allow both lossy as well as non-lossy conversions by setting this variable toALL_NON_LOSSY,ALL_LOSSY.Empty (default) means that the server should give an error and replication should stop if the table definition is different between the primary and replica.
Command line:
--slave-type-conversions=setScope: Global
Dynamic: Yes
Data Type:
setDefault Value:
Empty variableValid Values:
ALL_LOSSY,ALL_NON_LOSSY, empty
sql_log_bin
sql_log_binDescription: If set to 0 (1 is the default), no logging to the binary log is done for the client. Only clients with the
SUPERprivilege can update this variable. Does not affect the replication of events in a Galera cluster. Note thatsql_log_binhas no effect if log_bin is not set.Scope: Session
Dynamic: Yes
Data Type:
booleanDefault Value:
1Related variables: log_bin
sql_slave_skip_counter
sql_slave_skip_counterDescription: Number of events that a replica skips from the primary. If this would cause the replica to begin in the middle of an event group, the replica instead starts from the beginning of the next event group. See SET GLOBAL sql_slave_skip_counter.
Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0
sync_binlog
sync_binlogDescription: MariaDB synchronizes its binary log file to disk after this many events. The default is
0, in which case the operating system handles flushing the file to disk.1is the safest, but slowest, choice, since the file is flushed after each write. If autocommit is enabled, there is one write per statement, otherwise there's one writes per transaction. If the disk has cache backed by battery, synchronization is fast, and a more conservative number can be chosen.Command line:
--sync-binlog=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
0Range:
0to4294967295
sync_master_info
sync_master_infoDescription: A replication replica synchronizes its master.info file to disk after this many events. If set to 0, the operating system handles flushing the file to disk.
Command line:
--sync-master-info=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
10000
sync_relay_log
sync_relay_logDescription: The MariaDB server synchronizes its relay log to disk after the specified number of writes to the log.
1is the safest, but slowest, choice, since the file is flushed after each write. If autocommit is enabled, there is one write per statement, otherwise there's one write per transaction. If the disk has cache backed by battery, synchronization is fast and a more conservative number can be chosen.Command line:
--sync-relay-log=#Scope: Global
Dynamic: Yes
Data Type:
numericDefault Value:
10000
sync_relay_log_info
sync_relay_log_infoDescription: A replication replica synchronizes its
relay-log.infofile to disk after the specified number of transactions.1is the most secure choice, because at most one event can be lost in the event of a crash, but it's also the slowest.Command line:
--sync-relay-log-info=#Scope: Global,
Dynamic: Yes
Data Type:
numericDefault Value:
10000Range:
0to4294967295
See Also
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?

