首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在binlog索引中找不到目标日志,来自清除二进制日志mysqld-中继-bin。

在binlog索引中找不到目标日志,来自清除二进制日志mysqld-中继-bin。
EN

Database Administration用户
提问于 2017-07-25 09:23:37
回答 1查看 4.2K关注 0票数 0

我正在试着运行以下程序。

代码语言:javascript
复制
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

我能做些什么来手动清除这些中继日志。

代码语言:javascript
复制
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服务器。

代码语言:javascript
复制
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                                  |
+-----------------------+----------------------------------------+

连接到主人的奴隶。

代码语言:javascript
复制
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
EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-07-26 01:08:39

您混淆了两件事:“binlog”和“relaylog”。

母版写入到母版上的一组二进制日志。这些被任何() expire_logs_days,()显式清除,(*) OS删除命令(不推荐,但可能)清除。

奴隶从主的绑定日志中接收数据,并立即将数据写入生活在奴隶上的“中继日志”序列。"IO线程“就是这样做的。同时,"SQL线程“正在读取中继日志并执行操作。当它完成一个中继日志时,它会自动删除文件。在继电器日志上不需要手动操作。

您所做的就是在中继日志上尝试一个binlog操作。别干那事。

通常,会有一个,偶尔两个,中继日志可见奴隶。既然你看到了几十个,奴隶在复制上一定会落后得很远。这可能意味着它被卡住了。执行SHOW SLAVE STATUS;以了解原因。修复问题后,中继日志将清理(如上文所述)。

如果确实删除/清除/任何这些中继日志,则将永久中断复制。你得从头开始重建奴隶。所以,不要删除那些文件。(除非你正在重建奴隶,否则它们就会成为古老的历史。)

,但它是主人??

  • 这是一个“双重大师”的设置吗?这是当两个服务器中的每一个都是主从双方的时候。
  • 或者它曾经是奴隶,而这些原木却没有被清理掉?
  • 嗯..。所有的日志似乎都是“空”(299字节),好像有些东西配置错误?比如..。
  • 具有相同server_id的双主服务器会使服务器陷入混乱的循环。

其中一个中继日志里有什么?

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/181705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档