개발 이야기/DB, 데이터분석, AI
MySql(MariaDB) binary logs 관리
가온아
2021. 12. 2. 10:50
새로 DB 구축할 때 가끔 까먹는 설정 중 하나가 binary logs 유효기간을 설정하는 것입니다.
용량 부족해서 터져봐야... "아.. !! XxXxxXxX ... "
각설하고 바로 정리하겠습니다.
> mysql -uroot -p
MariaDB [(none)]> show variables like '%expore%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| expire_logs_days | 0 | >> 0으로 설정되어 있습니다. 영구적으로 남깁니다.
| innodb_log_arch_expire_sec | 0 |
+----------------------------+-------+
2 rows in set (0.01 sec)
MariaDB [(none)]> set global expire_logs_days=7; >> 7일 정도면 충분하리라 생각됩니다.
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show variables like '%expire%'; >> 다시 설정값을 확인해보면..
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| expire_logs_days | 7 | >> 잘 설정되어 있네요.
| innodb_log_arch_expire_sec | 0 |
+----------------------------+-------+
2 rows in set (0.00 sec)
그런데 disk 용량이 아예 부족해지면 mysql console로 접속도 못하게 됩니다.
그럴때는 mysql 폴더로 가서 바이너리 로그를 직접 삭제해야 합니다.
cd /var/lib/mysql >> mysql 바이너리 파일이 있는 폴더로 접근합니다.
vi mysql-bin.index >> 로 들어가서 마지막 binaray 파일만 남겨두고 모두 삭제하세요.
rm -rf mysql-bin.0000xx >> mysql-bin.index 에 남겨둔 파일명을 제외한 나머지 바이너리 파일을 삭제하면 됩니다.
혹시 다른 큰 파일의 용량으로 문제가 발생한다면 du -sh * 로 문제된 파일이 어디있는지 확인해서 해결하시면 됩니다.
개발에 관리에 ... 어려운 시기에.. 작은 회사에서 일해가는게 쉽지 않지만... 즐거운 마음으로 또 하루 이어갑니다. :)
반응형