ローカルPCに置いているDBのバックアップ内容がコマンドによって違います。
使っているのはMysqlの5.6.32です。
下記の1、2のコマンドで取得したバックアップの内容が違ってしまいます。
- mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME > dump.sql
- mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME | gzip > dump.sql.gz
具体的には
1の方法でとったバックアップは、復元時に
テーブル作成→トリガー作成→データインサート
の順序になっている為、トリガーが設定されているテーブルへのデータインサートでキー重複のエラー等が出ます。
2の方法でとったバックアップは、復元時に
テーブル作成→データインサート→トリガー作成
の順序になっているため、復元時にエラーが起きません。
ローカルのDBを仮想環境上へ移行する手順が確立したかったので、dump.sqlの中身を、インサート後にトリガー作成するよう直接書き換えることはしたくありませんでした。
そこで他の人に相談したところ、その人がgzipでバックアップして復元したら復元に成功したのです。
中身を見てみたらどうやら復元の順番が違うようだったので、もしgzipで圧縮すれば必ずこのようになるのであれば、手順として確立してしまいたいのですが、そういった文献を見つけることができませんでした。
そのままsqldumpでバックアップするのと、gzip圧縮でバックアップするのとで、このような違いが出る理由をご存じの方、もしくはそういった仕様であることが明記されている場所をご存じの方、
いらっしゃいましたらよろしくお願いいたします。
あなたの回答
tips
プレビュー