首页 > 数据库 > MySQL > 正文

MySQL复制之防崩溃从细节

2024-07-24 12:32:23
字体:
来源:转载
供稿:网友

         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)
 

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表