我们已设置站点到站点的 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
在从服务器上设置变量,它不会破坏任何东西(因为它控制配置它的服务器上的二进制日志到期日期),但如果您根本不需要它们 - 为什么要保留它们?