在MySQL配置主从关系时,会用到start slave, stop slave命令,本文简单介绍两个命令的使用方法和作用。
- mysql> start slave
-
不带任何参数,表示同时启动I/O 线程和SQL线程。
相当于:
- mysql > start slave sql_thread;
- mysql > start slave io_thread;
-
I/O线程从主库读取bin log,并存储到relay log中继日志文件中。
SQL线程读取中继日志,解析后,在从库重放。
until 选项的使用
以binlog 日志位点为例:
- mysql> start slave until MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=194;
- Query OK, 0 rows affected (0.00 sec)
-
- mysql> show slave status\G
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for master to send event
- Master_Host: 127.0.0.1
- Master_User: rep
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql-bin.000007
- Read_Master_Log_Pos: 194
- Relay_Log_File: relay-bin.000005
- Relay_Log_Pos: 407
- Relay_Master_Log_File: mysql-bin.000007
- Slave_IO_Running: Yes
- Slave_SQL_Running: No
- ... ...
-
sql 线程 追到 MASTER_LOG_FILE、MASTER_LOG_POS指定的位置,sql 线程会自动停止。
从show slave status的输出中可以看到,sql 线程已停止,而io 线程正常执行。
until中也支持GTID,不要将log file与GTID方式混用。
类似的,
- mysql> stop slave
-
相当于
- mysql > stop slave sql_thread;
- mysql > stop slave io_thread;
-
完成停止I/O 线程和SQL线程的操作。