主从复制故障解决

网友投稿 903 2022-10-15

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

主从复制故障解决

一、从库数据冲突导致同步停止

1、模拟错误:模拟重现故障的能力是运维人员最重要的能力。

show slave status报错:

且show slave status \G;

Slave_IO_Running:yes

Slave_SQL_Running:no

Seconds_Behind_Master:NULL

Last_Error:Error 'Cant't create database 'xiaoliu';database exists' on query.Default database:'xiaoliu'.Query:'create database xiaoliu'.

1007:数据库已经存在;

解决方法:stop slave;

get global sql_slave_skip_counter=1;指针跳跃;

start slave;

对于普通的互联网业务,忽略问题不是很大。当然,要确认不影响公司业务的前提下。

企业场景解决主从同步,比主从不一致对当前更重要,然后如果主从数据一致也很重要,再找个时间恢复一下这个从库。

slave和master同步,主要关键点:

Slave_IO_Running:yes;

Slave_SQL_Running:yes;

Seconds_Behind_Master是否为0;0表示已经同步。

2、根据错误号跳过指定的错误

slave-skip-errors=1032,1062,1007 ->一般由于入库重复导致的失败就可以忽略。

对于错误代码,应该使用slave服务器错误日志中错误消息提供的编号和SHOW SLAVE STATUS 的输出。

可以可以使用不推荐的all值忽略索引错误信息,不考虑发生的错误。无需而言,如果使用该值,我们不能保证数据的完整性。在这种情况下,如果slave服务器的数据与master服务器上的不相近请不要抱怨(或编写bug报告)。

二、让MYSQL从库开启binlog方法

#>vi my.cnf

log-bin=/data/3307/mysql-bin

log-slave-updates

expire_logs_days=7

三、主库master DOWN机(预案)

数据库宕机、服务器宕机

查看两个线程的更新状态:mysql>show processlist \G;

#>cat /data/3307/data/master.info,查看那个位置更靠前,或选个POS最大的作为主库。

1、确保所有的relay-log全部更新完毕。

在每个从库上执行stop slave io_thread,show processlist;

直到看到has read all read log;表示从库更新都执行完毕;

2、登录:mysql -uroot -p密码 -S /data/3306/mysql.sock

stop slave;

retset master;

quit;

3、进到数据库数据目录,删除master.info relay-log.info

cd /data/3306/data

rm -f master.info relay-log.info

检查授权表,read-only等参数

4、32 3306提升从库为主库

vi /data/3306/mysql-bin

如果存在log-slave-updates read-only等一定注释掉。

/data/3306/mysql restart

到此为止,提升主库完毕。

5、如果主库服务器没DOWN,需要去主库拉取binlog补全提升主库的从库。

......

四、双主及多主同步过程

参数说明:

解决主键自增长变量冲突

Master1:

auto_increment_increment=2 自增ID的间隔,如1 3 5间隔为2.

auto_increment_offset=1 ID的初始位置,偏移量。

log-slave-updates 开启从库binlog日志。

log-bin

(将形成1,3,5,7,9....序列)

Master2:

auto_increment_increment=2 自增ID的间隔,如2 4 6间隔为2.

auto_increment_offset=2 ID的初始位置。

log-slave-updates 开启从库binlog日志。

log-bin

(将形成2,4,6,8....序列)

主库写到1,3,5时,从库从6,8,10写 ID不连续,从最大写。

双向同步,互为主从。

上一篇:Python Ansible API 实战
下一篇:NetSarang的Xmanager和Xshell多种产品源码被植入后门 绿盟科技发布安全威胁通告
相关文章

 发表评论

暂时没有评论,来抢沙发吧~