温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MySQL复制之防崩溃从节点

发布时间:2020-08-09 12:34:25 来源:ITPUB博客 阅读:134 作者:StevenBeijing 栏目:MySQL数据库
  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的文件会在文件系统中被创建。
   默认情况下,这两个表并不包含任何信息,如下:

点击(此处)折叠或打开

  1. mysql> select * from mysql.slave_master_info;
  2. Empty set (0.00 sec)

  3. mysql> select * from mysql.slave_relay_log_info;
  4. Empty set (0.00 sec)
    在从节点中加入以下配置信息:
[mysqld]
master-info-repository=table
relay-log-info-repository=table

点击(此处)折叠或打开

  1. mysql> select * from mysql.slave_master_info \G
  2. *************************** 1. row ***************************
  3.        Number_of_lines: 25
  4.        Master_log_name: mysql-bin.000020
  5.         Master_log_pos: 344
  6.                   Host: 192.168.8.57
  7.              User_name: repl
  8.          User_password: mysql
  9.                   Port: 3306
  10.          Connect_retry: 10
  11.            Enabled_ssl: 0
  12.                 Ssl_ca: /usr/local/mysql/certs/ca-cert.pem
  13.             Ssl_capath:
  14.               Ssl_cert: /usr/local/mysql/certs/client-cert.pem
  15.             Ssl_cipher:
  16.                Ssl_key: /usr/local/mysql/certs/client-key.pem
  17. Ssl_verify_server_cert: 0
  18.              Heartbeat: 30
  19.                   Bind:
  20.     Ignored_server_ids: 0
  21.                   Uuid: 9ad24233-aeef-11e7-aa1b-080027768e58
  22.            Retry_count: 86400
  23.                Ssl_crl:
  24.            Ssl_crlpath:
  25.  Enabled_auto_position: 0
  26.           Channel_name:
  27.            Tls_version:
  28. 1 row in set (0.00 sec)

  29. mysql> select * from mysql.slave_relay_log_info \G
  30. *************************** 1. row ***************************
  31.   Number_of_lines: 7
  32.    Relay_log_name: ./relay-log.000003
  33.     Relay_log_pos: 510
  34.   Master_log_name: mysql-bin.000020
  35.    Master_log_pos: 344
  36.         Sql_delay: 0
  37. Number_of_workers: 0
  38.                Id: 1
  39.      Channel_name:
  40. 1 row in set (0.00 sec)
    slave_master_info和slave_relay_log_info默认的存储引擎是MyISAM,为了让数据复制具有崩溃预防的特性,需要将这两个表的存储引擎修改为InnoDB。

点击(此处)折叠或打开

  1. mysql> stop slave;
  2. Query OK, 0 rows affected (0.03 sec)

  3. mysql> alter table mysql.slave_master_info engine=innodb;
  4. Query OK, 0 rows affected (0.31 sec)
  5. Records: 0 Duplicates: 0 Warnings: 0

  6. mysql> alter table mysql.slave_relay_log_info engine=innodb;
  7. Query OK, 0 rows affected (0.09 sec)
  8. Records: 0 Duplicates: 0 Warnings: 0

  9. mysql> start slave;
  10. Query OK, 0 rows affected (0.01 sec)



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI