Chỉ sao chép bảng MyISAM cấp tệp giữa các phiên bản của máy chủ có cùng:
- CPU 'endian' (SPARC! =X86)
- Các phiên bản MySQL có thể nâng cấp mà không cần chuyển đổi (5.0.48 sao chép thành 5.0 .52 không hợp lệ do cấu trúc chỉ mục thay đổi, nhưng bản sao 5.0.52 thành 5.1.45 là hợp lệ).
Cẩn thận với các điều kiện chủng tộc ... Bạn có thể đang truy cập các tệp bằng FTP hoặc một số công cụ khác, trong khi cơ sở dữ liệu đang đọc bảng. Có các 'bộ đếm' của bảng được cập nhật trong .MYI để thậm chí có những lần đọc bảng lành tính nhất.
Tôi nhận thấy những điều sau sẽ đảm bảo tính toàn vẹn của bảng MyISAM đối với bất kỳ thao tác cấp tệp nào:
LOCK TABLE x WRITE;
FLUSH TABLE x; -- closes all file handles into table by mysql.
< perform file-level manipulations >
FLUSH TABLE x; -- A 'stat' of the table occurs and info-schema is updated appropriately.
UNLOCK TABLES;
Nếu bạn KHÔNG khóa ghi bảng của mình, mysql có thể truy cập nó (đọc hoặc ghi) trong khi bạn đang thực hiện thao tác / sao chép cấp tệp của mình.
Đây cũng là cơ chế tương tự được sử dụng để cho phép 'myisampack', 'myisamchk' cho các bảng trên cơ sở dữ liệu HOT thậm chí đã tắt khóa bên ngoài mà không lo bị hỏng.
- J Jorgenson -