2009-06-23 16 views
0

私は、数百万のMySQL(5.0.45)データベース行を別のテーブルの別のフォーマットに移行し、関連性の高い(多くの)情報を保持しているワンタイムPHP(5.2.6)増分計算のためのメモリ内のデータ。データは徐々に計算されます。 (約1000行のチャンク)更新スクリプトがランダムに停止する

エラーメッセージなしで、ランダムなポイントでスクリプトが予期せず停止します。私の質問です - どのようにスクリプトの停止の理由を見つけることができます。 (メモリの停止?MySQLなどによるタイムアウト...)

私はset_time_limit(0)を持っています。 PHPのタイムアウトではありません。

+0

あなたは良い提案を得ています。ただし、set_time_limit()ドキュメントのページから安全モードで実行していないことを確認してください: "PHPがセーフモードで実行されているときは、この機能は無効です。セーフモードをオフにするか、 php.iniの制限http://php.net/set_time_limit – artlung

+0

ありがとうございました。解決策はini_set( 'memory_limit'、 '200M')を追加することでした。それは確かに記憶上の問題でした。 – Nir

答えて

2

あなたはあなたがphp.iniで(エラー報告レベルを回してみてくださいmemory_limitパラメータ

1

にphp.iniでより多くのメモリ を追加する必要があり、ログファイル、 はおそらくメモリ

で見ます)本当に高いので、それはより多くの事について不平を言う。

私の最初の推測では、あなたの実行時間制限またはメモリ制限に達し、スクリプトは終了しましたが、それをカバーしていたでしょう。

+0

set_time_limitは実行制限をカバーしますが、メモリの制限はカバーしません。メモリの上限に達している可能性があります。 – MaxVT

1
  • PHPログファイルを確認してください。
    • error_reporting(E_ALL | E_STRICT);
1

を報告するすべてのエラーをオンには、コマンドラインからではなく、Webブラウザ経由でPHPを実行しようとしたことがありますか?たぶん、サーバーには、特定のメモリ使用量に達すると、そのサーバーが落ちるようなものがありますか?

一般に、バルク操作はWebサーバー経由で行うべきではありません。途中で失敗する可能性があります。

0

ありがとうございます(私は関連する回答に投票しました)。問題はメモリとini_set( 'memory_limit'、 '200M')の設定でした。それを解決しました(これは1度のスクリプトです)

関連する問題