MySQL 复制日志填充分区

MySQL 复制日志填充分区

我们已设置站点到站点的 MySQL 复制。从属服务器只是用于报告等的备份(无写入)。据我所知,一切进展顺利。

但是,服务器很快就耗尽了 mysql 复制日志分区的空间。

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 
                  Master_User: 
                  Master_Port: 
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000006
          Read_Master_Log_Pos: 43158527
               Relay_Log_File: mysql-relay-bin.000015
                Relay_Log_Pos: 43158672
        Relay_Master_Log_File: mysql-bin.000006
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB: mysql
           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: 43158527
              Relay_Log_Space: 43158870
              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:

这就是令人困惑的地方。我想将 expire_logs_days 实现为 3 天左右......

但是我担心破坏复制,因为;

Master_log_file = 006 其日期是 11 月 18 日。

-rw-rw----. 1 mysql mysql  20K Nov  3 15:36 mysql-bin.000001
-rw-rw----. 1 mysql mysql 748K Nov  3 15:36 mysql-bin.000002
-rw-rw----. 1 mysql mysql 1.1G Nov 18 09:06 mysql-bin.000003
-rw-rw----. 1 mysql mysql 216M Nov 18 09:22 mysql-bin.000004
-rw-rw----. 1 mysql mysql  125 Nov 18 09:39 mysql-bin.000005
-rw-rw----. 1 mysql mysql 1.1G Nov 18 11:34 mysql-bin.000006
-rw-rw----. 1 mysql mysql 1.1G Nov 18 11:41 mysql-bin.000007
-rw-rw----. 1 mysql mysql 1.1G Nov 18 14:23 mysql-bin.000008
-rw-rw----. 1 mysql mysql 1.1G Nov 18 14:29 mysql-bin.000009
-rw-rw----. 1 mysql mysql 1.1G Nov 19 08:57 mysql-bin.000010
-rw-rw----. 1 mysql mysql 366M Nov 20 09:37 mysql-bin.000011
-rw-rw----. 1 mysql mysql  60M Nov 20 12:09 mysql-bin.000012
-rw-rw----. 1 mysql mysql  23K Nov 20 12:10 mysql-bin.000013
-rw-rw----. 1 mysql mysql 1.1G Nov 23 00:43 mysql-bin.000014
-rw-rw----. 1 mysql mysql 1.1G Nov 26 12:03 mysql-bin.000015
-rw-rw----. 1 mysql mysql 251M Nov 27 11:33 mysql-bin.000016
-rw-rw----. 1 mysql mysql  304 Nov 26 12:03 mysql-bin.index

问题

  • 我是否需要为日志文件过期设置更高的天数阈值?

  • 即“SET GLOBAL expire_logs_days = 3;”会破坏我的复制吗,因为 mysql-bin.000006 是当前的 master_log_file?

  • 也许除了到期之外,将日志文件大小限制设置得更低也是一个解决方案?

我已经研究过这些最初的想法,但我想 100% 确定: https://dba.stackexchange.com/questions/41050/is-it-safe-to-delete-mysql-bin-files http://dev.mysql.com/doc/refman/5.1/en/replication-administration-status.html

提前致谢

答案1

您正在查看从服务器自己的二进制日志。从服务器显然已log_bin设置变量,并且正在用自己的二进制日志填充磁盘(不是主服务器的日志,它们的名称可能包含一个relay单词,因为您在二进制和中继日志名称中使用了默认值)。您可以使用 查看它们show master status。要解决此问题(如果您没有任何从服务器连接到此从服务器),您可以将变量设置log_bin为 OFF。是的,您也可以expire_logs_days在从服务器上设置变量,它不会破坏任何东西(因为它控制配置它的服务器上的二进制日志到期日期),但如果您根本不需要它们 - 为什么要保留它们?

相关内容