アイデアの甕

アイデアを放り込んでおくと甕は腐臭を発しない

WordPressのデータベース容量が大きすぎてバックアップファイルがアップロードできない時の解決策

f:id:bukki:20140803192403p:plain

 

データベースのバックアップ、してますか?定期的にしておけば何か問題があった時にもサクッと復旧できて良いものです。

 

ただ、WordPressで書いたブログ記事数が増えてくると記事の改訂履歴(リビジョン)なども増えてきてデータベース容量が加速度的に大きくなることも。

 

 

bukki.hatenablog.com

 

 

リビジョンの情報を消す際に気を付けるべき点を上記記事で紹介しましたが、本記事ではバックアップファイルの扱いについてTips的なことを書いておこうと思います。

 

 

未圧縮で、何バイト?

どうしてだかよく知りませんが、ワードプレスのバックアップ方法、特にphpMyAdminを使ってデータベースのバックアップ(エクスポート)を行う際には「圧縮なし」を選択するよう促されることが多いように思います(多くのWeb記事を渉猟したわけではありませんので、あくまで印象ですが)。

 

ただ、未圧縮のエクスポートファイルが大容量となった場合、問題となることも。

 

それは、「ファイルが大きすぎるとサーバーの制限でアップロードできなくなる」ということです。

 

2MBとか30MBとか、それなりの値に制限されていることがよくあります。実際、それで制限に引っかかりました。

 

対処法

以下のサイトに、まさにその際の対処法が掲載されています。

 

大きいサイズのMySQLがphpMyAdminにインポートできない場合 | レンサバネット

 

当時は手元にあるエクスポート済みのバックアップファイルが大きすぎたけれど、これを用いて復旧したい(今から新たにバックアップをとろうにも不可逆操作の後なので出来ない)という状況でした。

 

従って、上記サイトで紹介された対処法①「エクスポート時にファイル圧縮」は選択できません。

 

対処法②「php.iniの編集」を実施するも、状況は変わらず。

 

さらに対処法③のリンク先を辿ってBigDumpを試みるも、

 

ポイントとしては作成するクエリの最大長が50000だと途中でインポートに失敗してしまいますので、100にしてエクスポートをします。

超巨大な MySQL のデータを共用サーバーにインポートできる BigDump の使い方 | ウェブル

 

 こちらの制限に引っかかってうまくいきません。てやんでぇべらんめぇ…。

 

対処法④「SSHの接続」はライトユーザーには荷が重いなぁ、何とかならんとね?としばし思案。

 

手元でzip!

「せや!」と思い付いたのは、既にダウンロード済みで手元にあるsqlファイルを、ファイル圧縮ソフトを利用して圧縮する方法です。

 

zip、gzip、bzipいずれかの形式であれば受け入れてもらえる可能性が。

 

という訳で、早速Windowsユーザー御用達のLhaplusでzip圧縮。

 

forest.watch.impress.co.jp

 

phpMyAdminからインポートしてみると…

 

 

通りました。バッチリ通ります。

 

 

もちろん、圧縮後のファイルサイズが制限を超えていればやはり無理なのでしょうが、圧縮でかなり小さくなる(はずな)のでトライしてみる価値はあるかと。

 

エクスポート時に「圧縮」をしていなくても、後からすれば大丈夫(なこともある)ってことで、困った時にはお試しください。