我是靠谱客的博主 复杂小伙,最近开发中收集的这篇文章主要介绍mysql 异步复制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 
主从配置
 
1)主库和从库 创建复制用户并授权         异步复制
mysql -uroot -proot
create user 'repuser'@'%' identified by 'repuser123'; 
grant replication slave on *.* to 'repuser'@'%'; 
flush privileges;
select user,host from mysql.user;
 
2) 修改my.cnf
主库   改bin-address     server-id
二进制日志打开
log_bin=/mysql/log/3306/binlog/mysqldb-binlog 
log_bin_index=/mysql/log/3306/binlog/mysqldb-binlog.index
binlog_format=row
binlog_rows_query_log_events=on
 
expire_logs_days = 7
innodb_support_xa =1
binlog_cache_size = 1m
max_binlog_size = 2048m
log_bin_trust_function_creators = 1
innodb_flush_log_at_trx_commit =1
sync_binlog = 1
transaction-isolation = read-committed
 
#slave parameter 等着切换的时候用
#relay_log = /mysql/log/3306/relaylog/mysqldb-relay.log
#log-slave-updates = 1
#read_only=1
#slave-parallel-type=logical_clock
#slave-parallel-workers=4
#master_info_repository=table
#relay_log_info_repository=table
#relay_log_recovery=1
#slave_skip_errors = ddl_exist_errors
#slave_preserve_commit_order=1
 
备库     改bin-address     server-id
log_bin=/mysql/log/3306/binlog/mysqldb-binlog 
log_bin_index=/mysql/log/3306/binlog/mysqldb-binlog.index
binlog_format=row
binlog_rows_query_log_events=on
skip_name_resolve = on
expire_logs_days = 7
innodb_support_xa =1
binlog_cache_size = 1m
max_binlog_size = 2048m
log_bin_trust_function_creators = 1
innodb_flush_log_at_trx_commit =1
sync_binlog = 1
transaction-isolation = read-committed
#slave parameter
relay_log = /mysql/log/3306/relaylog/mysqldb-relay.log
log-slave-updates = 1
read_only=1
slave-parallel-type=logical_clock
slave-parallel-workers=4
master_info_repository=table
relay_log_info_repository=table
relay_log_recovery=1
slave_skip_errors = ddl_exist_errors
slave_preserve_commit_order=1
 
 
3)重启 主备库 服务
4)主库查看binlog
show master status ;
5)从库和master建立连接
stop slave;
change master to 
master_host='172.17.0.2',
master_user='repuser',
master_password='repuser123',
master_log_file='master-mysql-bin.000001',            
master_log_pos= 753;
# 异步同步方式   ,在主库 log_file ,log_pos 填上去
 
start slave ;
show slave status G;
从库显示一个sql线程,和4个work线程
主库显示 dump线程
 
建好后,主库新建应用使用的用户
create user 'itpux01'@'%' identified by 'itpux01';
grant all privileges on deen.* to 'itpux01'@'%';
flush privileges;s
 
change master 命令
改传输密码,从库执行
stop slave;
change master to master_password='repuser123';     #这个密码改的是 传输用的密码,改掉的话, io线程报错 报no,连接不上,和登录用的用户没关系
start slave;
 
修改主库ip,
stop slave ;
change master to 
master_host='192.168.0.55',
master_user='repuser',
master_password='repuser123',
master_log_file='',            
master_log_pos= ;
start slave;
延迟复制:延迟60秒复制到备库,不想就改成0
stop slave ;
change master to MASTER_DELAY=60;
start slave;
故障恢复:
主库:
reset master;   # 最后再考虑这一步
 
 
从库:
reset master ;
reset slave ;            #这两步会将Master_Info 滞空,备库相当于铲掉重来
change master to 
master_host='192.168.0.55',
master_user='repuser',
master_password='repuser123',
master_log_file='',            
master_log_pos= ;
start slave;
 
 
 
6)参数讲解
此时,主备机上同时输入:show processlist;  显示下面两张图是配置成功
图解:dump线程
图解:备机 sql线程和4个调度线程
 
 
显示下面三个是一样的,都是786,是说明同步,数据一致
备库:
主库:
 
图解:sql线程读取的中继日志的位置
 
图解:sql线程执行到了主库的哪个文件

最后

以上就是复杂小伙为你收集整理的mysql 异步复制的全部内容,希望文章能够帮你解决mysql 异步复制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部