复制中重要参数讲解:
master上的参数:
log-bin
server-id
log-bin-index(binlog索引文件前缀名,和log-bin一样,也可以是fullpath不可动态修改)
binlog_format(日志格式 row、statment和mixed)
max_binlog_size (限制单个binlog大小,默认是1G)
binlog_cache_size(日志缓存大小)
max_binlog_cache_size(binlog最大的cache size,有大SQL写入时需要用到,或者大数据 LOAD DATA 时)
sync_binlog = N(每写N次binlog发起一次fsync,=0表示由操作系统管理.对于性能要求很高的情况下设置成0,对于安全要求安全很高的情况下设置成1)
expire_logs_days = n(过期时间,n天后自动删除binlog,n一般为7)
log_bin_trust_function_creators(开启binlog时,是否允许创建存储程序(除非有SUPER权限,或者指定DETERMINISTIC、READS SQL DATA、NO SQL)
可动态修改,属于一个功能性的东西)
auto_increment_increment(每次自增的步长/幅度)
auto_increment_offset(自增起始偏移量)
以上2个参数影响表里的ID自增。
binlog-do-db(binlog记录db,除此外,其他db上的binlog都不记录.但是DDL会记录的(不管什么模式下DDL语句都记成STATEMENT))
binlog-ignore-db(binlog忽略db,除此外,其他db上的binlog都记录)
binlog_stmt_cache_size(用于cache那些事务中非事务表产生的SQL语句。如果经常在事务中涉及到非事务表,需要加大该参数.)
max_binlog_stmt_cache_size(用于cache那些事务中非事务表产生的SQL语句,最大cache。)
slave上的参数:
server-id
relay-log(relaylog文件名前缀,可以是全路径,不可动态修改)
relay-log-index( relaylog索引文件前缀名,和relay-log一样,也可以是fullpath,不可动态修改)
read-only(把从库设置成只读)
relay_log_purge(relaylog在SQL_THREAD执行完后被清理掉,功能参数。0不删除)
relay_log_recovery(slave崩溃或正常重启时,未应用完的relay log会被删掉,重新从master请求binlog再次生成relay log)
log-slow-slave-statements(记录sql_thread执行中超过long_query_time的时间的sql到慢日志中)
log_slave_updates(级联复制 sql_thread执行中记录的)
slave_net_timeout(slave连接master超时时长,默认3600s,生产中建议设置成10s)
skip-slave-start(mysqld实例启动时,不跟着启动slave线程)
sync_master_info = n(多少个事务/事件后调用fdatasync()刷新master.info文件)
master-info-file/relay-log-info-file(记录relay log最新信息, master.info)
slave_transaction_retries(slave复制中,如果因为InnoDB死锁或者锁超时导致复制线程执行的事务失败重)
master-retry-count
sql_slave_skip_counter
slave_skip_errors
replicate-do-table
replicate-ignore-table
replicate-rewrite-db
replicate-wild-do-table
replicate-wild-ignore-table
replication-do-db
replication-ignore-db
以上几个参数 设置slave复制规则,是否只复制某个(某些)库(表)wild规则是通配符,其他几个都是精确规则
binlog_ 这个参数给写日志的线程来用的,replicate_是个sql_thread来用的
log-bin=/path/mysql_xxxx/logs/mysql-bin
server-id=[ip]port
log-bin-index=mysql-bin.index
binlog_format=mixed
binlog_cache_size=1M
max_binlog_size=200M
sync_binlog=0
expire_logs_days=7
log_bin_trust_function_creators=1
#slave
relay-log=replay-bin
relay-log-recovery=1
log-slow-slave-statements
log_slave_updates
slave_net_timeout=10
master-retry-count= 86400
master上的参数:
log-bin
server-id
log-bin-index(binlog索引文件前缀名,和log-bin一样,也可以是fullpath不可动态修改)
binlog_format(日志格式 row、statment和mixed)
max_binlog_size (限制单个binlog大小,默认是1G)
binlog_cache_size(日志缓存大小)
max_binlog_cache_size(binlog最大的cache size,有大SQL写入时需要用到,或者大数据 LOAD DATA 时)
sync_binlog = N(每写N次binlog发起一次fsync,=0表示由操作系统管理.对于性能要求很高的情况下设置成0,对于安全要求安全很高的情况下设置成1)
expire_logs_days = n(过期时间,n天后自动删除binlog,n一般为7)
log_bin_trust_function_creators(开启binlog时,是否允许创建存储程序(除非有SUPER权限,或者指定DETERMINISTIC、READS SQL DATA、NO SQL)
可动态修改,属于一个功能性的东西)
auto_increment_increment(每次自增的步长/幅度)
auto_increment_offset(自增起始偏移量)
以上2个参数影响表里的ID自增。
binlog-do-db(binlog记录db,除此外,其他db上的binlog都不记录.但是DDL会记录的(不管什么模式下DDL语句都记成STATEMENT))
binlog-ignore-db(binlog忽略db,除此外,其他db上的binlog都记录)
binlog_stmt_cache_size(用于cache那些事务中非事务表产生的SQL语句。如果经常在事务中涉及到非事务表,需要加大该参数.)
max_binlog_stmt_cache_size(用于cache那些事务中非事务表产生的SQL语句,最大cache。)
slave上的参数:
server-id
relay-log(relaylog文件名前缀,可以是全路径,不可动态修改)
relay-log-index( relaylog索引文件前缀名,和relay-log一样,也可以是fullpath,不可动态修改)
read-only(把从库设置成只读)
relay_log_purge(relaylog在SQL_THREAD执行完后被清理掉,功能参数。0不删除)
relay_log_recovery(slave崩溃或正常重启时,未应用完的relay log会被删掉,重新从master请求binlog再次生成relay log)
log-slow-slave-statements(记录sql_thread执行中超过long_query_time的时间的sql到慢日志中)
log_slave_updates(级联复制 sql_thread执行中记录的)
slave_net_timeout(slave连接master超时时长,默认3600s,生产中建议设置成10s)
skip-slave-start(mysqld实例启动时,不跟着启动slave线程)
sync_master_info = n(多少个事务/事件后调用fdatasync()刷新master.info文件)
master-info-file/relay-log-info-file(记录relay log最新信息, master.info)
slave_transaction_retries(slave复制中,如果因为InnoDB死锁或者锁超时导致复制线程执行的事务失败重)
master-retry-count
sql_slave_skip_counter
slave_skip_errors
replicate-do-table
replicate-ignore-table
replicate-rewrite-db
replicate-wild-do-table
replicate-wild-ignore-table
replication-do-db
replication-ignore-db
以上几个参数 设置slave复制规则,是否只复制某个(某些)库(表)wild规则是通配符,其他几个都是精确规则
binlog_ 这个参数给写日志的线程来用的,replicate_是个sql_thread来用的
复制的参数总结:
#replicationlog-bin=/path/mysql_xxxx/logs/mysql-bin
server-id=[ip]port
log-bin-index=mysql-bin.index
binlog_format=mixed
binlog_cache_size=1M
max_binlog_size=200M
sync_binlog=0
expire_logs_days=7
log_bin_trust_function_creators=1
#slave
relay-log=replay-bin
relay-log-recovery=1
log-slow-slave-statements
log_slave_updates
slave_net_timeout=10
master-retry-count= 86400