MySQL复制之防崩溃从细节
发布时间:2022-04-07 00:09:56 所属栏目:MySql教程 来源:互联网
导读:MySQL5.6之前的版本中,运行时的数据复制信息会被保存在从节点数据目录的两个文件中,分别是master.info和relay-log.info。在MySQL5.6之后默认依然存放在数据目录,但是可以通过设置存放在数据库的表中。 master-info-repository:当这个变量值设置为table
![]() 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 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> start slave; Query OK, 0 rows affected (0.01 sec) (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |