环球资源网商务网站建设目的,推广网站刷排名,做酒类直供网站行吗,深圳找网站建设作者#xff1a;田逸#xff08;formyz#xff09; 一大早就收到某个数据库服务器磁盘满的报警信息#xff0c;其中数据盘使用率超过90%#xff0c;如下图所示。 这是一台刚上线不久的MySQL从库服务器#xff0c;数据盘的总容量是300G。先登录系统#xff0c;查看主从同…作者田逸formyz 一大早就收到某个数据库服务器磁盘满的报警信息其中数据盘使用率超过90%如下图所示。 这是一台刚上线不久的MySQL从库服务器数据盘的总容量是300G。先登录系统查看主从同步是否正常幸运的是主从同步正常再看看磁盘空间的使用情况执行的命令及输出如下。 [rootMySQL-S-200-169 mysql_db]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 6.3G 8.6M 6.3G 1% /run /dev/mapper/rl-root 33G 3.4G 30G 11% / /dev/sda1 1014M 220M 795M 22% /boot /dev/sdb1 300G 271G 29G 91% /data tmpfs 3.2G 0 3.2G 0% /run/user/0 分区“/data”为MySQL数据库用户数据存储的空间初步判定多半是日志文件之类的给塞满了。进入用户数据目录选项文件”/etc/my.cnf”设定的数据目录为”/data/mysql_db”,发现大量以“OFF”为前缀的文件如下图所示感觉莫名其妙呢 这些文件大小在1G左右从经验上感觉可能是日志文件。不确定是“OFF”做前缀眼神不好还是“0FF”做前缀可用如下命令进行鉴别。 [rootMySQL-S-200-169 mysql_db]# ls -al 0FF*|more ls: cannot access 0FF*: No such file or directory [rootMySQL-S-200-169 mysql_db]# ls -al 0FF* ls: cannot access 0FF*: No such file or directory [rootMySQL-S-200-169 mysql_db]# ls -al OFF*|more -rw-r----- 1 mysql mysql 1073743407 Feb 3 14:13 OFF.000001 -rw-r----- 1 mysql mysql 1073742872 Feb 3 14:16 OFF.000002 -rw-r----- 1 mysql mysql 1073741885 Feb 3 14:20 OFF.000003 ………………省略……………………………………………….. 从输出可知是大写字母“O”而不是数字“0”。对比其它运行正常的MySQL数据库都没有这样的文件存在问题在哪里呢 因为这个数据库系统上线不久做了哪些操作应该还有些印象。回顾一下最近所做的操作突然想起上周主从不同步延迟特别大4万多秒为了处理这个主从不同步的麻烦对MySQL的选项文件“/etc/my.cnf”做了修改因为是从库就决定将数据库的二进制日志记录给关闭将文本行“log-bin mysql-bin”变更成“log-bin OFF”还增加了其它的项这里不做展开。修改完毕MySQL主从同步的延迟问题得以解决。 当MySQL数据库二进制日志设定为“log-binmysql-bin”时启动MySQL服务以后会在数据目录下生成以“mysql-bin.”为前缀后紧跟一串数字结尾的二进制日志文件并且按数字顺序生成形如“mysql-bin.000001、mysql-bin.0000012”。通过对比发现这些以“OFF.”为前缀的大文件也是同样的规律。排查到这里我幡然醒悟“MySQL选项文件my.cnf设定的log-binOFF并不能关闭二进制日志的生成而是生成以OFF为前缀的二进制文件而已”。 通过查询资料MySQL 8这个版本要关闭“binlog”二进制日志记录需在选项文件注意不要认为是配置文件“/etc/my.cnf”中设置文本行“disable-log-bin”或者“skip-log-bin”。更改好选项文件之后重启MySQL服务确保主从复制正常的情况下检查二进制日志生成的状况具体的操作是MySQL客户端登录MySQL执行下列操作进行验证。 mysql show variables likelog_%; -------------------------------------------------------------------------------- | Variable_name | Value | -------------------------------------------------------------------------------- | log_bin | OFF | | log_bin_basename | | | log_bin_index | | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | log_error | /data/mysql_db/error.log | | log_error_services | log_filter_internal; log_sink_internal | | log_slave_updates | OFF | | log_slow_admin_statements | OFF | | log_slow_extra | OFF | | log_slow_replica_statements | OFF | | log_slow_slave_statements | OFF | | log_statements_unsafe_for_binlog | ON | | log_throttle_queries_not_using_indexes | 0 | | log_timestamps | UTC | -------------------------------------------------------------------------------- 21 rows in set (0.01 sec) mysql show binary logs; ERROR 1381 (HY000): You are not using binary logging 为确保手动删除MySQL从数据库服务器占用大量磁盘空间的二进制文件不引起新的风险在操作前必须对数据库进行全量备份或者整个操作系统备份Proxmox VE虚拟机的优势所在操作如下图所示停止MySQL服务删除所有以“OFF.”为前缀的大文件然后重启MySQL服务。 经验证磁盘空间释放MySQL服务运行正常主从复制也正常。