MySQL复制之防崩溃从节点
2021-04-10 01:02
921 查看
MySQL5.6之前的版本中,运行时的数据复制信息会被保存在从节点数据目录的两个文件中,分别是master.info和relay-log.info。在MySQL5.6之后默认依然存放在数据目录,但是可以通过设置存放在数据库的表中。
master-info-repository:当这个变量值设置为table时候,主节点info日志信息存放在mysql.slave_master_info数据表中。当这个变量值为file时,默认文件名为master.info的文件会在文件系统中创建。
relay-log-info-repository:当这个变量的值设为table时,中继日志信息会被保存在mysql.slave_relay_log_info数据表中。当这个变量的值设置为file时,默认文件名为relay-log.info的文件会在文件系统中被创建。
默认情况下,这两个表并不包含任何信息,如下:
点击折叠或打开
- mysql> select * from mysql.slave_master_info;
- Empty set (0.00 sec)
- mysql> select * from mysql.slave_relay_log_info;
- Empty set (0.00 sec)
在从节点中加入以下配置信息:
[mysqld]
master-info-repository=table
relay-log-info-repository=table
点击(此处)折叠或打开
- mysql> select * from mysql.slave_master_info \G
- *************************** 1. row ***************************
- Number_of_lines: 25
- Master_log_name: mysql-bin.000020
- Master_log_pos: 344
- Host: 192.168.8.57
- User_name: repl
- User_password: mysql
- Port: 3306
- Connect_retry: 10
- Enabled_ssl: 0
- Ssl_ca: /usr/local/mysql/certs/ca-cert.pem
- Ssl_capath:
- Ssl_cert: /usr/local/mysql/certs/client-cert.pem
- Ssl_cipher:
- Ssl_key: /usr/local/mysql/certs/client-key.pem
- Ssl_verify_server_cert: 0
- Heartbeat: 30
- Bind:
- Ignored_server_ids: 0
- Uuid: 9ad24233-aeef-11e7-aa1b-080027768e58
- Retry_count: 86400
- Ssl_crl:
- Ssl_crlpath:
- Enabled_auto_position: 0
- Channel_name:
- Tls_version:
- 1 row in set (0.00 sec)
- mysql> select * from mysql.slave_relay_log_info \G
- *************************** 1. row ***************************
- Number_of_lines: 7
- Relay_log_name: ./relay-log.000003
- Relay_log_pos: 510
- Master_log_name: mysql-bin.000020
- Master_log_pos: 344
- Sql_delay: 0
- Number_of_workers: 0
- Id: 1
- Channel_name:
- 1 row in set (0.00 sec)
slave_master_info和slave_relay_log_info默认的存储引擎是MyISAM,为了让数据复制具有崩溃预防的特性,需要将这两个表的存储引擎修改为InnoDB。
点击(此处)折叠或打开
- mysql> stop slave;
- Query OK, 0 rows affected (0.03 sec)
- mysql> alter table mysql.slave_master_info engine=innodb;
- Query OK, 0 rows affected (0.31 sec)
- Records: 0 Duplicates: 0 Warnings: 0
- mysql> alter table mysql.slave_relay_log_info engine=innodb;
- Query OK, 0 rows affected (0.09 secwww.taobao-wd.com)
- Records: 0 Duplicates: 0 Warnings: 0
- mysql> start slave;
- Query OK, 0 rows affected (0.01 sec)
相关文章推荐
- MySQL的3节点主从同步复制方案
- MySQL的3节点主从同步复制方案测试
- MYSQL 三节点复制
- mysql-cluster数据自动修复(节点崩溃期间写入其他节点数据)
- Mysql 5.7从节点配置多线程主从复制的方法详解
- 基于MySQL 5.7多源复制及Keepalived搭建三节点高可用架构
- mysql表复制,索引,视图
- 用mycat来实现mysql的主从复制更加方便简洁
- 与MySQL传统复制相比,GTID有哪些独特的复制姿势
- MySQL架构优化实战系列2:主从复制同步与查询性能调优
- mysql 根据id查询所有子节点/父节点
- mysql中主从复制延迟问题
- MySQL-主从复制
- mysql主从复制
- 利用XtraBackup和MySQL主从复制来转移Zabbix数据库
- MySQL5.6:基于GTID的主从复制
- MySQL生产库中添加修改表字段引起主从崩溃的问题总结
- MySQL主从复制实战
- MySQL主从复制与主主复制
- mysql的复制和读写分离实现