Mysql

WordPress MYSQL DB BINARY LOG - Droplet/SERVER 體積迅速增加

  • March 23, 2022

我的 WordPress 網站使用 Nginx。最近我注意到伺服器容量從 8GB 增加到 40GB。我發現 WordPress MYSQL 二進制日誌佔用了更多空間。每一秒,數據庫事務都會寫入 Binlog 文件。

我想知道,因為我們的網站/WordPress 上沒有大量流量。擁有如此多的大型 MySQL binlog 文件,以及每秒記錄在 binlog 文件中的大量數據庫事件,可能是由於機器人攻擊或任何外掛大量使用數據庫進行臨時儲存。

到目前為止我所做的,我跑了mysql> PURGE BINARY LOGS BEFORE '2021-08-30 22:46:26'。這將磁碟大小從 40GB 減少到 10GB,這很好。

我的問題:

  1. 由於我使用單個伺服器並且我沒有使用副本,我可以禁用 BINARY LOG ( mysql> SET SQL_LOG_BIN =0),如果我禁用 BINARY LOG,這會導致問題嗎?
  2. 是什麼導致二進制日誌文件迅速增加,這可能是惡意流量嗎?如果是這樣,我該如何阻止它?

任何想法?

二進制日誌包含對數據或元數據的更改。即,INSERT/UPDATE/DELETE/REPLACE,以及​​ CREATE/ALTER/DROP/TRUNCATE 語句。

這不一定是由於惡意流量。它可能只是創建訪問您網站的使用者的記錄,或者在您編輯它們時製作 wordpress 文章版本的副本。

您可以使用mysqlbinlog檢查二進制日誌,以便準確查看其中的語句。

如果需要,您可以禁用二進制日誌。但是您顯示的命令SET SQL_LOG_BIN=0僅適用於目前會話。要全域禁用二進制日誌,您必須更改my.cnf配置文件並重新啟動 MySQL 伺服器。如果不重新啟動,您將無法更改此設置。有關詳細資訊,請參閱log_bin 上的文件

您可能還想為二進制日誌設置自動過期。在 MySQL 5.* 中,您可以使用expire_logs_days。在 MySQL 8.0 中,您應該使用新選項binlog_expire_logs_seconds

二進制日誌可能被禁用,但如果您想審計更改,或者如果您想在還原備份後進行時間點恢復,或者您提到如果您想使用複制,它會很有用。

UPDATE百萬行表的所有行中的一個將在 binlog 中創建一百萬個條目。這是笨重的。

TEXTBLOB列可能很笨重。

“JG1hdGNoZXN”可能是二進制數據的 BASE64 編碼,如果不以這種方式編碼,則可能會混淆閱讀。

引用自:https://dba.stackexchange.com/questions/300961