Mysqlのデータベースをバックアップを取るために、phpMyBackupProを使用しています。phpMyAdminも使います。
これらで大きなデータベースをエクスポートやバックアップを取ろうとすると、phpのメモリ制限?に引っかかり処理をすることができません。
「Fatal error: Allowed memory size of 33554432 bytes exhausted (tried
to allocate 31528269 bytes)」
このようなメッセージが出ます。
何か他のツールなどを使用してもいいのですが、大きなデータベースのバックアップをする方法はないでしょうか?
また、通常これらの場合、どうやってバックアップをとっているものなのでしょうか?SQL→ZIPしたファイルを取っておくようなことでは効率が悪いのでしょうか?
※レンタルサーバのため、ルート権限はありません。コマンド、htaccessでのphpの設定変更もできないそうです。
>「Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 31528269 bytes)」このようなメッセージが出ます。
phpの初期設定は8Mなので32Mはレンタルサーバとしてはいい方ではないでしょうか。
phpMyBackupProは使ったことはないのですがphpMyAdminでエクスポートは数度行いました。ただデータ量がたいしたことがないのであまり参考にならないかもしれませんが。
phpMyAdminでエクスポートする際はデータベース単位ではなく、テーブル単位でしてみてはどうでしょう。またデータベース単位でエクスポートした場合、権限が無いとインポートできない(インポートというよりは新規に作成という形なのでデータベースを作成する権限がないため)と思います。
>通常これらの場合、どうやってバックアップをとっているものなのでしょうか?SQL→ZIPしたファイルを取っておくようなことでは効率が悪いのでしょうか?
データ量が多かったり、運用的なものであれば別にレンタルサーバなどを借りてミラーリングするようにしてバックアップはしないという方法もあるのではと思います。
しないということではなく、そうゆう考えもあるということで提示してみました。
私もバックアップをとらないというのは不思議でしたが
http://jp.sun.com/communities/users/0605/feature02.html
を読んで、膨大なデータであけば、取らないという考えもありだなぁと思うようになりました。
「データ量の大きなDBのバックアップ」ということだったのでバックアップ作業が大変だろうから同じ効果で手間のかからない方法として提示してみました。
>バックアップはやはり必要ですよね?
バックアップは必要です。それに間違いはないでしょう。