バックアップからのリカバリが必要になるケースは、冗長化された本番環境では中々お目にかからない事もあるかと思います。
リカバリが必要な事態に遭遇し、いざリカバリしてみたら「これリカバリできないじゃないか…」みたいなケースもあったりで。
そういった事にならない為にもリカバリ手順はしっかりと確認しておきましょう。
前回取得したオンラインバックアップを実際に戻した際の手順をリストアップしておきます。
①MySQLサーバが停止していない場合は停止
[mysql@SERVER ~]$ sudo /sbin/service mysql stop
Shutting down MySQL.. [ OK ]
※Serviceコマンドによる起動停止は事前に要設定
➁ 未バックアップのバイナリログファイルをバックアップ
[mysql@SERVER ~]$ cp –p /data/mysql/blog/mysql-bin.* /backup/mysql/blog/
前回バックアップ以降に更新されたデータのロールフォワードリカバリ用
③バックアップファイルを対象ディレクトリにリストア
[mysql@SERVER ~]$ tar -C /data/mysql/ -xvf Hotbk20090428.tar
④初期化パラメータファイルのバイナリログ出力設定を停止し、リモート接続禁止状態でMySQLサーバを起動
[mysql@SERVER ~]$ vi /data/mysql/cnf/my.cnf
# Replication Master Server (default)
# binary logging is required for replication
#log-bin=/data/mysql/blog/mysql-bin
[mysql@SERVER ~]$ sudo /sbin/service mysql start --skip-networking
Password:
Starting MySQL [ OK ]
ロールフォワードリカバリ中のバイナリログ出力を避け、リカバリ中のクライアント接続を防ぎます。
⑤前回バックアップ以降に出力されたバイナリログから、ロールフォワードリカバリ用のSQLを作成
[mysql@SERVER ~]$ mysqlbinlog --disable-log-bin mysql-bin.000002 mysql-bin.000003 > \
recover20090429_2.sql
前回バックアップ以降に出力されたバイナリログが「mysql-bin.000002」、「mysql-bin.000003」の前提です。
「–disable-log-bin」はロールフォワードリカバリ中のバイナリログ出力を抑止します。リカバリ用SQLは「recover20090429_2.sql」に出力されます。
なお上記は障害直前まで復旧するSQLを出力しますが、ポイントタイムリカバリを行う場合は以下のように指定します。
[mysql@SERVER ~]$ mysqlbinlog --disable-log-bin --stop-datetime="2009-04-29 17:38:15" \
mysql-bin.000002 mysql-bin.000003 > recover20090429.sql
上記例では2009年4月29日の17時38分15秒までに更新されたデータがリカバリ用SQLファイルに出力されます。
⑥ロールフォワードリカバリ用SQLをMySQLクライアントから適用
[mysql@SERVER ~]$ mysql -u root -prootpass --default-character-set=cp932 < \
recover20090429_2.sql
⑦初期化パラメータファイルのバイナリログ出力設定を戻し、MySQLサーバを再起動
[mysql@SERVER ~]$ vi /data/mysql/cnf/my.cnf
# Replication Master Server (default)
# binary logging is required for replication
log-bin=/data/mysql/blog/mysql-bin
[mysql@SERVER ~]$ sudo /sbin/service mysql restart
Password:
Shutting down MySQL.. [ OK ]
Starting MySQL.. [ OK ]
以上がLINUX環境でローカルディスクで運用している場合のバックアップリカバリ手順となります。
共有ストレージ製品が利用可能な場合は、LVM Snapshotではなく、ストレージ製品のスナップショット機能や遠隔ミラー機能のsync-split等で同等のオペレーションが可能です。
6月 02
This entry was posted You can leave a response, or trackback from your own site.
コメント入力欄