최근 몇 달간 서버가 자주 다운되어 빌 커버 이용 가능 여부가 보장되지 않고 있습니다. 이상하게도 크래시가 발생하면 서버는 정상적으로 연결되고, Nginx는 정상인 것 같은데 PHP-FPM은 반응하지 않습니다. 나중에 실수로 df -h를 입력했더니 다음과 같은 것을 발견했습니다: rootfs 7.7G 7.7G 0 100% /
루트 디렉터리가 가득 찼습니다! 통나무가 너무 많아서 통나무를 정리했어요. 하지만 기본적으로 매주 일요일은 꽉 찼습니다. 빌 가지는 불안해한다. 나중에 /var가 독립적으로 분할되었지만, 여전히 작동하지 않았고, 그 숫자가 얼마나 중요한지 알 수 없습니다. /var/tmp와 /var/cache도 정리했지만, 효과는 여전히 제한적입니다.
오늘, 지속 sub-du -ah는 /var/lib/mysql이 비정상 공간을 차지한다는 것을 발견했고, 여기서 cd를 ls -lh로 변환한 후 다음과 같은 결과를 찾았습니다: -rw-rw---- 1 mysql mysql 5242880 2월 27일 14:49 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 12월 27일 17:55 ib_logfile1 -rw-rw---- 1 mysql mysql 588M 3월 12일 02:03 maria_log.00000003 -rw-rw---- 1 mysql mysql 52 3월 12일 01:54 maria_log_control drwx------ 2 mysql root 4.0K 1월 15일 14:28 mysql -rw-rw---- 1 mysql mysql 20K Dec 27 17:54 mysqld-bin.000001 -rw-rw---- 1 mysql mysql 715K Dec 27 17:54 mysqld-bin.000002 -rw-rw---- 1 mysql mysql 625 12월 28일 11:46 mysqld-bin.000003 -rw-rw---- 1 mysql mysql 125 125 12월 27일 18:20 mysqld-bin.000004 -rw-rw---- 1 mysql mysql 125 125 12월 27일 18:20 mysqld-bin.000005 -rw-rw---- 1 mysql mysql 125 Dec 27 18:21 mysqld-bin.000006 -rw-rw---- 1 mysql mysql 125 Dec 27 18:21 mysqld-bin.000007 -rw-rw---- 1 mysql mysql 125 Dec 27 18:22 mysqld-bin.000008 -rw-rw---- 1 mysql mysql 125 Dec 27 18:22 mysqld-bin.000009 -rw-rw---- 1 mysql mysql 20K Dec 27 18:22 mysqld-bin.000010 -rw-rw---- 1 mysql mysql 715K 12월 27일 18:22 mysqld-bin.000011 -rw-rw---- 1 mysql mysql 125 125 12월 27일 18:24 mysqld-bin.000012 -rw-rw---- 1 mysql mysql 125 125 Dec 27 18:25 mysqld-bin.000013 -rw-rw---- 1 mysql mysql 125 125 12월 27일 18:27 mysqld-bin.000014 -rw-rw---- 1 mysql mysql 125 125 12월 28일 09:55 mysqld-bin.000015 -rw-rw---- 1 mysql mysql 125 Dec 28 11:41 mysqld-bin.000016 -rw-rw---- 1 mysql mysql 125 Dec 28 11:42 mysqld-bin.000017 -rw-rw---- 1 mysql mysql 125 Dec 28 12:07 mysqld-bin.000018 -rw-rw---- 1 mysql mysql 1.4K 12월 28일 12:49 mysqld-bin.000019 -rw-rw---- 1 mysql mysql 125 Dec 28 16:31 mysqld-bin.000020 -rw-rw---- 1 mysql mysql 107M 12월 28일 18:30 mysqld-bin.000021 -rw-rw---- 1 mysql mysql 1.2M 12월 30일 09:22 mysqld-bin.000022 -rw-rw---- 1 mysql mysql 125 12월 30일 09:26 mysqld-bin.000023 -rw-rw---- 1 mysql mysql 3.8K Dec 30 12:29 mysqld-bin.000024 -rw-rw---- 1 mysql mysql 59M 1월 11일 21:34 mysqld-bin.000025 -rw-rw---- 1 mysql mysql 10M 1월 14일 15:16 mysqld-bin.000026 -rw-rw---- 1 mysql mysql 186K 1월 15일 05:16 mysqld-bin.000027 -rw-rw---- 1 mysql mysql 21K 1월 15일 14:46 mysqld-bin.000028 -rw-rw---- 1 mysql mysql 13K Jan 15 15:12 mysqld-bin.000029 -rw-rw---- 1 mysql mysql 62M 1월 17일 16:36 mysqld-bin.000030 -rw-rw---- 1 mysql mysql 63M 1월 18일 17:10 mysqld-bin.000031 -rw-rw---- 1 mysql mysql 125 1월 18일 17:16 mysqld-bin.000032 -rw-rw---- 1 mysql mysql 21K Jan 18 17:23 mysqld-bin.000033 -rw-rw---- 1 mysql mysql 118M 1월 22일 12:41 mysqld-bin.000034 -rw-rw---- 1 mysql mysql 209K 1월 22일 12:59 mysqld-bin.000035 -rw-rw---- 1 mysql mysql 117M 1월 28일 11:59 mysqld-bin.000036 -rw-rw---- 1 mysql mysql 125 1월 28일 13:46 mysqld-bin.000037 -rw-rw---- 1 mysql mysql 24M 1월 28일 16:01 mysqld-bin.000038 -rw-rw---- 1 mysql mysql 460K 1월 28일 16:10 mysqld-bin.000039 -rw-rw---- 1 mysql mysql 7.0M 1월 28일 16:52 mysqld-bin.000040 -rw-rw---- 1 mysql mysql 2.3M 1월 28일 17:12 mysqld-bin.000041 -rw-rw---- 1 mysql mysql 2.1M 1월 28일 17:27 mysqld-bin.000042 -rw-rw---- 1 mysql mysql 173K Jan 28 17:37 mysqld-bin.000043 -rw-rw---- 1 mysql mysql 378K 1월 28일 17:44 mysqld-bin.000044 -rw-rw---- 1 mysql mysql 79K 1월 28일 17:50 mysqld-bin.000045 -rw-rw---- 1 mysql mysql 272K Jan 28 18:12 mysqld-bin.000046 -rw-rw---- 1 mysql mysql 156K 1월 28일 18:15 mysqld-bin.000047 -rw-rw---- 1 mysql mysql 962K Jan 28 18:33 mysqld-bin.000048 -rw-rw---- 1 mysql mysql 43K Jan 28 18:40 mysqld-bin.000049 -rw-rw---- 1 mysql mysql 28M 1월 29일 11:43 mysqld-bin.000050 -rw-rw---- 1 mysql mysql 125 1월 29일 11:46 mysqld-bin.000051 -rw-rw---- 1 mysql mysql 139K 1월 29일 12:37 mysqld-bin.000052 -rw-rw---- 1 mysql mysql 135K Jan 29 12:44 mysqld-bin.000053 -rw-rw---- 1 mysql mysql 409M Feb 9 23:18 mysqld-bin.000054 -rw-rw---- 1 mysql mysql 482M Feb 17 09:37 mysqld-bin.000055 -rw-rw---- 1 mysql mysql 542M Feb 27 12:30 mysqld-bin.000056 -rw-rw---- 1 mysql mysql 125 Feb 27 12:31 mysqld-bin.000057 -rw-rw---- 1 mysql mysql 125 Feb 27 14:48 mysqld-bin.000058 -rw-rw---- 1 mysql mysql 854M 3월 13일 12:08 mysqld-bin.000059 -rw-rw---- 1 mysql mysql 1.1K 2월 27일 14:49 mysqld-bin.index
세상에, 이 통나무와 통들은 대체 뭐야?! 드디어 정보를 찾았습니다:
mysql-bin.000001, mysql-bin.000002 등 데이터베이스의 연산 로그로, 예를 들어 UPDATE a table, DELETE some, 설령 문이 데이터와 일치하지 않더라도 이 명령어는 로그 파일에 저장되며, 각 문장의 실행 시간도 기록됩니다. 이는 주로 운영 검토와 다중 데이터베이스 동기화를 위한 것입니다. ib_logfile InnoDB의 테이블 일관성을 기록하는 데 사용되며, 크래시 후에만 작동합니다. maria_log.00000003은 Bill Gai가 사용하는 MariaDB 전용 파일로, 유사한 역할을 합니다.
하지만 빌 커버에게는 마스터-슬레이브 데이터베이스도, 검토 작업도 없으며, 이 파일들은 완전히 쓸모가 없습니다! 그러니까 먼저 이 파일들을 정리해. 그 다음 mysql 설정 파일을 편집하고, 이 로그들을 기록하도록 정리하세요.잡초를 삽으로 치우고 뿌리를 제거하세요. Gentoo의 MySQL 로그는 /etc/mysql/my.cnf에 있습니다. 안에 있는 통나무통 줄에 코멘트를 달아라.
그 다음 MySQL 서버를 재시작하면 문제가 해결됩니다! 즉시 사용 가능한 공간 수를 늘리세요! |