文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Mysql /etc/my.cnf参数详解(二)

2023-09-03 15:56

关注

#buffer相关

#buffer pool根据实际内存大小调整,标准为物理内存的50%
innodb_buffer_pool_size=15996M //默认值128M,innodb_buffer_pool_size | 134217728
key_buffer_size = 33554432
#根据物理内存大小设置 确保每个instance内的内存2G左右 <5000 1,>=5000 <9000 2,>=9000 <17000 4,>=17000 <33000 8,>=33000 16
innodb_buffer_pool_instances=16 //https://blog.csdn.net/qq_32099833/article/details/123616533 多个instance实例的原理
read_rnd_buffer_size = 524288
sort_buffer_size = 524288  
query_cache_size=0  //查询的缓存大小设置;

#安全相关
default_password_lifetime=0 //一个全局的MySQL密码过期时间,单位为天,也就是每过N天,就需要修改密码,否则会在连接后收到一个密码过期的报错。如果该参数设置为0,即表示密码永不过期。

#复制相关
// https://blog.csdn.net/j_ychen/article/details/109451373 
//为了解决主从复制延迟问题,在MySQL 5.7中,引入了基于组提交的并行复制(Enhanced Multi-threaded Slaves)

skip-slave-start = 0  //禁用skip-slave-start,slave进程会随着mysql启动而启动。skip-slave-start为开启
slave-parallel-type = LOGICAL_CLOCK  //mysql在5.7中加入了slave_parallel_type,默认值是database,需要改成基于时钟逻辑的LOGICAL_CLOCK
sync_master_info = 1000
//当 sync_master_info>0,slave在N个sync_master_info事件完成后更新mysql.slave_master_info表;当 sync_master_info = 0,不更新表

master-info-repository = TABLE 
//默认值:FILE,当设置为TABLE,slave会将master的状态和连接信息写入 mysql.slave_master_info 表,当设置为FILE ,slave会将master的状态和连接信息写入 master.info 文件。
//这个参数只有在复制线程停止工作才能更改。当使用多复制通道(multiple replication channels)的时候,这个参数必须设置成TABLE.

relay-log = /data/mysql/log/mysql-relay-bin
//relay-log的结构和binlog非常相似,只不过他多了一个master.info和relay-log.info的文件。
//master.info记录了上一次读取到master同步过来的binlog的位置,以及连接master和启动复制必须的所有信息。
//relay-log.info记录了文件复制的进度,下一个事件从什么位置开始,由sql线程负责更新。
relay-log-info-repository = TABLE
//默认值:FILE 当设置为TABLE,slave在relay_log中的pos信息将写入 mysql.slave_relay_log_info 表 当设置为FILE ,slave在relay_log中的pos信息将写入 relay-log.info 文件。
//这个参数只有在复制线程停止工作才能更改。当使用多复制通道(multiple replication channels)的时候,这个参数必须设置成TABLE.

relay-log-recovery = 1
//假设当从库意外宕机后,同时从库的relay log也一起损坏了,而主库的日志已经传到了从库,只是从库还没有来得及应用这些日志,那么从库该如何处理?
//在从库中将relay_log_recovery不设置或者设置为off,如果碰到上面的情形,从库会丢失那些没有应用的日志,主从会不一致。
//在从库中将relay_log_recovery设置为on,假如果碰到上面的情形,从库会自动放弃所有未执行的relay log,重新生成一个relay //log,并将从库的io线程的position重新指向新的relay //log。并将sql线程的position退回到跟io线程的position保持一致,重新开始同步,这样在从库中事务不会丢失。这个参数建议开启。

relay_log_index = mysql-relay-bin.index //同relay_log,定义relay_log的位置和名称;一般和relay-log在同一目录
slave_exec_mode = STRICT
//MySQL主从同步中,经常遇到的三种同步错误:
//1、在master上delete一条记录,若在slave上没有这条数据,会出现报错。
//2、在master上insert一条记录,若在slave上主键值已经存在,会出现报错。
//3、在master上update一条记录,若在slave上没有这条数据,会出现报错。
//如果slave的my.cnf已经配置了slave_skip_errors参数,则可以自动跳过报错,如果没有配置该参数,则可以用以下方法解决:
//mysql> set global slave_exec_mode='idempotent';
//默认值是strict(严格模式)
slave-parallel-workers = 16  //slave_parallel_workers数,默认为0,按需修改。
slave_net_timeout = 120
//slave_net_timeout系统变量指定在slave认为连接断开、中止读取并尝试重新连接之前,slave等待来自master的更多数据或心跳信号的秒数。默认值为60秒(一分钟)。在MySQL5.7.7之//前,默认值是3600秒(一小时)。
slave_pending_jobs_size_max = 1073741824
//在多线程副本(slave_parallel_workers > 0)上,确保系统变量 slave_pending_jobs_size_max 的值等于或大于复制源中系统变量 max_allowed_packet //的设置。slave_pending_jobs_size_max 的默认设置应该是128M,是 max_allowed_packet 的默认设置(64M)的两倍。

slave_preserve_commit_order = OFF
//在启用slave_preserve_commit_order的情况下,执行线程将等待,直到提交之前的所有事务。当线程等待其他工作线程提交其事务时,它将其状态报告为等待前一个事务提交。(在MySQ//L 5.7.8之前,它显示为Waiting for its turn to commit。)在多线程SLAVE上启用此模式可确保它永远不会进入源不处于的状态。这支持将复制用于读取横向扩展。

slave_rows_search_algorithms = INDEX_SCAN,HASH_SCAN

来源地址:https://blog.csdn.net/liys0811/article/details/132541925

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯