web-dev-qa-db-ja.com

mysql_upgradeを実行する必要があるかどうかを確認する

データベースで 'mysql_upgrade`コマンドを実行する必要はありますか?

Percona-server-5.6.41がインストールされ、数か月間実行されています。 mysql-5.6がインストールされる前。インプレースアップグレードが行われました(mysqlが削除され、perconaがインストールされました)。しかし、私は知りませんでした、mysql_upgrade実行されたかどうか。

ログのテーブルの不一致に関するエラーはありません。

DBは十分に大きく、900以上のテーブルと約150Gbのサイズです。

3
Someone

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ですが)これらは通常、メジャーバージョンのアップグレードまたはメジャーバージョン内の最初のマイナーバージョンでのみ発生します。

4
jynus