如何测试mysql高可用_(5.9)mysql高可用系列——正常主从切换测试

【0】实验环境

操作系统:CentOS linux 7.5

数据库版本:5.7.24

数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复制。

主库IP:192.168.1.201  端口:3306

从库IP:192.168.1.202  端口:3306

【1】主从切换

主从配置文件参数

(1)主库要把自 #slave replication 行下面的所有配置注释掉(其实主库也可以全部开启)

(2)从库可以把所有参数都开启

#replication_new

log_bin=/mysql/log/3306/binlog/mysql-bin #开启binlog

log_bin_index=/mysql/log/3306/mysql-bin.index

binlog_format=row

binlog_rows_query_log_events=on

max_binlog_size=2048bind-address=0.0.0.0server_id=2013306#注意,这里从库的server_id和主库一定不能一样

expire_logs_days=7#超过7天的binlog清理

innodb_support_xa=1binlog_cache_size=1M

log_bin_trust_function_creators=1#同步存储过程、函数、触发器

innodb_flush_log_at_trx_commit=1sync_binlog=1transaction-isolation=read-committed

#增加的GTID参数

gtid_mode=on

enforce_gtid_consistency=1 #on:当发现语句/事务不支持GTID时,返回错误信息

log-slave-updates=1binlog_gtid_simple-recovery=1 #5.7.6以下默认为off,5.7.6以上默认为on

#slave replication ----从这行起,下面的所有行,在主库注释掉

relay_log=/mysql/log/3306/relaylog/mysql-relay.log

log-slave-updates=1#read_only=1 --主库要注释掉,从库最好放开slave-parallel-type=LOGICAL_CLOCK

slave-parallel-workers=4master_info_repository=table #master_info 会记录到 mysql.slave_master_info

relay_log_info_repository=table #relay_log 会记录到,mysql.slave_relay_log_info

relay_log_recovery=1slave_skip_errors=ddl_exist_errors

slave_preserve_commit_order=1

操作设置

【1.1】主从都需要开二进制日志,切换的时候,确认从库的数据时最新的

-- 主库:192.168.1.201

set global read_only=1; -- 主库设置全局只读模式。

flush logs;        -- 刷新日志(binlog)

show master status;   -- 查看binlog状态,记录日志文件名和位置点pos

【1.2】确认从库202应用完了所有的中继日志-- 从库:192.168.1.202

show slave status\G -- 或者也可以show processlist;查看

-- or select master_pos_wait(file,post); -- 用主库的文件在备库上查询,差距为0即为同步

stop slave;

reset master;

reset slave; -- 删除从数据库的中继日志文件,并且启用新的中继日志文件以及 重置change master信息

-- 不清理掉,下次重启服务还会开启从线程,把自己当从库做。

show master status; -- 记录binlog状态,记录日志文件名和位置点pos

【1.3】如果从库202上没有复制账户,需要创建

【1.4】主库201上,也需要清理相关的master和slave信息

reset master;

reset slave;

show master status;

【1.5】主从库的配置相关参数要改变启用

主库:201cp /mysql/data/3306/my.cnf /mysql/data/3306/my.cnf.master

vi /mysql/data/3306/mysql.cnf从库:202cp /mysql/data/3306/my.cnf /mysql/data/3306/my.cnf.slave

vi /mysql/data/3306/mysql.cnf

service mysql restart【1.6】new_slave 201 连接 new master 202new从库:201

mysql -uroot -p123456

change master to

master_host='192.168.1.202',

master_port=3306,

master_user='rpl',

master_password='123456'

master_auto_position=1;

start slave;【1.7】数据测试new 主库:202

create database test;

use test;

create table test1;

insert into test1 values(1);

commit;-- 然后new从库201核验

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值