Tôi đã đọc về MySQL. Theo tôi, tôi thấy hai loại nhật ký rất giống nhau. MySQL lưu cách thức và thời điểm dữ liệu được thay đổi trong nhật ký. Thông tin được sử dụng để phục hồi MySQL. Tôi đang nhầm lẫn chức năng của hai loại nhật ký.
Tôi đã đọc về MySQL. Theo tôi, tôi thấy hai loại nhật ký rất giống nhau. MySQL lưu cách thức và thời điểm dữ liệu được thay đổi trong nhật ký. Thông tin được sử dụng để phục hồi MySQL. Tôi đang nhầm lẫn chức năng của hai loại nhật ký.
Câu trả lời:
Nhật ký REDO là thuật ngữ của Oracle, nhật ký giao dịch là thuật ngữ InnoDB. Bây giờ tất cả đều là kỹ sư của Oracle, mọi người sử dụng cả hai để đề cập đến cùng một thứ trong MySQL .
Nhật ký giao dịch, theo mặc định - nó có thể được thay đổi - hai tệp nằm trong $ DATADIR được gọi ib_logfile0
và ib_logfile1
. Nó phục vụ các chức năng tương tự như nhật ký REDO trong các cơ sở dữ liệu khác - lưu trữ ghi theo cách an toàn và phục hồi trong trường hợp xảy ra sự cố, mặc dù có một số chi tiết trong triển khai khác với chức năng của RDMS khác. Nó là thành phần chính để InnoDB trở thành một công cụ giao dịch.
Đừng nhầm lẫn nhật ký giao dịch với nhật ký nhị phân trong MySQL . Theo mặc định, binlog nằm trên $ DATADIR và *hostname*-bin.index
một số *hostname*-bin.00001
, v.v. Điều này gây nhầm lẫn cho những người đến từ các cơ sở dữ liệu khác, bởi vì nó được sử dụng cho những thứ khác mà các cơ sở dữ liệu khác sử dụng nhật ký REDO cho: sao chép và chỉ thời gian hồi phục. Sự khác biệt chính là nhật ký giao dịch chỉ dành cho InnoDB, nhật ký nhị phân (phần lớn) không phụ thuộc vào giao dịch, vì nó dành cho tất cả các công cụ lưu trữ, giao dịch hay không. MyISAM sẽ ghi (nếu được bật) vào nhật ký nhị phân. InnoDB sẽ ghi vào nhật ký giao dịch và nhật ký nhị phân.
Thông tin thêm về hướng dẫn: Nhật ký REDO , nhật ký nhị phân .
Trong SQL Server, các tệp TLog lưu trữ cả thông tin hoàn tác và làm lại. Nhưng trong MYSQL và Oracle, TLog / Redo Log chỉ lưu trữ thông tin.
Đăng nhập nhị phân trong MySQL là một cách để có thời gian phục hồi. Kích hoạt ghi nhật ký nhị phân tương đương với việc có mô hình khôi phục đầy đủ trong SQL Server.