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したファイルを取っておくようなことでは効率が悪いのでしょうか?
データ量が多かったり、運用的なものであれば別にレンタルサーバなどを借りてミラーリングするようにしてバックアップはしないという方法もあるのではと思います。
ミラーリングだけでバックアップしないものなんですか?なるほど。
ただ、ハードウェア的な障害対策だけでなく、人為的なデータ操作のミスなどには、ミラーリングでは対応できないので、バックアップはやはり必要ですよね?