ものすごく大きなデータをMySQLでダンプ、リストアする必要があって進捗状況が分からず固まってるのか?と心配になったので
進捗状況を知るための方法を調べたのでメモ。
通常のリストアの方法は下記のような感じだけどこれだと進捗が分からない。
mysql -u ユーザー -pパスワード -D データベース名 < リストアしたいファイル名またはファイルまでのパス.sql
mysql -u root -pPASSWORD -D testdatabase < example.sql
pvコマンド(pipe viewer)を利用することによって進捗がパーセンテージとローダーみたいな感じで分かるようになる。またLTE 残り時間も分かるので便利
pv リストアしたいファイル名またはファイルまでのパス.sql | mysql -u ユーザー -pパスワード データベース名
pv example.sql | mysql -u root -pPASSWORD testdatabase
24.2GB 1:23:42 [2.3MB/s] [=================================================================>] 99% ETA 0:00:00
pvコマンドはダンプファイルだけに限った用途ではなく他の時間のかかる標準入力から読み込むような処理などにも使える。