バックアップ/リカバリコールドバックアップインスタンスを停止してOSコマンドによるファイルコピーを行う。以下の例ではcpコマンドだが、tarなどでももちろんかまわない。 $ cp -rp /var/lib/mysql/data /var/lib/mysql/backup オンラインバックアップmysqldumpコマンドでデータベース全体をバックアップする。
# mysqldump --user=root --password=pass \
--socket=/var/lib/mysql/mysql.sock \
--single-transaction \
--master-data=2 \
--flush-logs \
--hex-blob \
--default-character-set=cp932 \
--all-databases > /var/lib/mysql/backup/mysql-dump.sql
特定のデータベースを指定するには、--all-databasesをはずしてスキーマを指定すればよい。
# mysqldump --user=root --password=pass \
--socket=/var/lib/mysql/mysql.sock \
--single-transaction \
--master-data=2 \
--flush-logs \
--hex-blob \
--default-character-set=cp932 \
demo_db > /var/lib/mysql/backup/demo_db-dump.sql
mysqldumpコマンドのオプション
バイナリログによる差分バックアップバイナリログを作成するには、初期化パラメータファイルに"log-bin"を追加する。また、sync_binlog=1を追加すると、バイナリログがトランザクションコミット時に同期書き込みになる。 [mysqld] log-bin=/var/lib/mysql/binlog/mysql-bin sync_binlog=1 バイナリログのスイッチスイッチが発生すると、拡張子の数字に+1されたものが新たに作成され、新しいファイルに書き込むようになる。 mysql> FLUSH LOGS; <-- SQL文によるスイッチ $ mysqladmin flush-logs -u ユーザー名 -p <-- コマンドによるスイッチ リストア及びロールフォワードリカバリバックアップ運用として、日曜日の0:00に全体バックアップ。日曜日以外の0:00にバイナリログのスイッチを行い増分バックアップを行うものとする。
復旧手順まず、全体バックアップ(/backup/mysql-dump.sql)をリストアし、それ以降のバイナリログ(/backup/mysql-bin.000017、18、19)を順番に適用していく。
[mysqld] #log-bin=/var/lib/mysql/binlog/mysql-bin <-- コメントアウトし、バイナリログの出力を停止 $ cd /usr/local/mysql $ ./bin/mysqld_safe --defaults-file=/etc/my.cnf --skip-networking --skip-grant-tables &
$ mysql --user=root --password=pass \
--socket=/var/lib/mysql/mysql.sock \
--default-character-set=cp932 < /backup/mysql-dump.sql
$ mysqlbinlog --disable-log-bin \
/backup/mysql-bin.000017 /backup/mysql-bin.000018 /backup/mysql-bin.000019 > /backup/recovery.sql
$ mysql --user=root --password=pass \
--socket=/var/lib/mysql/mysql.sock \
--default-character-set=cp932 < /backup/recovery.sql
[mysqld] log-bin=/var/lib/mysql/binlog/mysql-bin <-- コメントアウトをはずしておくこと。
$ mysqladmin shutdown --user=root --password=pass \
--socket=/var/lib/mysql/mysql.sock
$ cd /usr/local/mysql
$ ./bin/mysqld_safe --defaults-file=/etc/my.cnf &
mysqlbinlogコマンドのオプション参考として、主なmysqlbinlogコマンドのオプションを以下にまとめる。
参考
MySQL 5.1 Reference Manual Chapter8.10.mysqlbinlog おすすめ書籍
|