这几天在研究mysql数据同步,查看一些资料发现5.7版本可以使用gtid来实现主备数据库的数据同步。

经过一些折腾,搭建完毕,在master上建库、建表、插入数据,在从库上都能看到。看来一切正常。

随着测试的深入发现了一些问题,通过一个存储过程批量往表里插入10000条数据,发现速度慢的离奇。

如果不开启gtid只是单个数据库的话速度很快。

存储过程如下:

DELIMITER ;;
create procedure vip5()
begin
declare i int default 0;
while i < 100000
do
insert into a values(1,2);
set i = i + 1;
end while;
end;;

后来发现原来是autocommit(自动提交,把数据从内存写入磁盘)搞得鬼,在执行存储过程前先执行set autocommit=0,问题解决。

my.cnf配置如下:

master:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
gtid-mode = on
enforce-gtid-consistency = 1
log-bin = /var/lib/mysql/mysql-bin-gtid
server-id = 3306100
binlog_format = row
skip_slave_start = 1
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sync_binlog = 1

#-------------------gobal variables------------#
max_connect_errors = 100000
max_connections = 10000
wait_timeout = 3600
interactive_timeout = 3600
net_read_timeout = 3600
net_write_timeout = 3600
table_open_cache = 2000
table_definition_cache = 2000
open_files_limit = 20000
thread_cache_size = 512
#thread_handling = pool-of-threads
#thread_pool_max_threads = 5000
#thread_pool_size = 8
character-set-server = utf8
collation-server = utf8_general_ci
skip_external_locking
performance_schema = 1
myisam_recover_options = DEFAULT
skip-name-resolve
local_infile = 0
lower_case_table_names = 0
key_buffer_size = 384M
max_allowed_packet = 128M

master_info_repository = table
relay_log_info_repository = table

#--------------------innoDB------------#
innodb_buffer_pool_size = 1G
#innodb_data_file_path = ibdata1:200M:autoextend
innodb_flush_log_at_trx_commit = 0
innodb_io_capacity = 3000
innodb_lock_wait_timeout = 30
innodb_log_buffer_size = 8M
innodb_log_file_size = 200M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 85
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_support_xa = 1
innodb_thread_concurrency = 8
innodb_file_per_table
innodb_rollback_on_timeout

#------------session variables-------#
join_buffer_size = 8M
bulk_insert_buffer_size = 32M
max_heap_table_size = 96M
tmp_table_size = 96M
read_buffer_size = 16M
sort_buffer_size = 4M
read_rnd_buffer_size = 32M

expire_logs_days = 15
max_binlog_size = 200M
binlog_cache_size = 64k
log_warnings = 1
long_query_time = 0.125
##log_timestamps=SYSTEM

#---------------replicate--------------#
#slave-parallel-threads = 4
slave_parallel_workers=4
#slave_parallel_type='logical_clock'

replicate-ignore-db = mysql_identity
init_slave = 'set sql_mode=STRICT_ALL_TABLES'
log-slave-updates = 1

slave:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
gtid-mode = on
enforce-gtid-consistency = 1
log-bin = /var/lib/mysql/mysql-bin-gtid
server-id = 3306101
binlog_format = row
skip_slave_start = 1
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sync_binlog = 1

#-------------------gobal variables------------#
max_connect_errors = 100000
max_connections = 10000
wait_timeout = 3600
interactive_timeout = 3600
net_read_timeout = 3600
net_write_timeout = 3600
table_open_cache = 2000
table_definition_cache = 2000
open_files_limit = 20000
thread_cache_size = 512
#thread_handling = pool-of-threads
#thread_pool_max_threads = 5000
#thread_pool_size = 8
character-set-server = utf8
collation-server = utf8_general_ci
skip_external_locking
performance_schema = 1
myisam_recover_options = DEFAULT
skip-name-resolve
local_infile = 0
lower_case_table_names = 0
key_buffer_size = 384M
max_allowed_packet = 128M

master_info_repository = table
relay_log_info_repository = table

#--------------------innoDB------------#
innodb_buffer_pool_size = 1G
#innodb_data_file_path = ibdata1:200M:autoextend
innodb_flush_log_at_trx_commit = 0
innodb_io_capacity = 3000
innodb_lock_wait_timeout = 30
innodb_log_buffer_size = 8M
innodb_log_file_size = 200M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 85
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_support_xa = 1
innodb_thread_concurrency = 8
innodb_file_per_table
innodb_rollback_on_timeout

#------------session variables-------#
join_buffer_size = 8M
bulk_insert_buffer_size = 32M
max_heap_table_size = 96M
tmp_table_size = 96M
read_buffer_size = 16M
sort_buffer_size = 4M
read_rnd_buffer_size = 32M

expire_logs_days = 15
max_binlog_size = 200M
binlog_cache_size = 64k
log_warnings = 1
long_query_time = 0.125
##log_timestamps=SYSTEM

#---------------replicate--------------#
#slave-parallel-threads = 4
slave_parallel_workers=4
#slave_parallel_type='logical_clock'

replicate-ignore-db = mysql_identity
init_slave = 'set sql_mode=STRICT_ALL_TABLES'
log-slave-updates = 1

转载于:https://www.cnblogs.com/hymvp/p/8708566.html

mysql autocommit问题导致的gtid同步变慢相关推荐

  1. mysql commit慢_mysql autocommit问题导致的gtid同步变慢

    这几天在研究mysql数据同步,查看一些资料发现5.7版本可以使用gtid来实现主备数据库的数据同步. 经过一些折腾,搭建完毕,在master上建库.建表.插入数据,在从库上都能看到.看来一切正常. ...

  2. mysql主从切换gtid不一致_reset master导致主从GTID不一致的处理方法

    1.主库报同步异常(主从是双向复制的),报错信息显示insert语句的目标表不存在 2.检查主从库的GTID信息发现,主库的GTID比从库的高(应该是从库做过reset master的操作,重置了GT ...

  3. mysql gtid 同步_结合案例说说5.7使用gtid同步后,mysql.gtid_executed引起的从库gtid断层...

    结合案例说说5.7使用gtid同步后,mysql.gtid_executed引起的从库gtid断层,从库重复拉取主库数据,导致数据在从库被重复执行; mysql.gtid_executed,5.7.5 ...

  4. mysql 基于gtid复制_深入MySQL复制(二):基于GTID复制

    相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. 1.gtid基本概念 传统的基于binlog position复制的方式有个严重的缺点:如果slav ...

  5. 与MySQL传统复制相比,GTID有哪些独特的复制姿势?

    与MySQL传统复制相比,GTID有哪些独特的复制姿势? http://mp.weixin.qq.com/s/IF1Pld-wGW0q2NiBjMXwfg 陈华军,苏宁云商IT总部资深技术经理,从事数 ...

  6. 企业级运维——Mysql主从复制(异步、半同步、全同步)

    文章目录 主从复制原理 1.主节点 binary log dump 线程 2.从节点I/O线程 3.从节点SQL线程 主从复制过程 异步模式(mysql async-mode) 半同步模式(mysql ...

  7. MySQL 5.7 深度解析: 半同步复制技术

    复制架构衍生史 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史. MySQL的复制分为四种: 普通的replication,异步同步. 搭建简单,使用非常广泛,从mysql诞生之初,就产生了 ...

  8. MySQL亿级数据量实时同步,小米如何完美hold住

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"1024"获取公众号专属1024GB资料 作者丨刘心光 来源丨小米云技术(ID:mi- ...

  9. ip变更 mysql无法启动_ubuntu mysql 更改IP导致mysql无法启动

    bind-address = 127.0.0.1 => bind-address= 136.129.20.168 IP要这么改 这么改远程连不上,那么需要把这行整行注释掉,重启MYSQL,tel ...

最新文章

  1. redis主从复制如何保证数据一致性_面试官:Redis 主从复制时网络开小差了怎么整?...
  2. html css 多选下拉框,jQuery多选下拉框插件
  3. 图像传感器与信号处理——自动曝光算法
  4. Mac上PDF中插入替换删除页面
  5. [mmdetection] - win10配置mmdetection(1.1和2.0) + 训练网络(faster-rcnn、mask-rcnn)
  6. php 执行exec() 操作linux 命令
  7. (40)FPGA面试技能提升篇(OAM与SDH协议)
  8. memcached高速缓存学习笔记002---telnet操作memcached
  9. 为什么接口在设计时所有的方法一般都要抛异常?
  10. C++面试题:内存的分配方式有几种?
  11. 使用finalize/dispose 模式提高GC性能(翻译)
  12. python删除txt文本文件第一行数据
  13. 美通企业周刊 | 麦当劳阿里巴巴开启全域合作;老佛爷百货中国第三店落户贵阳;OPPO推出首款智能电视...
  14. 定语从句中的关系代词
  15. Win10《芒果TV》更新v3.8.30流星版:优化稳定性、升级无边框播放体验
  16. Word无法打开该文件,因为文件格式与文件扩展名不匹配的解决方法
  17. python infor_学习Python第7天-列出函数,列表,infor
  18. 大数据运营之财务数据模型设计
  19. 2021 AAAI Fellow名单重磅出炉!华人学者遗憾连续两年无缘入选
  20. GNSS观测值质量分析必备基础知识

热门文章

  1. 高职扩招有计算机专业吗,高职扩招计算机专业
  2. SQL Cursor(游标)
  3. javascript调用父窗口(父页面)的方法
  4. 瑞丽噪声与信噪比的关系_演出扩声系统的噪声与接地
  5. 上海考研计算机专业院校排名,2018考研:计算机专业全球院校排名公布,上海交通大学竟排第一?...
  6. miui 8 android对应关系,小米回应MIUI版本和安卓版本没有对应关系 你怎么看
  7. python文本数据增强_CVPR2020场景文字数据增强(纯python实现)
  8. python中time的用法_python中的计时器timeit的使用方法
  9. 在layui中使用ajax传值给后台,解决layui批量传值到后台操作时出现传值为空的问题...
  10. dword类型和十进制有什么区别_微信小商店有几种类型,有什么区别?