欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql所有复制相关参数_MySQL

程序员文章站 2022-05-28 17:55:16
...

内容来自mysql 5.5官方文档,权作备忘。

server-id 用于唯一标志服务器,master与slave都需要,取值范围0-4294967295.如果设置server-id为0,那么master会拒绝所有来自slave的连接,slave也会拒绝连接master,在mysql 5.5中,如果server-id被设置为0,则server会默认把该值设置为1.

master相关参数:

auto_increment_increment及auto_increment_offset:用于多主复制的时候,控制auto_increment列的insert值,默认为1,如果设置为0也会被设置为1.auto_increment_increment控制每次增量,所有master都应该相同,auto_increment_offset控制增量之后的偏移量,所有master都应该不一样。

slave相关参数:

abort-slave-event-count:当slave start之后,执行指定数目的event之后,不再从relay log读取event,但IO与SQL还是处于双YES。

disconnect-slave-event-count:当slave start 之后,执行指定数目的event之后,断开与master的连接。

log-slave-update:控制从relay读取的执行记录是否写入从库的master日志,true的时候是写入,false的时候不写入。主要用于A->B->C结构时的B数据库。对于多主结构并且主库后面都有对应从库的情况下,所有主库的该值都应该是true。

log-slow-slave-statements:是否允许慢日志记录slave sql线程执行的sql语句。

log-warning:这个值主要用于标记是否输出服务器的一些警告信息,对于slave来说,主要包括在网络错误后重新成功连接到主库以及每个slave线程的启动。该值默认为1,可以设置为0来关闭它,当设置为大于1的时候,包括因为权限问题连接失败的情况也会被写入。

master-info-file:记录master相关信息的文件,默认为master.info。

master-retry-count:slave试图连接master的总次数,每次重连的时间间隔取决于change master的时候设置的master_connect_retry(默认60),默认为86400.

slave-max-allowd-packet:设置slave 的 io及sql线程每处理的最大包大小,这样的话一个大的行格式update复制不会导致复制失败。这个值总是1024的倍数。

max-relay-log-size:relay日志的最大大小。

read-only:设置slave拒绝除了super用户之外所有的更新,这个参数主要用于让更新只在master上执行。

relay-log:设置relay log的名称。

relay-log-index:设置relaylog索引的名称,可以重写relay-log指定的索引名称。

relay-log-info-file:slave记录relay位置信息的文件。

relay-log-purge:是否自动删除已经无用的relay日志文件,默认开启。

relay-log-recovery:该选项开启之后,当服务器启动之后,会删除所有已有的relay日志,然后从主库重新接收relay日志。

relay-log-space-limit:限制really log的最大占用磁盘空间,0是无限制,当到达限制后,io线程会停止读取master,直到sql线程执行完成后删除relay日志空出空间。但是当单个relay日志文 件已经达到限制的话,这个限制会被无视。

replicate-do-db:dbname,对于行格式和语句格式的复制这个选项意义不同。行格式:执行所有非跨库的对dbname的更新。语句格式:只执行当前用户使用use 语法指定当前数据库为dbname后的复制更新(包括包含dbname的跨库更新)。

replicate-ignore-db:dbname,语句格式:不执行任何使用use dbname指定数据库的语句。行格式:不执行任何发生在dbname里面的表上的复制。

replicate-do-table:执行发生在指定表的复制,包括跨库更新及默认库更新。

replicate-ignore-table:不执行对指定表的更新,包括包含该表的多表更新。

replicate-rewrite-db:from->to,slave把use from替换为 use to,只有针对表操作的语句才有效(不包括create database,drop database,alter database),并且from必须是master的默认数据库(use 指定)。该选项不会重写语句。不支持跨库更新。

replicate-same-server-id:用于slave服务器,io线程会把server id与自己相同的event写入日志,与log-slave-updates选项冲突。

replicate-wild-do-table:类似数据库like方式指定多个匹配的表,行为类似replicate-do-table。

replicate-wild-ignore-table:类似数据库like方式指定多个匹配的表,行为类似replicate-ignore-table。

report-host:复制期间告知master slave的ip地址用于show slave hosts的输出,由于NAT及其他一些路由方式的干扰,master未必能从tcp包里面获取到正确的IP地址。

report-password:用于show slave hosts的输出,当master指定了show-slave-auth-info选项之后,会输出复制用户的认证信息。

report-port:指定报告给master的slave端口,默认为3306,5.5.23之后,数据库启动后,会自动修正为数据库使用的端口。

report-user:类似report-password,master启用show-slave-auth-info选项之后,会输出复制用户信息。

show-slave-auth-info:开启后,会在show slave hosts里面显示report-user与report-password的信息。

skip-salve-start:当服务器启动的时候,不要启动复制。

slave-compressed-protocol:设置为1的时候,如果master与slave都支持压缩,复制通讯将会以压缩的形式进行。

slave-load-tmpdir:slave创建临时文件的位置,当sql线程执行load data infile语句的时候,它会把数据文件从relaylog提取到临时文件里面,然后把数据加载到表里面。

slave-net-time-out:当多少时间没有收到master答复会被认为是网络超时。

slave-skip-errors:当遇到指定的错误码的时候跳过错误继续执行复制。

init-slave:指定一条每次sql线程初始化后就执行的语句。

relay-log:relaylog的名称

relay-log-index:relaylog的索引名称

relay-log-info-file:记载relay位置信息的文件。

relay-log-recovery:允许在服务器启动后自动删除已有relay日志,之后从服务器重传执行日志。用于slave crash后以防relay日志损坏。

slave-compressed_protocol:在支持的前提下,是否在slave或者master的协议中使用压缩。

slave-exec-mode:STRICT,IDEMPOTENT,设置为IDEMPOTENT后,会直接跳过1023(记录未找到)及1062(主键重复)错误。STRICT为默认值。

slave-transaction-retries:当slave sql线程在执行sql的时候遇到死锁导致执行失败的时候,sql线程在报告错误前执行指定次数来尝试修复问题。

slave-type-conversions:用于限制在行格式复制的时候,slave是否自动转化数据类型,默认不允许。

sql-slave-skip-counter:slave需要跳过的错误数。

sync-master-info:该值高于0的时候,会把master的信息同步到磁盘上,0的时候,依靠操作系统的io操作去同步。

sync-relay-log:每指定动作之后,slave都会把relay日志同步到磁盘上。

sync_relay_log_info:每执行指定次数的时候,修改relay-log.info文件。

binlog相关参数

binlog-row-event-max-event-size:指定行格式复制日志event的最大大小,单位bytes,每一行数据会被切分到多个小于该限制的event包中,必须是256的倍数,默认1024.

log-bin:启用二进制日志,并指定日志名称。

log-bin-index:指定日志索引名称,会重写log-bin的设定。

log-bin-trust-function-creators:指定mysql如何处理函数及存储过程的创建,取决于用户是否认为自己的存储过程及函数是否安全(确定的或者不修改数据),默认对于不安全的存储过程及函数不执行茶创建。

log-bin-use-v1-row-events:该参数会强制数据库使用旧的日志格式,主要用于对mysql-cluster的支持,mysql5.5默认不支持。

log-short-format:只有在Statement下有效的选项,用于减小binlog记录的大小。

binlog-do-db:类似replicate-do-db,其效果与statement模式及row模式有关,但是需要注意的是,在row模式下,也有以statement模式执行的语句,例如,ddl语句就是以statement模式记录的。

statement日志:只有默认db(use 指定)是指定值的语句才会被记录,需要注意的是,跨库执行(在指定库执行,但use指定另外一个数据库)的语句不会被记录,但是use指定指定库,在另一个数据库执行的语句会被记录。

row日志:只有实际在指定数据库上执行的语句才会被记录,与use无关。对于同时`更新多个数据库的语句,只有指定数据库上的变更会被记录。

binlog-ignore-db:类似replicate-ignore-db,在statement与row模式下表现不同。同时也需要注意在row模式下也有部分比如ddl语句会以statement模式记录。

statement模式:数据库不会记录所有使用use指定指定数据库的雨具。

row模式:不会记录任何在指定数据库上执行的变更,与use无关。

binlog-cache-size:row模式下,在一个事务中,可以缓存的binlog日志大小。

binlog-stmt-cache-size:statement模式下,可以缓存的binlog大小。

binlog-direct-non-transactional-updates: 只可以用于statement模式,事务模式下,非事务表的更新会被直接写入binglog。

binlog-format:复制的传输格式,statement,row,mixed,mixed默认使用statement,只有当statement不安全(比如系统函数调用)的时候,才会使用row模式。

log-bin:是否开启binlog。

log-binpuse-v1-row-event:是否使用从mysql NDB 7.2.1 开始的Version 2的日志格式,设置为1会使用之前的v1版本的日志格式,这个值的设置必须重启mysql 实例。

log-slave-updates:是否记录从主库接收的binlog记录。

max-binlog-cache-size:row模式下,如果一个事务使用了多于指定大小的空间,会导致

Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage错误。

如果进行了修改,只有新连接的值才会被修正。

max-binlog-stmt-cache-sie:statement模式下,

如果一个事务使用了多于指定大小的空间,会导致

Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage错误。

max-binlog-size:如果一个event的写入会导致日志文件大于指定值,则会新建一个文件写入,但是大事务可能会导致日志文件大小超出指定大小。

sync-binlog:设置为大于0的数字的话,每sync-binlog次写日志活动都会被强制同步到磁盘。