您的当前位置:首页>全部文章>文章详情

Mysql的slave相关篇

gathin发表于:2022-12-29 09:01:36浏览:422次TAG: #slave

一般操作

1.从库的正确关闭流程
带有临时表的从库 stop slave,操作步骤
在stop slave之前一定要确定变量“Slave_open_temp_tables”是否为0,确定该从库是否有打开临时表。如果在不为0时,还有临时表,停止了从库或slave sql thread(IO同步进程),当从库重新开启后,之前对temporary table临时表上的update更新操作不可用,因为未被IO写入磁盘。

正确停从库步骤如下:

1.
mysql> stop slave io_thread

2.
mysql> show status like 'Slave_open_temp_tables';

3.如果'Slave_open_temp_tables'不为0,就执行如下,否则跳到第4步
mysql> start slave io_thread

4.可以关闭了, stop slave 或者关闭服务
#service mysqld stop

即先停主从的IO进程,确认临时表上的更新是否都写入磁盘,临时表是否为0,若不为0,等IO完了,再关从库
存在临时表的数据更新步骤,主从同步中调用IO_thread,将主库的binlog日志同步到从库
调用sql_thread进程,根据同步到本地的binlog更新数据库。因为存在临时表,sql_thread只是更新临时表中的数据。
调用IO_thread进程,将临时表中的更新写回原表(表数据修改直接修改磁盘中内容)

2.从库不随mysql 启动而启动
只需在配置文件里面 [mysqld]下加入 下面

skip-slave-start

重启MYSQL服务就生效了

3.从库跳过错误,
1.只需在配置文件里面 [mysqld]下加入 下面是的MYSQL有自动跳过错误功能

#这里有三种模式,off,all,ErorCode,ddl_exist_errors;
slave_skip_errors=1062,1053  #跳过自己指定的错误码
slave_skip_errors=all  #跳过全部
slave_skip_errors=ddl_exist_errors  #跳过MYSQL指定的这个系列错误码

重启MYSQL服务才能生效了

2.可以使用手动跳过

#AWS RDS中手动跳过需要调用其专门的方法
gtid的跳过错误: call mysql.rds_skip_transaction_with_gtid(assdasd:123’)
二进制跳过错误: CALL mysql.rds_skip_repl_error;

#自建MYSQL中手动跳过错误
SET GLOBAL sql_slave_skip_counter = N
腾讯云采购季云服务器一折促销