MySQLのバックアップ
注意
- CentOS4上でのMySQL5.1での調査内容です。
- 他の環境だと異なるかも…。
- 今回はmysqldumpのみ調査。mysqlhotcopyは未調査。
mysqldumpの特徴
mysqlhotcopyの特徴
- データベースファイルとしてバイナリで出力される。
- Perlスクリプト。DBIをuseしているので、DBIが無いと起動できない。
- 自動的にロックされるので安心。
- MyISAMのみバックアップ可能。InnoDBは無理。
今回は、DBIが入ってないので、mysqldumpを使用する。
mysqldumpの入力例
すべてのDBの情報を格納
$ mysqldump --opt -u [ユーザ名] -p[パスワード] -A > [バックアップファイル名].sql
対象のDB上のあるテーブルの情報を格納
$ mysqldump --opt -u [ユーザ名] -p[パスワード] [DB名] [テーブル名]> [バックアップファイル名].sql
標準出力がUTF-8以外の場合
$ mysqldump --opt --default-character-set=[文字コード名] -u [ユーザ名] -p[パスワード] -A > [バックアップファイル名].sql
- -pと[パスワード]の間にはスペースを入れない!
- [テーブル名]がnullならば、対象のDBすべてを取得する。
- mysqldumpのデフォルト出力はUTF-8
バックアップの復旧例
$ mysql -u [ユーザ名] -p[パスワード] < [バックアップファイル名].sql
ただのSQLなので、実行するだけ。
展開先のDBに既にテーブルがある場合、一度削除されるので注意。(--optオプションにより)