今回はDB移行ということでのMySQLバックアップからの復元方法をまとめておきます。


■mysqldump[バックアップ]

・全てのDBをバックアップしたい時

・特定のDBをバックアップしたい時

・複数の特定DBをバックアップしたい時


■mysql[復元]

・全てのDBを復元したい時

・特定のDBを復元したい時


■オプション一覧

他にもいろんなこと出来そう・・・

オプション説明
–opt--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charsetと同じ。デフォルトでこのオプションは有効。
–add-drop-tableDROP TABLE文を含める
–add-locks各テーブルへのINSERT文の前後にLOCK_TABLES文とUNLOCK TABLES文を含める。インポートの速度が向上する。
–create-optionsCREATE TABLE文にMySQL特有のオプションを含める
–disable-keys各テーブルについて、全てのレコードのインポートが完了するまでインデックスを作らないようにする。インポートの速度向上が期待できるが、MyISAMテーブルの(UNIQUEではない)通常のインデックスにしか効果が無い。
–extended_insertINSERT文をコンパクトな書式でダンプする。ダンプファイルのサイズが小さくなる。インポートの時間も短縮する。
–lock-tablesダンプの前にDBの全テーブルをロックする。ただし、ロックはDBごとに行われるのでDB間でのデータ整合性は保証されない。InnoDBでは--single-transactionを使った方が速い。
–skip-lock-tables–lock-tablesオプションを無効にする。–optが–lock-tablesを有効にするので、それを打ち消す為に使用する。
–quickダンプ時にテーブルの全レコードをメモリに一旦バッファする代わりに、1行ずつ読み込んでダンプする。データ量の大きなテーブルのダンプ時にメモリを圧迫しなくて済む。
–set-charsetSET NAMES文を出力する。
–quote-namesDB名、テーブル名、カラム名などの識別子をバックティック文字で囲む。これらの識別子にMySQLの予約後が含まれていても問題なく動作するようになる
–single-transactionダンプ処理をトランザクションで囲む。データの整合性を保つのに有効だが、MyISAMテーブルが含まれるDBでは意味が無いので、代わりに–lock-tablesか–lock-all-tablesを使う。
–flush-logsバイナリログをフラッシュして、新しいファイルを作る。フラッシュ
–lock-all-tablesダンプの開始から完了まで、全データベースの全テーブルをロックする。これを使うと自動的に--single-transaction--lock-tablesオプションはオフになる。
–master-data[=2]CHANGE MASTER TO句を含める。これによってレプリケーションのスレーブサーバがマスターサーバのバイナリログの読み取り開始ポイントを知ることが出来る。このオプションは--lock-all-tablesを オンにする。ただし、--single-transactionがオンの場合はそうはならず、代わりにダンプ開始時に一瞬だけグローバルリードロックされる。=2を付けた場合はバイナリログの読み出し開始位置をコメントとして出力する。これは人間が参考のために見たいときに使う。
–passwordMySQLサーバに接続する時のパスワード

■まとめ

たぶん復元してると以下の様なエラーが出るはずなので。。。

次回治す方法をブログします。

参考:http://weblabo.oscasierra.net/mysql-mysqldump-01/

カテゴリー: BlogCentOSMySQLUbuntu

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニア勉強会なども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなそうと奮闘中である。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください