Xóa nhật ký bin mysql

Câu lệnh PURGE BINARY LOGS xóa tất cả các tệp nhật ký nhị phân được liệt kê trong tệp chỉ mục nhật ký trước ngày hoặc tên tệp nhật ký được chỉ định. BINARYMASTER là từ đồng nghĩa. Các tệp nhật ký đã xóa cũng bị xóa khỏi danh sách được ghi trong tệp chỉ mục, để tệp nhật ký đã cho trở thành tệp đầu tiên trong danh sách

Biểu thức ngày giờ có định dạng 'YYYY-MM-DD hh. mm. ss'

Nếu một bản sao đang hoạt động nhưng vẫn chưa đọc được từ tệp nhật ký nhị phân mà bạn cố xóa, câu lệnh sẽ không thành công với lỗi. Tuy nhiên, nếu bản sao không được kết nối và chưa đọc được từ tệp nhật ký mà bạn xóa, thì tệp đó sẽ bị xóa, nhưng bản sao sẽ không thể tiếp tục sao chép sau khi kết nối lại

Câu lệnh này không có hiệu lực nếu máy chủ không được khởi động với tùy chọn bật ghi nhật ký nhị phân

Để liệt kê các tệp nhật ký nhị phân trên máy chủ, hãy sử dụng HIỂN THỊ NHẬT KÝ BINARY. Để xem họ đang đọc những tệp nào, hãy sử dụng SHOW SLAVE STATUS (hoặc SHOW REPLICA STATUS từ MariaDB 10. 5. 1). Bạn chỉ có thể xóa các tệp cũ hơn tệp cũ nhất được sử dụng bởi nô lệ

Để xóa tất cả các tệp nhật ký nhị phân, hãy sử dụng RESET MASTER. Để di chuyển đến một tệp nhật ký mới (ví dụ: nếu bạn muốn xóa tệp nhật ký hiện tại), hãy sử dụng FLUSH LOGS trước khi bạn thực hiện PURGE LOGS

Nếu biến hệ thống máy chủ không được đặt thành 0, thì máy chủ sẽ tự động xóa tệp nhật ký nhị phân sau số ngày đã cho. Từ MariaDB 10. 6, biến cho phép kiểm soát chính xác hơn đối với việc xóa binlog và được ưu tiên nếu cả hai đều khác không

Yêu cầu đặc quyền SUPER hoặc, từ MariaDB 10. 5. 2, đặc quyền, để chạy

ví dụ

PURGE BINARY LOGS TO 'mariadb-bin.000063';
PURGE BINARY LOGS BEFORE '2013-04-21';
PURGE BINARY LOGS BEFORE '2013-04-22 09:55:22';

Xem thêm

Bình luận

Nội dung được sao chép trên trang web này là tài sản của chủ sở hữu tương ứng và nội dung này không được MariaDB xem xét trước. Quan điểm, thông tin và ý kiến ​​được thể hiện bởi nội dung này không nhất thiết đại diện cho quan điểm của MariaDB hoặc bất kỳ bên nào khác

Khi bạn cần xóa nhật ký nhị phân trên máy chủ MySQL, bạn chỉ cần kết nối với máy chủ của mình và sử dụng lệnh PURGE BINARY LOGS như thế này

________0

Ví dụ

________1

Sẽ xóa tất cả nhật ký nhị phân trước ngày. Phương pháp khác là xóa tệp nhật ký trên thuộc tính « tên » của tệp nhật ký. Thí dụ

________2

Nhưng đôi khi bạn có thể gặp vấn đề lớn hơn. không còn dung lượng trên thiết bị và bạn không thể giải phóng dung lượng bằng phương pháp khác. Trong trường hợp này, giải pháp duy nhất là thả các tệp nhật ký nhị phân theo cách thủ công. Giả sử có thể tìm thấy nhật ký nhị phân của bạn trong/var/lib/mysql, bạn có thể thực hiện việc này để khắc phục sự cố của mình

Bước đầu tiên. dừng mysql (cú pháp có thể phụ thuộc vào phiên bản phân phối linux của bạn). Thí dụ

 service mysql stop 

Bước thứ hai. đếm và xóa 50% nhật ký nhị phân để giải phóng dung lượng và xóa chúng khỏi chỉ mục nhật ký nhị phân Mysql

 cd /var/lib/mysql && a=`ls |grep -v relay |grep bin.index` && b=`wc -l <$a` ; c=`echo $(($b/2))` |xargs -l rm ; echo $c | head -n $b $a |cut -d "/" -f2 && sed 1,$c\d $a -i 

bước thứ ba. chỉ cần bắt đầu MySQL

 service mysql start 

Bước thứ tư. xác minh không có vấn đề gì

mysql> SHOW BINARY LOGS;

Nếu bạn thấy tệp có giá trị « 0 » thì có vấn đề. bạn cần dừng mysql và xóa tệp khỏi chỉ mục theo cách thủ công. Nếu tất cả đều ổn, bây giờ bạn có thể sử dụng lệnh mysql « PURGE BINARY LOGS TRƯỚC » để xóa các nhật ký khác nếu bạn cần

Cách lọc các tệp nhật ký nhị phân MySQL để giải phóng dung lượng ổ đĩa và giải quyết sự cố liên quan đến trang trống xuất hiện trên ứng dụng Spend

Câu trả lời

Vấn đề
Khi ứng dụng Chi tiêu được truy cập, tập dữ liệu không được tải và thay vào đó, một trang trống sẽ xuất hiện. Sau một thời gian, nó trả về lỗi. 'Lỗi Proxy'

Gây ra
Một trong những nguyên nhân có thể gây ra sự cố là dung lượng ổ đĩa trống trên máy chủ cơ sở dữ liệu MySQL. Máy chủ cơ sở dữ liệu MySQL có thể tạo các tệp nhật ký nhị phân có thể lấp đầy tất cả không gian có sẵn và có thể cần phải xóa để giải quyết sự cố

Tệp nhật ký nhị phân là gì
Nhật ký nhị phân chứa ?sự kiện? . Nó cũng chứa các sự kiện cho các câu lệnh có khả năng đã tạo ra các thay đổi (ví dụ: XÓA không khớp với hàng nào), trừ khi sử dụng ghi nhật ký dựa trên hàng. Nhật ký nhị phân cũng chứa thông tin về thời gian mỗi câu lệnh mất dữ liệu cập nhật đó

Giải pháp
Để giải quyết vấn đề này, chúng ta cần xóa các tệp nhật ký nhị phân của MySQL

- Câu lệnh PURGE BINARY LOGS xóa tất cả các tệp nhật ký nhị phân được liệt kê trong tệp chỉ mục nhật ký trước ngày hoặc tên tệp nhật ký được chỉ định. BINARY và MASTER là từ đồng nghĩa. Các tệp nhật ký đã xóa cũng bị xóa khỏi danh sách được ghi trong tệp chỉ mục, để tệp nhật ký đã cho trở thành tệp đầu tiên trong danh sách

Thí dụ
PURGE NHẬT KÝ nhị phân TRƯỚC '24-02-2016 00. 00. 00';

Tùy thuộc vào kích thước của tệp nhật ký, quá trình này có thể mất chút thời gian để hoàn thành

Người ta có thể ngăn điều này xảy ra bằng cách thiết lập thanh lọc tự động hoặc hết hạn cho các tệp nhật ký nhị phân này. Để làm điều đó, hãy chạy lệnh sau trong phiên bản MySQL

THIẾT LẬP TOÀN CẦU hết hạn_logs_days = 28;

Và trong tôi. cnf cho ví dụ về MySQL, hãy thêm phần sau vào mysqld
hết hạn-logs-days=28

Ghi chú. Điều này có thể yêu cầu khởi động lại phiên bản MySQL để các thay đổi có hiệu lực

Phiên bản áp dụng. v8. x, 9. x, 9. 5. x, 10. 0. x, 10. 1. x

[{"Đơn vị kinh doanh". {"mã số". "BU059","nhãn". "Phần mềm IBM w\/o TPS"},"Sản phẩm". {"mã số". "SSYQAR","nhãn". "Phân tích chi tiêu Emptoris"},"Thành phần". "","Nền tảng". [{"mã số". "PF025","nhãn". "Nền tảng độc lập"}],"Phiên bản". "Tất cả các phiên bản","Phiên bản". "","Ngành kinh doanh". {"mã số". "LOB59","nhãn". "Phần mềm bền vững"}}]

Làm cách nào để xóa tất cả nhật ký nhị phân trong MySQL?

Câu lệnh PURGE BINARY LOGS xóa tất cả các tệp nhật ký nhị phân được liệt kê trong tệp chỉ mục nhật ký trước ngày hoặc tên tệp nhật ký đã chỉ định. BINARY và MASTER là từ đồng nghĩa. Các tệp nhật ký đã xóa cũng bị xóa khỏi danh sách được ghi trong tệp chỉ mục, để tệp nhật ký đã cho trở thành tệp đầu tiên trong danh sách.

Có an toàn để xóa các tệp bin MySQL không?

Không, bạn không nên xóa chúng bằng tay . Nếu bạn xóa chúng ở cấp đĩa, mysql sẽ bị sập. Lệnh để loại bỏ chúng là. PURGE NHẬT KÝ BINARY ĐẾN 'mysql-bin.

Tôi có thể xóa nhật ký MySQL không?

Nếu tệp nhật ký lớn, nó sẽ không giảm chúng. Nếu bạn đang sử dụng Linux, bạn có thể sử dụng mv để đổi tên các tệp nhật ký khi chúng đang được sử dụng và sau đó sau FLUSH LOGS, bạn biết rằng MySQL đang ghi vào một tệp nhỏ mới, . Nhật ký nhị phân là khác nhau. Để loại bỏ các binlog cũ, hãy sử dụng PURGE BINARY LOGS. . Binary logs are different. To eliminate old binlogs, use PURGE BINARY LOGS.

Làm cách nào để xóa nhật ký bin chuyển tiếp MySQL?

Bạn có thể sử dụng DỪNG NÔ LỆ; . Mọi nhật ký cần thiết sẽ được tải xuống lại từ bản gốc. to delete the relay logs. Any needed logs will be re-downloaded from the master.