Tất cả tài liệu

Managed – FPT Database Engines

    MySQL
    MySQL
    Updated on 26 Nov 2025

    Giới thiệu

    Trang MySQL Troubleshooting cung cấp hướng dẫn nhanh giúp bạn xác định và xử lý các lỗi thường gặp khi sử dụng dịch vụ MySQL trên FPT Cloud. Nội dung tập trung vào những vấn đề phổ biến như lỗi kết nối, lỗi cấu hình, sự cố hiệu năng, lỗi backup/restore và các tình huống đặc thù của MySQL.

    Mỗi mục đều trình bày dấu hiệu nhận biết, nguyên nhân và cách khắc phục rõ ràng, giúp bạn dễ dàng tự kiểm tra hoặc phối hợp với đội ngũ hỗ trợ kỹ thuật.

    Mục tiêu của tài liệu là giúp bạn vận hành MySQL ổn định, an toàn và hiệu quả hơn, đồng thời giảm thời gian gián đoạn khi xảy ra sự cố.

    Danh mục lỗi

    1. Backup Error: “Please run OPTIMIZE TABLE on all listed tables…”

    1.1. Dấu hiệu nhận biết

    Trong quá trình thực hiện sao lưu MySQL trên dịch vụ FPT Database Engine của FCI, tác vụ backup có thể thất bại và gửi thông báo lỗi qua email như sau:

    cluster_id : abcxyz11
    cluster_name : clustername
    vdc_name : ABCXYZ_VCD
    org_name : ABCXYZ-ORG
    start_time : 10/23/2055 00:30:02
    backup_type : diff
    backup_size : NoneG
    backup_log : ERROR: Please run OPTIMIZE TABLE on all listed tables to fix this issue. Tables found: db/transactions...
    backup_state : failed
    created_at : 10/23/2055 00:31:01

    Lỗi này xảy ra do một bug trong Percona XtraBackup (phần mềm được FCI sử dụng để thực hiện backup trên dịch vụ FDE).

    1.2. Nguyên nhân

    Kể từ MySQL 8.0.29 trở đi, InnoDB hỗ trợ INSTANT ADD/DROP COLUMN để thêm hoặc xoá cột.

    Đặc điểm của lệnh INSTANT:

    • InnoDB không sao chép lại toàn bộ bảng

    • Không rebuild table

    • Chỉ ghi thêm metadata đặc biệt trong InnoDB dictionary. Metadata này xuất hiện dưới dạng TOTAL_ROW_VERSIONS > 0

    Tuy nhiên: XtraBackup không tương thích hoàn toàn với bảng có metadata TOTAL_ROW_VERSIONS > 0 dẫn đến XtraBackup không thể xử lý bảng đã từng sử dụng INSTANT ADD/DROP COLUMN. Kết quả là tác vụ backup sẽ dừng lại và trả về lỗi yêu cầu OPTIMIZE TABLE.

    1.3. Giải pháp

    Cần rebuild lại bảng để loại bỏ metadata INSTANT bằng lệnh:

    OPTIMIZE TABLE db.transactions;

    Sau khi thực hiện:

    • Bảng sẽ được rebuild hoàn toàn

    • Metadata “INSTANT COLUMN VERSION” được loại bỏ hoàn toàn

    • TOTAL_ROW_VERSIONS trở về 0

    • Backup sẽ chạy bình thường trở lại

    1.4. Chú ý khi thực hiện

    • OPTIMIZE TABLE sẽ rebuild toàn bộ bảng → có thể gây WRITE lock (khoá ghi)

    • Với bảng lớn, thời gian rebuild có thể dài → nên thực hiện ngoài giờ cao điểm.

    • Cần đảm bảo đủ không gian lưu trữ tạm thời để thực hiện rebuild.