我正在试着运行以下程序。
mysql > purge binary logs to 'mysqld-relay-bin.000075';
ERROR 1373 (HY000): Target log not found in binlog index
# cat ./mysqld-relay-bin.index
/srv/mysql/logs/mysqld-relay-bin.000010
....
/srv/mysql/logs/mysqld-relay-bin.000075
/srv/mysql/logs/mysqld-relay-bin.000076
/srv/mysql/logs/mysqld-relay-bin.000077
/srv/mysql/logs/mysqld-relay-bin.000078
/srv/mysql/logs/mysqld-relay-bin.000079我能做些什么来手动清除这些中继日志。
MariaDB [(none)]> show slave status;
Empty set (0.00 sec)
MariaDB [(none)]> show master status;
+---------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+-----------+--------------+------------------+
| binary.000141 | 487953618 | | |
+---------------+-----------+--------------+------------------+
ls -lrt /var/lib/mysql/logs/
total 4616604
-rw-rw---- 1 mysql mysql 299 Jun 7 15:04 mysqld-relay-bin.000010
-rw-rw---- 1 mysql mysql 299 Jun 7 15:19 mysqld-relay-bin.000011
-rw-rw---- 1 mysql mysql 299 Jun 7 15:21 mysqld-relay-bin.000012
....
-rw-rw---- 1 mysql mysql 299 Jul 23 01:15 mysqld-relay-bin.000075
-rw-rw---- 1 mysql mysql 299 Jul 23 01:15 mysqld-relay-bin.000076
-rw-rw---- 1 mysql mysql 268 Jul 24 09:17 mysqld-relay-bin.000077作为我运行的备份脚本的一部分。我每晚都会清理日志,这会有什么效果吗。
复制日志正在堆积的Maser服务器。
MariaDB [(none)]> SHOW VARIABLES LIKE 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1000 |
+---------------+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> SHOW VARIABLES LIKE '%relay%';
+-----------------------+----------------------------------------+
| Variable_name | Value |
+-----------------------+----------------------------------------+
| max_relay_log_size | 1073741824 |
| relay_log | /srv/mysql/logs/mysqld-relay-bin |
| relay_log_basename | /srv/mysql/logs/mysqld-relay-bin |
| relay_log_index | /srv/mysql/logs/mysqld-relay-bin.index |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_recovery | OFF |
| relay_log_space_limit | 0 |
| sync_relay_log | 10000 |
| sync_relay_log_info | 10000 |
+-----------------------+----------------------------------------+连接到主人的奴隶。
MariaDB [(none)]> SHOW VARIABLES LIKE 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1002 |
+---------------+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> SHOW SLAVE STATUS\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.21.228.81
Master_User: db.replicator
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: binary.000141
Read_Master_Log_Pos: 540479720
Relay_Log_File: mysqld-relay-bin.000358
Relay_Log_Pos: 540480005
Relay_Master_Log_File: binary.000141
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 540479720
Relay_Log_Space: 540480344
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1000
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: No
Gtid_IO_Pos:
Replicate_Do_Domain_Ids:
Replicate_Ignore_Domain_Ids:
Parallel_Mode: conservative
1 row in set (0.00 sec)
ERROR: No query specified发布于 2017-07-26 01:08:39
您混淆了两件事:“binlog”和“relaylog”。
母版写入到母版上的一组二进制日志。这些被任何() expire_logs_days,()显式清除,(*) OS删除命令(不推荐,但可能)清除。
奴隶从主的绑定日志中接收数据,并立即将数据写入生活在奴隶上的“中继日志”序列。"IO线程“就是这样做的。同时,"SQL线程“正在读取中继日志并执行操作。当它完成一个中继日志时,它会自动删除文件。在继电器日志上不需要手动操作。
您所做的就是在中继日志上尝试一个binlog操作。别干那事。
通常,会有一个,偶尔两个,中继日志可见奴隶。既然你看到了几十个,奴隶在复制上一定会落后得很远。这可能意味着它被卡住了。执行SHOW SLAVE STATUS;以了解原因。修复问题后,中继日志将清理(如上文所述)。
如果确实删除/清除/任何这些中继日志,则将永久中断复制。你得从头开始重建奴隶。所以,不要删除那些文件。(除非你正在重建奴隶,否则它们就会成为古老的历史。)
server_id的双主服务器会使服务器陷入混乱的循环。其中一个中继日志里有什么?
https://dba.stackexchange.com/questions/181705
复制相似问题