MySQLデータ バックアップ (ファイル群のコピーによるバックアップ)
種類
- MySQLでバックアップ方法は、大きく分けて2種類ある。
- 1.テーブル単位のバックアップ
- 2.DBファイル群のバックアップ
- 3.mysqldumpによるダンプ/リストア
手順
ファイル群のバックアップ
リストアの仕方はこちら
- 1-1) MySQLサーバーを停止
- # /etc/init.d/mysqld stop
1-2) データベースディレクトリ以下のデータベースをアーカイブ化- ・移動元のデータベースディレクトリに移動する
(環境によってPATHは違います。Fedora9の環境下を前提で書いてます。)
今回は、xoops本体のVersionUpも兼ねてxoopsとmysqlのデータベースをバックアップした。
圧縮しなくても、 cp -apR * /home/hoge/mysqlBackupなどでも可能# cd /var/lib/mysql # ls -la 合計 20560 drwxr-xr-x 6 mysql mysql 4096 2009-08-22 14:12 . drwxr-xr-x 49 root root 4096 2009-03-20 14:17 .. -rw-rw---- 1 mysql mysql 5242880 2009-08-22 14:12 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 2006-09-27 05:33 ib_logfile1 -rw-rw---- 1 mysql mysql 10485760 2009-07-15 19:07 ibdata1 drwx------ 2 mysql mysql 4096 2005-05-12 04:10 mysql srwxrwxrwx 1 mysql mysql 0 2009-08-22 14:12 mysql.sock drwx------ 2 mysql mysql 4096 2009-05-20 20:34 hoge drwx------ 2 mysql mysql 4096 2008-04-04 23:45 xoops drwx------ 2 mysql mysql 20480 2005-09-08 04:05 zencart
1-3)データーベース "mysql"と"xoops"の2つをアーカイブ化します。-
InnoDB型のテーブルが存在する場合は、
InnoDB型のテーブルファイルとログファイルもアーカイブ化する。
-
# tar cvf - mysql xoops | gzip -9 > backup_xoops20090827.tgz # tar cvf - ib* | gzip -9 > backup_innodb20090827.tgz
通常は、同一ファイルに格納されているが、システム変数を個別に設定した場合は、
以下のシステム変数を確認する必要がある。
innodb_data_home_dir/innodb_data_file_path で設定されてた ib_logfileファイル
innodb_log_group_home_dir で設定されたディレクトリィ以下の ibdata1ファイル
補足
- バックアップしたファイルのリストア
-
※ ファイル群のリストアは、退避したファイルを展開してそのまま、/var/lib/mysql
に上書きしても問題ない(実際に試した) -
が・・解説書を読むと、念のためであろうか、退避したディレクトリィに環境PATHを設定して、
そこで運用する方法だけが記載されてたので、簡単に書いておく
1) InnoDB型テーブルの展開
2) システム変数の一致vi /etc/my.cnf Innodb_data_home_dir = /home/hoge/mysqlBackup Innodb_data_file_path = /home/hoge/mysqlBackup Innodb_log_group_home_dir= /home/hoge/mysqlBackup Innodb_log_arch_dir = /home/hoge/mysqlBackup # アーカイブ展開 tar xvfz backup_xoops20090827.tgz tar xvfz backup_innodb20090827.tgz /etc/init.d/mysql restart
-
おわり・・・マンドクサ(´A`)
普通に上書きコピーでもOKだと思います・・・。
関連商品