Mysql

mysql_upgrade 檢查是否需要執行它

  • November 28, 2018

我如何確定,是否需要在數據庫上執行“mysql_upgrade”命令?

Percona-server-5.6.41 已安裝並執行了幾個月。在安裝 mysql-5.6 之前。就地升級已完成(刪除了 mysql 並安裝了 percona)。但我不知道,是否被mysql_upgrade處決。

日誌中沒有關於表不匹配的錯誤。

DB 足夠大,有 900 多個表和大約 150Gb 的大小。

mysql_upgrade將生成一個文件,通知它是否在 datadir 上執行。如果它是針對您擁有的特定版本執行的,則該 mysql_upgrade_info文件將包含目前版本字元串,並且將阻止新的執行,mysql_upgrade除非使用 –force。Cat$datadir/mysql_upgrade_info文件以了解最後執行的是哪個版本。

即使由於某種原因該文件失去,執行mysql_upgrade相對安全 - 以至於大多數軟體包和初始化系統在升級/啟動時自動執行它。我不喜歡自動執行它,因為我喜歡控制它何時執行 - 例如,它可能需要很長時間處理許多文件,並且由於 DDL 命令的性質,它可能會創建元數據鎖它執行,但 99% 的安裝可以安全地執行它,假設沒有其他流量正在進行。

DB足夠大,900多個表和大約150Gb的大小

我的 2TB 數據庫包含 100K 表和 100K 視圖,執行大約需要 30 分鐘,給你一個想法(SSD)。我的其他帶有幾十張表的 2TB 伺服器只需不到 10 秒。

**我的建議是只執行它,除非您有長時間執行的查詢。在最壞的情況下,它通常可以被殺死。**不執行時的問題更嚴重(儘管這些問題通常只發生在主要版本升級或主要版本中的第一個次要版本期間)。

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