DUMPファイルの復旧を想定してますか?

DB

こんにちは。かじです。

バックアップとして取得しているDUMPファイル、みなさんは、復旧することを前提に準備していますか。そうであるのならいいのですが、「いやいや、そんなの当たり前じゃん。え?復旧のテスト?したことないけど。」という人がいれば、一旦復旧のテストをやってみてください。問題なく復旧できるようであればいいですが、データが大量であればあるほどうまくいかない可能性が高いと思います。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

かくいう僕も、DR要件の見直しの際に、DUMPファイルの復旧を検証してみたところ、行き詰ってしまいました。理由としては、とにかくデータ量が多い。DBにバイナリデータも含まれていたり数十万といったデータがあったので、とにかく時間がかかり、タイムアウトエラーになりました。

DUMPファイルの分割を試みる

取り敢えず、ファイルを分割してみようと下記のコマンドをpowershellで打ち込みました。

$i=0; Get-Content (ファイル名) -ReadCount (分割したい行数) | % {$_ | Out-File "C:\temp\Split\TestFile_$i.txt" -Encoding UTF8 -Append; $i++}

ファイルの分割自体は、出来ましたが、1レコード毎にINSERT文が作成されていた訳ではなく、テーブルで一つのINSERT文となっていたため、SQLエラーとなってしまいました。ただの凡ミスでしたが、まあこれでは使えないという感じ。

仕方ないので、ちゃんと根本から見直します。

MySQLの設定ファイルをいじる

今回はMySQL環境であったため、MySQLの設定ファイルであるmy.iniを編集します。

[mysqld]
# 省略
max_allowed_packet=100G
# 省略
innodb_lock_wait_timeout=86400

この二か所を適当に大きい数字にするとデータパケットの上限とタイムアウトまでの時間制限が緩和されるので、適当な大きさまで変更します。

一応これでDUMPの復旧は完了です。変なデータの書き込みが発生しないように、my.iniを元の設定に戻すことを忘れることのないようにしましょう。

想定通りにいかないとより簡単で小手先の対応をしてしまいますが、しっかりと根本の面倒くさいところを逃げずに解決していくことの大切さを学んだ気がします。

タイトルとURLをコピーしました