分类: Mysql/postgreSQL
2015-01-16 14:23:20
内容来自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次写日志活动都会被强制同步到磁盘。