データベースで 'mysql_upgrade`コマンドを実行する必要はありますか?
Percona-server-5.6.41がインストールされ、数か月間実行されています。 mysql-5.6がインストールされる前。インプレースアップグレードが行われました(mysqlが削除され、perconaがインストールされました)。しかし、私は知りませんでした、mysql_upgrade
実行されたかどうか。
ログのテーブルの不一致に関するエラーはありません。
DBは十分に大きく、900以上のテーブルと約150Gbのサイズです。
mysql_upgrade
は、datadirで実行されたかどうかを通知するファイルを生成します。使用している特定のバージョンに対して実行された場合、mysql_upgrade_info
ファイルには現在のバージョンの文字列が含まれ、-forceが使用されない限り、mysql_upgrade
の新規実行を防止します。 Cat $datadir/mysql_upgrade_info
ファイルで、最後に実行されたバージョンを確認します。
なんらかの理由でファイルが見つからなかった場合でも、mysql_upgrade
の実行は比較的安全で、ほとんどのパッケージとinitシステムはアップグレード/起動時に自動的に実行されます。実行するタイミングを制御したいので、自動的に実行するのは好きではありません。たとえば、多くのファイルでは非常に長い時間がかかる可能性があり、DDLコマンドの性質により、メタデータロックが作成される可能性があります。実行されますが、他のトラフィックが進行中でないことを前提として、インストールの99%で安全に実行できます。
DBは十分に大きく、900以上のテーブルと約150Gbのサイズ
10万のテーブルと10万のビューを持つ私の2TBデータベースは、アイデア(SSD)を与えるために実行するのに約30分かかります。数十のテーブルを備えた他の2TBサーバーでは、10秒未満しかかかりません。
クエリを長時間実行していない限り、実行することをお勧めします。最悪のシナリオでは、一般的に強制終了する可能性があります。実行されていないときの問題は、より深刻です(trueですが)これらは通常、メジャーバージョンのアップグレードまたはメジャーバージョン内の最初のマイナーバージョンでのみ発生します。