Tôi đang làm việc trên một dự án mà chúng tôi bắt buộc phải sử dụng "ghi nhật ký giao dịch" trong DBMS (MySQL) của chúng tôi. Chúng tôi đã chuyển sang sử dụng InnoDB để sử dụng các giao dịch cho một yêu cầu khác. Tôi đang cố gắng hiểu được nhật ký giao dịch là gì. Tôi đã tìm kiếm hơn một ngày nay, bao gồm đọc qua tài liệu MySQL. Có lẽ tôi chỉ không tìm kiếm các từ khóa đúng, tôi không chắc chắn. Hoặc có thể "ghi nhật ký giao dịch" là thuật ngữ không phù hợp.Ghi nhật ký giao dịch MySQL
Từ những gì tôi hiểu, nhật ký giao dịch cơ sở dữ liệu tương tự như hệ thống tệp nhật ký trong những thay đổi được thực hiện cho một tạp chí trước khi chúng được cam kết với hệ thống tệp. Từ những gì tôi đã đọc, có vẻ như động cơ InnoDB lưu trữ các giao dịch trong một số loại tạp chí trước khi chúng được cam kết vào đĩa. Điều này có chính xác không? Nếu vậy, đâu là nhật ký giao dịch? Có phải ib_logfile0 và ib_logfile1 không?
Tôi hiểu rằng các tệp nhật ký này dành cho khôi phục sự cố nhưng cơ chế MVCC không chịu trách nhiệm về "giao dịch" xảy ra đúng khi không xảy ra sự cố? MyISAM có một số mức độ phục hồi sự cố trong khi nó không có giao dịch nào cả. – karatedog
Cảm ơn bạn đã phản hồi chi tiết và kịp thời. Tôi hơi bối rối về việc phát lại các mục nhập trong nhật ký.Nếu có sự thất bại ở giữa giao dịch, trước khi giao dịch được phát hành, tôi cho rằng bạn sẽ không muốn phát lại các mục nhập vì giao dịch là tất cả hoặc không có gì (bạn sẽ không muốn một phần giao dịch được cam kết). Hoặc là bạn nói rằng họ sẽ được phát lại chỉ khi có một cam kết, nhưng sự thất bại xảy ra trước khi giao dịch được cam kết với cơ sở dữ liệu, nhưng sau khi nó được lưu trong các tệp nhật ký? – alfredough