とある案件でMySQLを利用するため、DBのバックアップ・リストアをやっていたら…
情けないミスをやってしまい、お客様にまでご迷惑をおかけしてしまう結果となり反省しております。
MySQLのバックアップはコマンドラインから実行する方法とGUIツール(MySQL Administrator)から利用する方法とありますが、今回しくじったのはコマンドラインで実行した方。
MySQLのバックアップコマンドはこれ。
mysqldump -u ユーザー名 -p データベース名 > バックアップファイル名
パスワードを聞いてくるので、入力すると(Windowsでは)何も言わずにバックアップが始まる。
逆にリストアするときのコマンドはこれ。
mysql -u ユーザー名 -p データベース名 < バックアップファイル名
これでリストアOK。リストアする前に、DBが存在していることが必要。
で、今回私がやっちゃったミスはリストアを実行するつもりでたたいたコマンドが
mysql -u ユーザー名 -p データベース名 > バックアップファイル名
だったってこと。リストアの場合は DB名<バックアップファイル名じゃなきゃダメなのに、逆にしてしまったため、作ったばかりの空DBでバックアップファイルを上書きしてしまった。
えー、マニュアルに書いてあるバックアップとリストアってコマンド違うじゃん!と叫んでも時は既に遅し。
貰ってきたテスト用のバックアップファイルは見事0KBに(数GBあったんですけど…)。
というわけで、再度、バックアップファイルを貰いに行き、作業を行ったため遅くまでお客様におつきあいいただくことになってしまい、本当にごめんなさい。申し訳ありませんでした。
私は自業自得なんで致し方ないのですが。ご迷惑をおかけしてしまいました。
絵柄的に、入る方<出る方(リストア時)/出る方>入る方(バックアップ時)と記号で考えると解りやすい(閉じてる方が入る方)、と気がつきました。世の中うまく出来てる。
でもコマンドちがうんだよぉ。マニュアルに書いてあるのは。
2度目はもう失敗したくなかったのでGUIでやりました。こうして人はコマンドラインを使わなくなって行くんでしょうか。って、私だけか。情けないです。
Filed under:
DB, 開発 by k.nakamura
Leave a Reply