mysqldumpを実行したが,一部のテーブル/viewのdumpが取れていない現象

背景

mysqldumpを実行するコマンドをcronに登録して定期実行していた.

その中で,一部のテーブル/viewのdumpが取れておらず,リストアしてもviewが空のテーブルに置き換わる,テーブルの中身がリストアした時点の内容に更新されないといった現象が発生した.

DBサーバ,Webサーバがあり,Webサーバからオプションを変えて実行した場合には本現象は発生していなかった.

 

原因

mysqldump: Couldn't execute 'show create table `view_name`': View 'database_name.view_name' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)

というエラーが発生していた.

今回の場合,database_name.view_name の定義に,削除されたカラムが利用されていた.

このため,エラーが発生し,以降の処理がスキップされた様子だった.

 

不思議なこと

cronでの実行結果では一応全体的に結果は得られる(一部のみダメになってる)

状態だったのに対して,コマンドラインから同じようにmysqldumpを打ってもエラーが出るだけでdumpファイルは作られなかった.

気が向いたら確認する.