Tutorial 2x "Tổng vệ sinh" Diễn đàn XenForo 2.3 - Dọn dẹp Database và File System định kỳ

PVS

Super Moderator
Thành viên BQT
"Tổng vệ sinh" Diễn đàn XenForo 2.3 - Dọn dẹp Database và File System định kỳ

Theo thời gian, diễn đàn XenForo của bạn cũng giống như một ngôi nhà, sẽ dần tích tụ "bụi" và "rác" vô hình. Đó là các bảng log ngày càng phình to, các dữ liệu tạm không còn cần thiết, các file đính kèm "mồ côi"... Việc dọn dẹp định kỳ không chỉ giải phóng dung lượng lưu trữ mà còn giúp database hoạt động hiệu quả hơn, tăng tốc độ tải trang và làm cho quá trình backup nhanh hơn.

don-dep-Database-va-File-System-dinh-ky.png

Bài viết này sẽ hướng dẫn bạn quy trình "tổng vệ sinh" an toàn và hiệu quả cho cả cơ sở dữ liệu (database) và hệ thống file của XenForo.

Cảnh báo cực kỳ quan trọng! nói:
TRƯỚC KHI BẮT ĐẦU, HÃY BACKUP TOÀN BỘ DATABASE VÀ SOURCE CODE CỦA BẠN. Các thao tác trong bài viết này sẽ xóa dữ liệu vĩnh viễn. Không có backup, bạn sẽ không thể phục hồi nếu có sai sót. Hãy thao tác một cách cẩn trọng.


Đây là nơi tích tụ nhiều dữ liệu rác nhất. Chúng ta sẽ sử dụng một công cụ quản lý database như phpMyAdmin để thực hiện các lệnh SQL.

Các bảng log ghi lại hoạt động của admin, moderator, lỗi hệ thống... rất hữu ích để tra cứu nhưng sẽ rất lớn theo thời gian và hiếm khi cần xem lại dữ liệu quá cũ.
Hành động: Chạy các lệnh SQL sau trong phpMyAdmin để xóa sạch dữ liệu trong các bảng này. Lệnh TRUNCATE sẽ reset bảng về trạng thái trống, nhanh hơn DELETE.
SQL:
TRUNCATE TABLE `xf_admin_log`;
TRUNCATE TABLE `xf_moderator_log`;
TRUNCATE TABLE `xf_user_change_log`;
TRUNCATE TABLE `xf_ip`;
TRUNCATE TABLE `xf_spam_cleaner_log`;
TRUNCATE TABLE `xf_session_activity`;

Khi bạn di chuyển một chủ đề, XenForo sẽ tạo ra một chủ đề "bóng ma" để chuyển hướng. Chúng không cần thiết phải tồn tại mãi mãi.
Hành động: Chạy lệnh SQL sau để xóa các chủ đề chuyển hướng cũ hơn 30 ngày.
SQL:
DELETE FROM xf_thread WHERE discussion_state = 'redirect' AND last_post_date < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY));

Hành động: Chạy lệnh SQL sau để xóa dữ liệu tìm kiếm cũ.
SQL:
DELETE FROM xf_search_index WHERE result_date < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY));

Sau khi đã xóa rất nhiều dữ liệu, bạn nên "chống phân mảnh" cho các bảng để sắp xếp lại cấu trúc vật lý, giúp truy vấn nhanh hơn.
Hành động:
  1. Trong phpMyAdmin, chọn database của bạn.
  2. Kéo xuống cuối danh sách các bảng, nhấp vào Check all.
  3. Ở ô dropdown "With selected:", chọn Optimize table.
  4. Chờ quá trình hoàn tất.


Các file vật lý cũng cần được quan tâm, chủ yếu nằm trong thư mục datainternal_data.

Đôi khi, các file đính kèm vẫn còn trên server dù bài viết chứa nó đã bị xóa. XenForo có một công cụ để tìm và xóa chúng.
Hành động:
  1. Đăng nhập vào AdminCP.
  2. Truy cập trực tiếp vào URL sau: your-domain.com/admin.php?tools/run-job&job=XF%3AFileCheck
  3. Nhấp vào nút Run job now.
  4. Hệ thống sẽ quét và báo cáo các file không còn được sử dụng. Bạn có thể xóa chúng từ giao diện này.

Thư mục internal_data/temp chứa các file tạm thời như ảnh upload chưa hoàn chỉnh.
Hành động:
  1. Sử dụng FTP hoặc File Manager.
  2. Truy cập thư mục internal_data/temp.
  3. Xóa tất cả các file có ngày tạo cũ hơn 1 tuần. Không nên xóa các file quá mới vì chúng có thể đang được sử dụng.


Để không phải làm thủ công, bạn có thể tự động hóa việc dọn dẹp database bằng Cron Job.
  1. Tạo một file SQL: Tạo một file văn bản, đặt tên là cleanup.sql và dán tất cả các lệnh TRUNCATEDELETE ở Phần 1 vào đó. Tải file này lên một thư mục nào đó trên hosting của bạn.
  2. Tạo Cron Job: Trong cPanel của hosting, tìm đến mục Cron Jobs.
  3. Thiết lập lệnh: Tạo một cron job mới để chạy vào một thời điểm cố định (ví dụ: 3 giờ sáng ngày đầu tiên mỗi tháng). Lệnh để thực thi sẽ có dạng:
    Bash:
    mysql -u TEN_DATABASE_USER -p'MATKHAU_DATABASE' TEN_DATABASE < /home/user/path/to/your/cleanup.sql
    (Hãy thay các thông tin database của bạn vào lệnh trên.)

Bảo trì diễn đàn là một công việc không thể bỏ qua. Bằng cách thực hiện các bước dọn dẹp database và file system định kỳ khoảng vài tháng một lần, bạn sẽ đảm bảo "ngôi nhà chung" của mình luôn ở trong tình trạng tốt nhất: gọn gàng, nhanh chóng và ổn định. Và hãy luôn nhớ quy tắc vàng: Luôn backup trước khi thực hiện bất kỳ thao tác nào!

Chúc các bạn thành công.


VNXF.VN​
 
Back
Top