Replication and Binary Log Server System Variables

You are viewing an old version of this article. View the current version here.

Contents

  1. auto_increment_increment
  2. auto_increment_offset
  3. binlog_cache_size
  4. binlog_checksum
  5. binlog_commit_wait_count
  6. binlog_commit_wait_usec
  7. binlog_direct_non_transactional_updates
  8. binlog_format
  9. binlog_optimize_thread_scheduling
  10. binlog_row_image
  11. binlog_stmt_cache_size
  12. default_master_connection
  13. encrypt_binlog
  14. expire_logs_days
  15. gtid_binlog_pos
  16. gtid_binlog_state
  17. gtid_current_pos
  18. gtid_domain_id
  19. gtid_seq_no
  20. gtid_slave_pos
  21. gtid_strict_mode
  22. init_slave
  23. last_gtid
  24. log_bin
  25. log_bin_basename
  26. log_bin_index
  27. log_bin_trust_function_creators
  28. log_slave_updates
  29. master_retry_count
  30. master_verify_checksum
  31. max_binlog_cache_size
  32. max_binlog_size
  33. max_binlog_stmt_cache_size
  34. max_relay_log_size
  35. relay_log
  36. relay_log_basename
  37. relay_log_index
  38. relay_log_info_file
  39. relay_log_purge
  40. relay_log_recovery
  41. relay_log_space_limit
  42. replicate_annotate_row_events
  43. replicate_do_db
  44. replicate_do_table
  45. replicate_events_marked_for_skip
  46. replicate_ignore_db
  47. replicate_ignore_table
  48. replicate_rewrite_db
  49. replicate_wild_do_table
  50. replicate_wild_ignore_table
  51. report_host
  52. report_password
  53. report_port
  54. report_user
  55. server_id
  56. skip_parallel_replication
  57. skip_replication
  58. slave_compressed_protocol
  59. slave_ddl_exec_mode
  60. slave_domain_parallel_threads
  61. slave_exec_mode
  62. slave_load_tmpdir
  63. slave_max_allowed_packet
  64. slave_net_timeout
  65. slave_parallel_max_queued
  66. slave_parallel_mode
  67. slave_parallel_threads
  68. slave_parallel_workers
  69. slave_run_triggers_for_rbr
  70. slave_skip_errors
  71. slave_sql_verify_checksum
  72. slave_transaction_retries
  73. slave_type_conversions
  74. sql_log_bin
  75. sql_slave_skip_counter
  76. sync_binlog
  77. sync_master_info
  78. sync_relay_log
  79. sync_relay_log_info

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.

Also see mysqld replication options for related options that are not system variables.

See also the Full list of MariaDB options, system and status variables.

auto_increment_increment

  • Description: The increment for all AUTO_INCREMENT values on the server, by default 1. Intended for use in master-to-master replication.
  • Commandline: --auto-increment-increment[=#]
  • Scope: Global, Session
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 1
  • Range: 1 to 65535

auto_increment_offset

  • Description: The offset for all AUTO_INCREMENT values on the server, by default 1. Intended for use in master-to-master replication.
  • Commandline: --auto-increment-offset[=#]
  • Scope: Global, Session
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 1
  • Range: 1 to 65535

binlog_cache_size

  • Description: If the binary log is active, this variable determines the size in bytes of the cache holding a record of binary log changes during a transaction. Since MariaDB 5.5, a separate variable, binlog_stmt_cache_size, has determined the cache size for binary log statements outside of a transaction. The binlog_cache_disk_use and binlog_cache_use server status variables will indicate whether this variable needs to be increased (you want a low ratio of binlog_cache_disk_use to binlog_cache_use).
  • Commandline: --binlog-cache-size=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 32768
  • Range - 32 bit: 4096 to 4294967295
  • Range - 64 bit: 4096 to 18446744073709547520

binlog_checksum


binlog_commit_wait_count

  • Description: For use in parallel replication. The binary log can delay the commit step of a transaction until the given number of transactions are all ready to commit together (group commit). The delay will however not be longer than the value set by binlog_commit_wait_usec. The default value of 0 means 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 slave, but too high a value will decrease the commit throughput. By monitoring the status variable binlog_group_commit_trigger_count (>=MariaDB 10.1.5) it is possible to see how often this is occurring.
  • Starting with MariaDB 10.0.18 and MariaDB 10.1.4: If the server detects that one of the committing transactions T1 holds an InnoDB/XtraDB row lock that another transaction T2 is waiting for, then the commit will complete 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 slave with parallel replication, provided the value of slave_parallel_threads is sufficiently high.
  • Commandline: --binlog-commit-wait-count=#]
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 0
  • Range: 0 - 18446744073709551615
  • Introduced: MariaDB 10.0.5

binlog_commit_wait_usec

  • Description: For use in parallel replication. The binary log can delay the commit step of a transaction by this many microseconds. By monitoring the status variable binlog_group_commit_trigger_timeout (>=MariaDB 10.1.5) 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 will be terminated, though. Thus, this setting only takes effect if binlog_commit_wait_count is non-zero.
  • Commandline: --binlog-commit-wait-usec#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 100000
  • Range: 0 - 18446744073709551615
  • Introduced: MariaDB 10.0.5

binlog_direct_non_transactional_updates

  • Description: 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_updates to 1 (0 is default) will cause 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 a SELECT from a transactional table.
  • Commandline: --binlog-direct-non-transactional-updates[=value]
  • Scope: Global, Session
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: OFF (0)
  • Introduced: MariaDB 5.5

binlog_format

  • Description: Determines whether replication is row-based, statement-based or mixed. Statement-based is the default. Be careful of changing the binary log format when a replication environment is already running. See Binary Log Formats. Starting from MariaDB 10.0.22 a slave will apply any events it gets from the master, regardless of the binary log format. binlog_format only applies to normal (not replicated) updates.
  • Commandline: --binlog-format=format
  • Scope: Global, Session
  • Dynamic: Yes
  • Data Type: enumeration
  • Default Value: STATEMENT
  • Valid Values: ROW, STATEMENT or MIXED

binlog_optimize_thread_scheduling

  • Description: 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.
  • Commandline: --binlog-optimize-thread-scheduling or --skip-binlog-optimize-thread-scheduling
  • Scope: Global
  • Dynamic: No
  • Data Type: boolean
  • Default Value: ON
  • Introduced: MariaDB 5.2

binlog_row_image

  • Description: Controls whether, in row-based replication, rows should be logged in 'FULL', 'NOBLOB' or 'MINIMAL' formats.
    • FULL: All columns in the before and after image are logged.
    • NOBLOB: mysqld avoids logging blob 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.
  • Commandline: --binlog-row-image=value
  • Scope: Global, Session
  • Dynamic: Yes
  • Data Type: enum
  • Default Value: FULL
  • Valid Values: FULL, NOBLOB or MINIMAL
  • Introduced: MariaDB 10.1.6

binlog_stmt_cache_size

  • Description: 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 will indicate whether this variable needs to be increased (you want a low ratio of binlog_stmt_cache_disk_use to binlog_stmt_cache_use).
  • Commandline: --binlog-stmt-cache-size=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 32768
  • Range - 32 bit: 4096 to 4294967295
  • Range - 64 bit: 4096 to 18446744073709547520
  • Introduced: MariaDB 5.5

default_master_connection

  • Description: In multi-source replication, specifies which connection will be used for commands and variables if you don't specify a connection.
  • Commandline: None
  • Scope: Session
  • Dynamic: Yes
  • Data Type: string
  • Default Value: '' (empty string)
  • Introduced: MariaDB 10.0.1

encrypt_binlog

  • Description: Encrypt binary logs (including relay logs). See Table and Tablespace Encryption.
  • Commandline: --encrypt-binlog[={0|1}]
  • Scope: Global
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: OFF
  • Introduced: 10.1.7

expire_logs_days

  • Description: Number of days after which the binary log will be automatically removed. By default 0, or no automatic removal. When using replication, should always be set higher than the maximum lag by any slave.
  • Commandline: --expire-logs-days=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 0
  • Range: 0 to 99

init_slave

  • Description: Similar to init_connect, but the string contains one or more SQL statements, separated by semicolons, that will be executed by a slave server each time the SQL thread starts. These statements are only executed after the acknowledgement is sent to the slave and START SLAVE completes.
  • Commandline: --init-slave=name
  • Scope: Global
  • Dynamic: Yes
  • Data Type: string

log_bin

  • Description: Whether binary logging is enabled or not. If the --log-bin option is used, log_bin will be set to ON, otherwise it will be OFF. If no name option is given for --log-bin, datadir/'log-basename'-bin or 'datadir'/mysql-bin will be used (the latter if --log-basename is not specified). We strongly recommend you use either --log-basename or 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 will be written to the data directory.
  • Commandline: --log-bin[=name]
  • Scope: Global
  • Dynamic: No
  • Data Type: boolean

log_bin_basename

  • Description: The full path of the binary log file names, excluding the extension. Its value is derived from the rules specified in log_bin system variable.
  • Commandline: No commandline option
  • Scope: Global
  • Dynamic: No
  • Data Type: string
  • Read Only: Yes
  • Introduced: MariaDB 10.1.6

log_bin_index

  • Description: File that holds the names for last binlog files.
  • Commandline: --log-bin-index=name
  • Scope: Global
  • Dynamic: No
  • Data Type: string
  • Introduced: MariaDB 10.1.6

log_bin_trust_function_creators

  • Description: By default, CREATE FUNCTION statements are not accepted unless they specify one of DETERMINISTIC, NO SQL or READS SQL DATA. This is because functions that are not one of these may have unexpected consequences on a slave server if they are used in replication. Setting this variable to 1 relaxes this restriction as well as permitting users to create stored routine and stored functions without the SUPER privilege.
  • Commandline: --log-bin-trust-function-creators[={0|1}]
  • Scope: Global
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: OFF

log_slave_updates

  • Description: If set to 0, the default, updates on a slave received from a master during replication are not logged in the slave's binary log. If set to 1, they are. The slave's binary log needs to be enabled for this to have an effect. Set to 1 if you want to daisy-chain the slaves.
  • Commandline: --log-slave-updates
  • Scope: Global
  • Dynamic: No
  • Data Type: boolean
  • Default Value: OFF

master_retry_count

  • Description: Number of times a slave will attempt to connect to a master before giving up. The retry interval is determined by the MASTER_CONNECT_RETRY option for the CHANGE MASTER statement. A value of 0 means the slave will not stop attempting to reconnect. Reconnects are triggered when a slave has timed out. See slave_net_timeout.
  • Commandline: --master-retry-count=#
  • Type: numeric
  • Default Value: 86400
  • Range - 32 bit: 0 to 4294967295
  • Range - 64 bit: 0 to 18446744073709551615
  • Deprecated: MySQL 5.6.1

master_verify_checksum

  • Description: Verify binlog checksums when reading events from the binlog on the master.
  • Commandline: --master-verify-checksum=[0|1]
  • Scope: Global
  • Access Type: Can be changed dynamically
  • Data Type: bool
  • Default Value: OFF (0)
  • Introduced: MariaDB 5.3

max_binlog_cache_size

  • Description: Restricts the size used to cache a multi-transactional query. See max_binlog_stmt_cache_size and binlog_cache_size.
  • Commandline: --max-binlog-cache-size=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 18446744073709547520
  • Range: 4096 to 18446744073709547520

max_binlog_size

  • Description: If the binary log exceeds this size after a write, the server rotates it by closing it and opening a new binary log. Single transactions will always be stored in the same binary log, so the server will wait 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.
  • Commandline: --max-binlog-size=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 1073741824 (1GB)
  • Range: 4096 to 1073741824 (4KB to 1GB)

max_binlog_stmt_cache_size

  • Description: Restricts the size used to cache non-transactional statements. See max_binlog_cache_size and binlog_stmt_cache_size.
  • Commandline: --max-binlog-stmt-cache-size=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 18446744073709547520
  • Range: 4096 to 18446744073709547520
  • Introduced: MariaDB 5.5

max_relay_log_size

  • Description: Slave will rotate its relay log if it exceeds this size after a write. If set to 0, the max_binlog_size setting is used instead. Before MariaDB 10.0, max_binlog_size was global only, but with the implementation of multi-source replication in MariaDB 10.0, it could be set per session as well.
  • Commandline: --max-relay-log-size=#
  • Scope: Global, Session (from MariaDB 10.0 only)
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 0
  • Range: 0, or 4096 to 1073741824 (4KB to 1GB)

relay_log

  • Description: Relay log basename. If not set, the basename will be hostname-relay-bin.
  • Commandline: --relay-log=file_name
  • Scope: Global
  • Dynamic: No
  • Data Type: filename
  • Default Value: '' (none)

relay_log_basename

  • Description: The full path of the relay log file names, excluding the extension. Its value is derived from relay-log variable's value.
  • Commandline: No commandline option
  • Scope: Global
  • Dynamic: No
  • Data Type: string
  • Read Only: Yes
  • Introduced: MariaDB 10.1.6

relay_log_index

  • Description: 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.
  • Commandline: --relay-log-index=name
  • Scope: Global
  • Dynamic: No
  • Data Type: string

relay_log_info_file

  • Description: Name and location of the relay log information file, the file that remembers where the SQL replication thread is in the relay logs..
  • Commandline: --relay-log-info-file=file_name
  • Scope: Global
  • Dynamic: No
  • Data Type: string
  • Default Value: relay-log.info

relay_log_purge

  • Description: If set to 1 (the default), relay logs will be purged as soon as they are no longer necessary.
  • Commandline: --relay-log-purge={0|1}
  • Scope: Global
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: ON
  • Note: In MySQL and in MariaDB before version 10.0.8 this variable was silently changed if you did CHANGE MASTER.

relay_log_recovery

  • Description: If set to 1 (0 is default), the slave will drop all relay logs that haven't yet been processed, and retrieve relay logs from the master. Can be useful after the slave has crashed to prevent the processing of corrupt relay logs.
  • Commandline: --relay-log-recovery
  • Scope: Global
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: OFF

relay_log_space_limit

  • Description: Specifies the maximum space to be used for the relay logs. The IO thread will stop until the SQL thread has cleared the backlog. By default 0, or no limit.
  • Commandline: --relay-log-space-limit=#
  • Scope: Global
  • Dynamic: No
  • Data Type: numeric
  • Default Value: 0
  • Range - 32 bit: 0 to 4294967295
  • Range - 64 bit: 0 to 18446744073709547520

replicate_annotate_row_events

  • Description: Tells the slave to reproduce annotate_rows_events received from the master in its own binary log. This option is sensible only when used in tandem with the log_slave_updates option.
  • Commandline: --replicate-annotate-row-events
  • Scope: Global
  • Dynamic: No
  • Data Type: boolean
  • Default Value: OFF
  • Introduced: MariaDB 5.3

replicate_do_db

  • Description: Slave threads will be restricted to replicating the specified databases, provided in comma-delimited format. Will not work with cross-database queries such as UPDATE some_db.some_table SET foo='bar' while having selected a different or no database. Use replicate_wild_do_table for this purpose. replicate-do-db is executed after the replicate-rewrite-db mysqld option. It also does not accept a comma-delimited list, and needs to be used multiple times to specify multiple databases (on both the commandline and in configuration files). See Dynamic replication variables for more information.
  • Commandline: --replicate-do-db=name
  • Scope: Global
  • Dynamic: Yes
  • Data Type: string
  • Default Value: '' (empty)
  • Introduced: MariaDB 5.5.22

replicate_do_table

  • Description: Slave threads will be restricted to replicating the specified tables, provided in comma-delimited format. See Dynamic replication variables for more information. The directive does not accept a comma-delimited list, and needs to be used multiple times to specify multiple tables (on both the commandline and in configuration files).
  • Commandline: --replicate-do-table=name
  • Scope: Global
  • Dynamic: Yes
  • Data Type: string
  • Default Value: '' (empty)
  • Introduced: MariaDB 5.5.22

replicate_events_marked_for_skip

  • Description: Tells the slave whether to replicate events that are marked with the @@skip_replication flag. See Selectively skipping replication of binlog events for more information.
  • Commandline: --replicate-events-marked-for-skip
  • Scope: Global
  • Dynamic: Yes
  • Data Type: enumeration
  • Default Value: replicate
  • Valid Values: REPLICATE, FILTER_ON_SLAVE, FILTER_ON_MASTER
  • Introduced: MariaDB 5.5.21

replicate_ignore_db

  • Description: Slave threads will be prohibited from replicating the specified databases, provided in comma-delimited format. Will not work with cross-database queries such as UPDATE some_db.some_table SET foo='bar' while having selected a different or no database. Use replicate_wild_ignore_table for this purpose. See Dynamic replication variables for more information. The directive does not accept a comma-delimited list, and needs to be used multiple times to specify multiple databases (on both the commandline and in configuration files).
  • Commandline: --replicate-ignore-db=name
  • Scope: Global
  • Dynamic: Yes
  • Data Type: string
  • Default Value: '' (empty)
  • Introduced: MariaDB 5.5.22

replicate_ignore_table

  • Description: Slave threads will be prohibited from replicating the specified tables, provided in comma-delimited format. See Dynamic replication variables for more information. The directive does not accept a comma-delimited list, and needs to be used multiple times to specify multiple tables (on both the commandline and in configuration files).
  • Commandline: --replicate-ignore-table=name
  • Scope: Global
  • Dynamic: Yes
  • Data Type: string
  • Default Value: '' (empty)
  • Introduced: MariaDB 5.5.22

replicate_rewrite_db

replicate_wild_do_table

  • Description: Slave threads will be restricted to replicating tables that match the specified wildcard pattern. For example replicate-wild-do-table=foo%.bar% will replicate only updates to tables in all databases that start with foo and whose table names start with bar. Will work with cross-database updates. The directive does not accept a comma-delimited list, and needs to be used multiple times to specify multiple wildcard patterns (on both the commandline and in configuration files). See Dynamic replication variables for more information.
  • Commandline: --replicate-wild-do-table=name
  • Scope: Global
  • Dynamic: Yes
  • Data Type: string
  • Default Value: '' (empty)
  • Introduced: MariaDB 5.5.22

replicate_wild_ignore_table

  • Description: Slave threads will be prohibited from replicating tables that match the specified wildcard pattern. For example replicate-wild-ignore-table=foo%.bar% will not do updates to tables in databases that start with foo and whose table names start with bar. Will work with cross-database updates. The directive does not accept a comma-delimited list, and needs to be used multiple times to specify multiple wildcard patterns (on both the commandline and in configuration files). See Dynamic replication variables for more information.
  • Commandline: --replicate-wild-ignore-table=name
  • Scope: Global
  • Dynamic: Yes
  • Data Type: string
  • Default Value: '' (empty)
  • Introduced: MariaDB 5.5.22

report_host

  • Description: The host name or IP address the slave reports to the master when it registers. If left unset, the slave will not register itself. Reported by SHOW SLAVE HOSTS. Note that it is not sufficient for the master to simply read the IP of the slave from the socket once the slave connects. Due to NAT and other routing issues, that IP may not be valid for connecting to the slave from the master or other hosts.
  • Commandline: --report-host=host_name
  • Scope: Global
  • Dynamic: No
  • Data Type: string

report_password

  • Description: Slave password reported to the master when it registers. Reported by SHOW SLAVE HOSTS if --show-slave-auth-info is set. This password has no connection with user privileges or with the replication user account password.
  • Commandline: --report-password=password
  • Scope: Global
  • Dynamic: No
  • Data Type: string

report_port

  • Description: The commandline option sets the TCP/IP port for connecting to the slave that will be reported to the replicating master during the slave's registration. Viewing the variable will show this value.
  • Commandline: --report-port=#
  • Scope: Global
  • Dynamic: No
  • Data Type: numeric
  • Default Value: 0
  • Range: 0 to 65535

report_user

  • Description: Slave's account user name reported to the master when it registers. Reported by SHOW SLAVE HOSTS if --show-slave-auth-info is set. This username has no connection with user privileges or with the replication user account.
  • Commandline: --report-user=name
  • Scope: Global
  • Dynamic: No
  • Data Type: string

server_id

  • Description: Used to identify master and slave servers in replication. The server_id must be unique for each server in the replicating group. If left at 0, the default, a slave will not connect to a master, and a master will refuse all slave connections.
  • Commandline: --server-id =#
  • Scope: Global, Session (>= MariaDB 10.0.2 only - see Global Transaction ID)
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 0
  • Range: 0 to 4294967295

skip_parallel_replication

  • Description: If set when a transaction is written to the binlog, parallel apply of that transaction will be avoided on a slave 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.
  • Commandline: None
  • Scope: Session
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: OFF
  • Introduced: MariaDB 10.1.3

skip_replication

  • Description: Changes are logged into the binary log with the @@skip_replication flag set. Such events will not be replicated by slaves that run with --replicate-events-marked-for-skip set different from its default of REPLICATE. See Selectively skipping replication of binlog events for more information.
  • Commandline: None
  • Scope: Session
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: OFF
  • Introduced: MariaDB 5.5.21

slave_compressed_protocol

  • Description: If set to 1 (0 is the default), will use compression for the slave/master protocol if both master and slave support this.
  • Commandline: --slave-compressed-protocol
  • Scope: Global
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: 0

slave_ddl_exec_mode

  • Description: Modes for how replication of DDL events should be executed. Legal values are STRICT and IDEMPOTENT (default). In IDEMPOTENT mode, the slave will not stop for failed DDL operations that would not cause a difference between the master and the slave. In particular CREATE TABLE is treated as CREATE OR REPLACE TABLE and DROP TABLE is treated as DROP TABLE IF EXISTS.
  • Commandline: --slave-ddl-exec-mode=name
  • Scope: Global
  • Dynamic: Yes
  • Data Type: enumeration
  • Default Value: IDEMPOTENT
  • Valid Values: IDEMPOTENT, STRICT
  • Introduced: MariaDB 10.0.8

slave_domain_parallel_threads

  • Description: When set to a non-zero value, each replication domain in one master 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 master connections or replication domains to use in parallel. See Parallel Replication for details.
  • Commandline: --slave-domain-parallel-threads=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 0
  • Valid Values: 0 to 16383
  • Introduced: MariaDB 10.0.9

slave_exec_mode

  • Description: Determines the mode used for replication error checking and conflict resolution. STRICT mode is the default, and catches all all errors and conflicts. IDEMPOTENT mode suppresses duplicate key or no key errors, which can be useful in certain replication scenarios, such as when there are multiple masters, or circular replication. MySQL Cluster ignores this setting, always treating it as IDEMPOTENT.
  • Scope: Global
  • Dynamic: Yes
  • Data Type: enumeration
  • Default Value: IDEMPOTENT (NDB), STRICT (All)
  • Valid Values: IDEMPOTENT, STRICT

slave_load_tmpdir

  • Description: Directory where the slave stores temporary files for replicating LOAD DATA INFILE statements. If not set, the slave will use tmpdir. Should be set to a disk-based directory that will survive restarts, or else replication may fail.
  • Commandline: --slave-load-tmpdir=path
  • Scope: Global
  • Dynamic: No
  • Data Type: file name
  • Default Value: /tmp

slave_max_allowed_packet

  • Description: Maximum packet size in bytes for slave SQL and I/O threads. This value overrides max_allowed_packet for replication purposes. Set in multiples of 1024 (the minimum) up to 1GB
  • Commandline: --slave-max-allowed-packet=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 1073741824
  • Range: 1024 to 1073741824
  • Introduced: MariaDB 5.5.26

slave_net_timeout

  • Description: Time in seconds for the slave to wait for more data from the master before considering the connection broken, after which it will abort the read and attempt to reconnect. The retry interval is determined by the MASTER_CONNECT_RETRY open for the CHANGE MASTER statement, while the maximum number of reconnection attempts is set by the master-retry-count variable. The first reconnect attempt takes place immediately.
  • Commandline: --slave-net-timeout=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 3600 (1 hour)
  • Range: 1 upwards

slave_parallel_max_queued

  • Description: In parallel_replication, sets the memory limit for SQL threads when looking ahead in the relay log. The limit is per-worker-thread, so the total memory used is up to @@slave_parallel_max_queued * @@slave_parallel_threads (plus some overhead for managing internal data structures). Only used when slave_parallel_threads is not zero. Also see the description on the parallel replication page.
  • Commandline: --slave-parallel-max-queued=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 131072
  • Range: 0 to 2147483647
  • Introduced: MariaDB 10.0.5

slave_parallel_mode

  • Description: 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 maximise the parallelism, possibly at the cost of increased conflict rate.
    • minimal: only parallelizes the commit steps of transactions.
    • none disables parallel apply completely.
  • Commandline: None
  • Scope: Global
  • Dynamic:
  • Data Type: enum
  • Default Value: conservative
  • Valid Values: conservative, optimisitic, none, aggressive and minimal
  • Introduced: MariaDB 10.1.3

slave_parallel_threads

  • Description: Used by parallel_replication. Determines the number of threads to spawn to apply in parallel events on the slave that were group-committed on the master or were logged with GTID in different replication domains. Slaves must be down when this variable is changed.
  • Commandline: --slave-parallel-threads=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 0
  • Range: 0 to 16383
  • Introduced: MariaDB 10.0.5

slave_parallel_workers


slave_run_triggers_for_rbr


slave_skip_errors

  • Description: When an error occurs on the slave, replication usually halts. This option permits a list of error codes to ignore, and for which replication will continue. This option should never be needed in normal use, and careless use could lead to slaves that are out of sync with masters. Error codes are in the format of the number from the slave error log. Using all as an option permits the slave 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. MySQL Cluster NDB >= 7.2.6 permits the ddl_exists_errors option, indicating error codes 1007,1008,4050,1051,1054,1060,1061,1068,1094 and 1146. A count of these is kept in slave_skipped_errors.
  • Commandline: --slave-skip-errors=[error_code1,error_code2,...|all|ddl_exist_errors]
  • Scope: Global
  • Dynamic: No
  • Data Type: string
  • Default Value: OFF
  • Valid Values: [list of error codes], all, ddl_exist_errors

slave_sql_verify_checksum

  • Description: Verify binlog checksums when the slave SQL thread reads events from the relay log.
  • Commandline: --slave-sql-verify-checksum=[0|1]
  • Scope: Global
  • Access Type: Can be changed dynamically
  • Data Type: bool
  • Default Value: ON (1)
  • Introduced: MariaDB 5.3

slave_transaction_retries

  • Description: Number of times a replication slave 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 slave will stop with an error. See also the innodb_lock_wait_timeout system variable.
  • Commandline: --slave-transaction-retries=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 10
  • Range - 32 bit: 0 to 4294967295
  • Range - 64 bit: 0 to 18446744073709547520

slave_type_conversions

  • Description: Determines the type conversion mode on the slave 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 master and slave (for example a column is 'int' on the master and 'bigint' on the slave).
    • ALL_NON_LOSSY means that all safe conversions (no data loss) are allowed.
    • ALL_LOSSY means 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 to ALL_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 master and slave.
  • Commandline: --slave-type-conversions=set
  • Scope: Global
  • Dynamic: Yes
  • Data Type: set
  • Default Value: Empty variable
  • Valid Values: ALL_LOSSY, ALL_NON_LOSSY, empty
  • Introduced: MariaDB 5.5

sql_log_bin

  • Description: If set to 0 (1 is the default), no logging to the binary log is done for the client. Only clients with the SUPER privilege can update this variable. Can have unintended consequences if set globally, see SET SQL_LOG_BIN. Starting MariaDB 10.1.7, this variable does not affect the replication of events in a Galera cluster.
  • Scope: Global (before MariaDB 10.0.16 and MariaDB 5.5.41 only), Session
  • Dynamic: Yes
  • Data Type: boolean
  • Default Value: 1

sql_slave_skip_counter

  • Description: Number of events that a slave skips from the master. If this would cause the slave to begin in the middle of an event group, the slave will instead begin from the beginning of the next event group. See SET GLOBAL sql_slave_skip_counter.
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 0

sync_binlog

  • Description: MariaDB will synchronize 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. 1 is 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 will be fast and a more conservative number can be chosen.
  • Commandline: --sync-binlog=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 0
  • Range - 32 bit: 0 to 4294967295
  • Range - 64 bit: 0 to 18446744073709547520

sync_master_info

  • Description: A replication slave will synchronize its master.info file to disk after this many events. If set to 0, the operating system handles flushing the file to disk.
  • Commandline: --sync-master-info=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 10000 (>= MariaDB 10.1.7), 0 (<= MariaDB 10.1.6)

sync_relay_log

  • Description: The MariaDB server will synchronize its relay log to disk after this many writes to the log. The default until MariaDB 10.1.7 was 0, in which case the operating system handles flushing the file to disk. 1 is 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 will be fast and a more conservative number can be chosen.
  • Commandline: --sync-relay-log=#
  • Scope: Global
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 10000 (>= MariaDB 10.1.7), 0 (<= MariaDB 10.1.6)

sync_relay_log_info

  • Description: A replication slave will synchronize its relay-log.info file to disk after this many transactions. The default until MariaDB 10.1.7 was 0, in which case the operating system handles flushing the file to disk. 1 is the most secure choice, because at most one event could be lost in the event of a crash, but it's also the slowest.
  • Commandline: --sync-relay-log-info=#
  • Scope: Global,
  • Dynamic: Yes
  • Data Type: numeric
  • Default Value: 10000 (>= MariaDB 10.1.7), 0 (<= MariaDB 10.1.6)
  • Range: 0 to 4294967295

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.