(テーブル単位)それでもphpMyAdminでエクスポートがサーバーエラーになってしまう場合の対処法
2014/11/22
レンタルサーバーを利用していて、phpMyAdminを利用したエクスポートを行って、
Internal Server Errorが出てしまいエクスポートが正常に終了しない場合、
それでもエクスポートを行う必要がある場合に、できる対策(テーブル指定)をご紹介します。
はじめに
レンタルサーバには様々な制約があり、
phpMyAdminを利用したようなエクスポートでは、
Apacheサーバーなどの実行時間制限などでエクスポートが中断されてしまうことがあります。
その際に表示されるのがInternal Server Errorの表示なのですが、
それでも大切なデータは何とかしてエクスポートする必要があるでしょう。
現時点で私の環境では非常にレコード数の多いテーブルが2つあり、
常にそのテーブルのエクスポートでエラーになってしまいます。
将来的にはこのテーブルは削除するつもりではいて、
テーブルをなくしてしまえば一括してエクスポートが行えるはずです。
しかし、これはあくまでもはず。
削除できないデータでエクスポートができなくなる時期は刻一刻と迫っているだけでしょう。
というのも、私のレンタルサーバーの1データベースのサイズ上限が500MBと決められています。
当初はたった500MBか・・・と思っていました。
しかし今回エクスポートを行ってみて思ったのが、
500MBのデータベースサイズにまで肥大化すると、
そもそもサーバーからの引っ越しが現実的ではない状態に達することがわかりました。
おそらく、その頃には1テーブルでさえ、
容易にエクスポートが行えない状態になっているでしょう。
よく、システム開発でOracleなどを利用していてダンプのサイズが、
4Gといった規模にまで肥大化していたことに慣れていたこともあって、
最初は500MBと聞いたときはがっかりしました。
しかし、これがレンタルサーバの現実であり、限界なのだと思います。
30秒の壁
私のレンタルサーバの環境では、
現在30秒でInternal Server Errorが発生するようになっています。
しばらく前までは、1分20~30秒くらいまで実行できていたのですが、
設定が変更されたかはわかりませんが、今は30秒です。
要はphpMyAdminから何かの処理を要求した際に30秒以内に処理を完了しなければ、
その処理は中断されてしまいます。
エクスポートもしかりで、30秒以内に処理が終わる単位で要求する必要があるのです。
※30秒に明確な裏付けがあるわけではありません、あくまでも実測値です。
phpMyAdminにおける小出しバックアップの方法
phpMyAdminのエクスポート方法はいろいろな方法で行えますが、
最初のうちはこのインターフェイスに慣れるまでは、
phpMyAdminのメニュータブをクリックした際の、
表示される対象が異なっていることに気づきませんでした。
phpMyAdminでは現在の選択レベルに応じて、操作対象が変わります。
最上部に表示されているパンくずリストで自分の現在位置がわかります。
常にこれに注意をして操作する必要があります、この現在位置は次のようなものです。
- ホスト
- データベース
- テーブル
こうした現在の操作対象のとして選択しているレベルに応じてエクスポートの設定も変化します。
エクスポート対象がどのように変化するかについては以下でご紹介しています。
phpMyAdminを利用したMySQLデータのエクスポート
ホストを選択した状態でエクスポートを選択すると、
複数のデータベースを1SQLファイルでエクスポートができ、
出力対象をデータベース単位で選択が行えます。
データベースを選択した状態でエクスポートを選択すると、
複数のテーブルを1SQLファイルでエクスポートができ、
出力対象をテーブル単位で選択が行えます。
テーブルを選択した状態でエクスポートを選択すると、
1テーブル内のデータを1SQLファイルでエクスポートします。
出力対象をレコード単位で指定することができます。
出力対象のサイズに合わせて出力単位を選択
サイズ的にもサーバー設定的にも問題のないデータベースのエクスポートでは、
通常はデータベース単位にすべてのテーブルをエクスポートされているでしょう。
私もこれまではそうしてきました。
しかし、今はそうもいきません。
ではどうするのか、データベース単位でテーブルを選択した(除外した)状態で、
分割してエクスポートを行うしかありません。
エクスポートを行いたいデータベースを選択した状態から[エクスポート]をクリックします。
エクスポートをクリックしてすぐに表示される画面は[簡易]画面の為、[詳細]をクリックして出力対象のテーブルを選択ができるようにします。
最下部の[実行する]をクリックすることで、
選択したテーブルが1SQLとしてエクスポートされます。
エクスポートの詳細オプションなどについては、以下でご紹介しています。
(構造編)phpMyAdminを利用したエクスポートオプションと出力の関係
(データ編)phpMyAdminを利用したエクスポートオプションと出力の関係
phpMyAdminを利用したエクスポート・インポートで最も適した設定とは?
エクスポートエラーの現況を別で処理する
今回のケースでいえば、レコード数があまりにも多く、
すべてをエクスポートした際にエラーとなってしまうテーブルを除外して、
エクスポートを行うことで、他の必要なテーブルをエクスポートすることができます。
ここで選択を行わなかったテーブルをエクスポートするには、
同様にエラーとなってしまうテーブルのみを選択してエクスポートします。
この場合、1つのSQLに対して1つのテーブルの構造とデータが、
格納されたファイルが出力されます。
手間は2回必要になってしまいますが、
エクスポートが正常に行えないよりはマシといったところでしょう。
こうしたテーブル単位でのエクスポートでもエラーとなってしまう場合には、
レコード単位でテーブルを分割してエクスポートするしかありません。
(レコード単位)それでもphpMyAdminでエクスポートがサーバーエラーになってしまう場合の対処法
MySQLはOracle Inc.による著作物です。
MySQLはFree Software Foundation, Inc.によってGPL Licenseでライセンスされています。
phpMyAdminはphpMyAdmin devel teamによる著作物です。
phpMyAdminはGNU General Public License, version 2.によってライセンスされています。
関連記事
-
-
phpMyAdminを利用したエクスポート・インポートで最も適した設定とは?
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
phpMyAdminを利用したMySQLデータのエクスポート形式一覧とデータ
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
ローカル環境へのphpMyAdmin設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
(データ編)phpMyAdminを利用したエクスポートオプションと出力の関係
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
KAGOYA™(カゴヤ)のMySQL単独プランの利用手順
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
レンタルサーバ環境へのphpMyAdmin設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
ローカル環境へのMySQL設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
(phpMyAdmin)タイムアウト設定の動作と確認
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
phpMyAdminを利用したMySQL同期とWM3500Rポート解放
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
-
phpMyAdminを利用したMySQLデータのインポート形式一覧とデータ
Google or AdMax Promotion(it) 禁断の機能がau公式 …