MySQL主从复制 理论部分
主从复制搭建作用
1 降低主库压力 2 备份主库数据
主从复制通过结构分为
1 一主一从 2 一主多从 3 同源复制
4 树状复制
主从复制原理
主从复制时会产生三个线程
主服务器产生 IO线程 big-log日志
从服务器产生 IO线程 relay-log
bin-log产生数据——IO获取数据——执行relay-log
IO线程——写入——SQL
主库信息
show processlist\G
1 mysql> show master status\G 2 *************************** 1. row *************************** 3 File: bin-log.000001 4 Position: 742 5 Binlog_Do_DB: 6 Binlog_Ignore_DB: 7 Executed_Gtid_Set: 8 1 row in set (0.00 sec) 9 10 mysql> show processlist\G; 11 *************************** 1. row *************************** 12 Id: 2 13 User: root 14 Host: localhost 15 db: NULL 16 Command: Query 17 Time: 0 18 State: starting 19 Info: show processlist 20 *************************** 2. row *************************** 21 Id: 6 id号 22 User: repl 登陆用户 23 Host: 200.200.2.11:35538 登陆地址 24 db: NULL 25 Command: Binlog Dump 链接线程 26 Time: 1811 27 State: Master has sent all binlog to slave; waiting for more updates 主库以及发送所有的二进制日志,等待更多的更新 28 Info: NULL 29 2 rows in set (0.00 sec) 30 31 ERROR: 32 No query specified
从库信息
show slave status\G
1 mysql> show slave status\G; 2 *************************** 1. row *************************** 3 Slave_IO_State: Waiting for master to send event 从库的状态 4 Master_Host: 200.200.2.10 主库的IP地址 5 Master_User: repl 登陆主库的用户 6 Master_Port: 3306 链接的端口 7 Connect_Retry: 60 超时时间 8 Master_Log_File: bin-log.000001 链接二进制文件 9 Read_Master_Log_Pos: 898 读到主库的哪个节点 10 Relay_Log_File: a-relay-bin.000002 中继日志文件 11 Relay_Log_Pos: 768 读的结点 12 Relay_Master_Log_File: bin-log.000001 根据哪个二进制日志进行同步 13 Slave_IO_Running: Yes IO线程状态 14 Slave_SQL_Running: Yes SQL线程状态 15 Replicate_Do_DB: 16 Replicate_Ignore_DB: 复制的时候忽略某个数据库 17 Replicate_Do_Table: 18 Replicate_Ignore_Table: 19 Replicate_Wild_Do_Table: 20 Replicate_Wild_Ignore_Table: 21 Last_Errno: 0 22 Last_Error: 报错信息 23 Skip_Counter: 0 24 Exec_Master_Log_Pos: 898 25 Relay_Log_Space: 971 26 Until_Condition: None 27 Until_Log_File: 28 Until_Log_Pos: 0 29 Master_SSL_Allowed: No 30 Master_SSL_CA_File: 31 Master_SSL_CA_Path: 32 Master_SSL_Cert: 33 Master_SSL_Cipher: 34 Master_SSL_Key: 35 Seconds_Behind_Master: 0 36 Master_SSL_Verify_Server_Cert: No 37 Last_IO_Errno: 0 38 Last_IO_Error: 39 Last_SQL_Errno: 0 40 Last_SQL_Error: 41 Replicate_Ignore_Server_Ids: 42 Master_Server_Id: 1 主库id 43 Master_UUID: d7c8ca7b-3e10-11eb-9c4f-000c2929f556 主库的唯一标识 44 Master_Info_File: /usr/local/mysql/data/master.info 主库的信息文件 45 SQL_Delay: 0 46 SQL_Remaining_Delay: NULL 47 Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates 48 Master_Retry_Count: 86400 49 Master_Bind: 50 Last_IO_Error_Timestamp: 报错时间 51 Last_SQL_Error_Timestamp: 报错时间 52 Master_SSL_Crl: 53 Master_SSL_Crlpath: 54 Retrieved_Gtid_Set: 55 Executed_Gtid_Set: 56 Auto_Position: 0 57 Replicate_Rewrite_DB: 58 Channel_Name: 59 Master_TLS_Version: 60 1 row in set (0.00 sec) 61 62 ERROR: 63 No query specified