질문/조언질답게시판
Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

  사이트를 어느정도 운영하고 나니 데이터베이스가 엄청 커집니다. 서버이전을 위하여 백업 복원할때 시간이 많이 걸리네요. 하나의 사이트만 770MB, 사이트tar.gz 로 압축하면 2기가 미만인데 데이터가 너무 많습니다. phpmyadmin으로 들여오기하는데 시간이 많이 걸리고 에러가 발생하여 고민입니다. 데이터중 xe_sesion 몇백메가나 차지합니다. 해당 데이터를 삭제하거나 비우기 해도 괜찮을까요. 아니면 불필요한 데이터를 비우면 좋을까요? 몇개의 데이터를 비우고 백업하니 50메가 정도로 확 줄어드네요. 문제는 사이트에서 에러가 발생 ㅠㅠ

 

  데이터베이스에는 접속국가랑 아이피 브라우저 정보가 모두 저장되는것 같습니다. 일정한 시기로 비우는 방법이 없을까요? 

  • profile

    시스템 설정 → 고급 설정 → 인증 세션 DB 사용 옵션을 끄세요. 이 설정을 변경하면 로그인이 풀려서 다시 로그인해야 합니다. 그 후에 session 테이블을 비우기 하셔도 됩니다. 해당 옵션을 계속 꺼두시면 이 테이블 용량이 다시 늘어나지는 않을 것입니다.

     

    다른 테이블들은 서로 연결되어 있을 수 있기 때문에 함부로 건드리면 곤란합니다. 예를 들어 모듈 - 문서 - 추천기록 - 신고기록 - 댓글 - 댓글 순서 - 댓글 추천기록 - 댓글 신고기록 - 첨부파일 등이 호박넝쿨처럼 모두 얽혀 있지요. 이런 것들을 지울 때는 관리자 화면에서 처리해야 연결된 데이터까지 모두 깔끔하게 정리가 됩니다. DB에서 임의로 조작하면 나중에 심각한 문제가 생길 수도 있습니다.

     

    단, spamfilter_log, advanced_mailer_***_log, files_changelog는 아무 때나 비우셔도 무방합니다. 로그인 기록 모듈 등 서드파티에서 사용하는 로그 성격의 테이블도 오래된 데이터를 정기적으로 지워주면 좋습니다. 알림센터도 데이터가 많이 쌓이곤 하는데, 일정 기간 이상 지난 알림은 지워도 상관없습니다. 가끔 "나 알림 1000개나 쌓여 있음"에서 쾌감을 느끼고 알림을 지우면 거부반응을 일으키는 알림갯수성애자 회원들이 있긴 합니다만... 그런 변태가 바로 서버 부하를 일으키는 주범이므로 무시하시기 바랍니다. ㅋㅋㅋ

     

    직접 운영하시는 서버라면 https://rhymix.org/manual/misc/crontab 을 참고하여 불필요한 데이터를 정기적으로 비워주도록 설정하시면 매우 쾌적합니다.

     

    사이트 규모가 커지면 phpmyadmin으로 내보내기/들여오기하는 것은 언젠가 포기해야 합니다. 터미널에서 mysqldump, mysql 명령을 사용해서 빠르고 안전하게 DB를 백업하는 방법을 찾아보세요.

     

    글을 읽을 때 포인트가 차감되는 사이트라면 document_readed_log가 많이 쌓일 텐데, 이걸 비우면 예전에 읽었던 글을 다시 읽을 때 포인트가 중복으로 차감되기도 합니다. 예전에 포인트 차감 정책을 운영했다가 더이상 사용하지 않게 되었다면 이 테이블을 비워도 무방합니다.

  • profile profile
    답변감사합니다.