photo credit: fsse8info via photopin cc
先日、DBいじってたらまたやっちゃいまして、順調にトラフィック稼ぎ出しているサイトのDBをあっさりサクってしまいました。
月一でバックアップとっていたので、その時点まではすぐに復旧できたのですが、問題はその月に書いた記事をどこから復旧するかということでした。
[ad#adtop]
全部で8記事あったのですが、こんなことなら週一でとっときゃよかった・・・と思ってみたところで仕方ありません。
ローカルにドラフトは持っていないので、どこかしらキャッシュデータがないか探ることしました。
1.Googleにインデックスされた記事データ
これがあれば一番早いです。
Googleにインデックスされて検索にかかるようになった記事はURLの後ろにある「▼」をクリックするとキャッシュデータとして閲覧できます。
記事が消えたあと、時間が経つと、Googleからも消されてしまい復元できなくなるので、こちらは急ぎめの対応が必要ですが、残っていればばっちしコピペで簡単に復旧できます。
実際8記事中6記事はこれで復元しました。
しかし、残りの2記事はDBを誤って消してしまった日に書いた記事でして、Googleにもまだインデックスされていませんでした。それほどすぐにクロールがくるサイトでもなかったので・・・。
そこで別の場所を探すことに
2.サーバーのキャッシュデータに残る記事データ
キャッシュ系のプラグインを導入していれば使えるワザです。
大体Wordpressのキャッシュ系プラグインを利用していると、
/wp-content/cache
というディレクトリあたりにキャッシュプラグインのフォルダがあって、その中にキャッシュデータが入っています。
そのキャッシュは訪問者が訪れた際に、出来上がったもので、訪問者がくるたびに毎回PHPで展開して処理するのでなく、そのキャッシュデータを次の訪問者に見せることでサーバーの負荷を低減しています。つまりうまくいけばそのキャッシュデータをエディタで開くと、復元できたりします。
(プラグインの種類によってはデータがシリアライズ化されており復元に手間がかかったりします。)
が、これは誰か一人でもその記事を訪問していて、キャッシュが出来上がっていれば有効ですが、ログインユーザーである自分しかみてなかったら、キャッシュが出来ていない場合もあります。今回私はまさにこれで、サーバーサイドにもキャッシュデータが残っていませんでした。orz
でサーバーが駄目ならクライアントだと思い
3.ブラウザのキャッシュに残る記事データ
を探ることにしました。
記事を書いていた際に使用していたブラウザはChromeでした。Chromeに残るキャッシュから復元できないかと、ちょっと方法調べてみましたら、
Google Chromeのキャッシュからhtmlを復活させた
こちらの記事で紹介されていたchrome のアドレスバーに [ about:cache ] と入れて確認。
確かにファイルは存在したのですが、こちらもシリアライズ化されており、クロスエディタとか駆使して復元を試みたんですがけど、うまくいきませんでした。orx
あと他にもなんかフリーソフトでキャッシュファイルを復元できそうな期待があったのですが
ChromeCacheView – Cache viewer for Google Chrome Web browser
残念ながら該当のhtmlファイルの中身はブランクでした。
これ以上時間かけても仕方ないので、2記事分は一から書き直そうというところへ落ち着きました。
いろいろとキャッシュのありかを日ごろから頭にいれて、またそれを利用する方法も確立しとけばいざってときに心強いですね。とりあえず、DBいじる前に、バックアップをちゃんととっときましょうということで。
[ad]