MilkyStep Official Community

メルマガ・ステップメール配信ソフトMilkyStep利用者のコミュニティです。

「データベースに接続できません」というエラーが出ます/急にInternal Server Errorが出るようになりました/バックアップファイルが取得できません/バージョンアップ後に動作やデータがおかしい

今まで特に問題なく配信してきたのにもかかわらず、また、特に配信を実行中でないにもかかわらず、あるときを境に「データベースに接続できません」のエラーやInternal Server Errorが発生する、また、「バックアップを取得」ボタンを押してもバックアップファイルのダウンロードが完了しない、バージョンアップ後に一部の動作がおかしい、などの症状が出る場合、大きくわけて2つの原因が考えられます。

下記を参考に対処をお願いいたします。

 

【1】 MySQLデータベースの特定のテーブルが肥大化している

一日に数万件単位で毎日のように配信していたり、「基本設定の編集」で「クリック測定/配信履歴/配信ログデータなどを保存する日数」を大きな値に設定していた場合、下記のテーブルのデータが膨大になり、処理が追い付かず、MySQLがダウンしたり、極端に動作が遅くなったりする場合があります。これらのテーブルのレコードの一部を削除するか空にして、容量を減らしてください。

・ms_delivered

配信履歴ごとに、どの読者に配信したかを関連付けるためのデータが入ったテーブルです。例えば、1日2万件×90日配信すると、18万件のレコードが蓄積されることになります。同じようなメルマガがもう一つあれば、単純に×2で36万レコードが蓄積されます。

このデータは、メルマガの配信履歴やクリック測定データを保管する日数に伴って、古いデータから順次削除されるようになっていますが、配信のペースや配信数が多いと、削除される前にどんどん肥大化してしまうデメリットがあります。

このテーブルのデータを削除すると、配信履歴の「この記事を配信した読者一覧」の関連付けが削除されます。

【追記】

Professional Ver1.69より、このテーブルのレコードは、1配信履歴あたり300件が上限となるよう修正されました。

・ms_erradd

配信履歴ごとに、配信エラーになったメールアドレスのデータがセットされるテーブルです。ms_delivered同様、配信のペースや配信ごとのエラー数が多いと、定期的に削除される前に肥大化してしまう恐れがあります。

このテーブルのデータを削除すると、配信履歴の到達状況グラフに表示されるエラー数から参照できる、エラーになったメールアドレスの関連付けが削除されます。

・ms_actionlog

MilkyStepの各動作のログを記録するテーブルです。主に即時配信を行ったりcronが起動するたびに記録されます。こちらも、メルマガの数やステップメール・自動メルマガのストーリー数が多いと、比較的肥大化しやすくなります。

ログを閲覧する必要性が低い場合は、こちらも併せて削除していただくことをお勧めします。

!!!!注意!!!! テーブル自体は削除しないでください。あくまでもテーブルの中のレコードを削除します。

データの削除を行う場合は、phpmyadminなどのMySQLクライアントを利用すると便利です。該当するテーブルで、「空にする」を実行すると、中のレコード全件を一気に削除することが可能です。

MySQLを提供しているレンタルサーバではほとんどの場合このphpmyadminが利用できます。操作方法などの詳細は、各レンタルサーバ会社にお問い合わせいただくか、関連書籍や関連WEBサイトをご参照ください。

これらのテーブルのデータを削除した場合でも、配信処理自体には影響しない(これが原因で配信ができなくなることは無い)ので、配信量が多い方は、快適性を保つために定期的にこれらのデータの削除を行うことをお勧めします。また、「基本設定の編集」で「クリック測定/配信履歴/配信ログデータなどを保存する日数」を少なめにすることも効果的です。

 

【2】ハードディスクの容量が一杯になり、新たなデータの書き込みができない

基本的にはメールが配信される度、サーバ内のメールログにSMTPの履歴が記録されます。Linuxの場合たいていは「/var/log/maillog」に記録されます。

たいていはこのメールログは一定周期でローテーションして、新しいファイルが作られるようになっていますが、その一定周期が来る前に膨大な配信を行ったり、エラーで返ってくるメールの数が多かったりすると、それに伴うログがどんどん増えるためファイルサイズが肥大化していってしまします。

VPSなどでは、初期状態でこのメールログのサイズの上限は無い場合があり、容量が少ないとローテーションが行われる前にハードディスクの容量を食いつぶしてしまう場合があります。

それによって、データベースに新しいデータを書き込めなくなり、MySQLサービスが停止する場合があります。

この対策としては、ハードディスクの容量を増やす、容量の大きなメールログを削除する、ローテーションの周期を短くし一定のファイルサイズになったらローテーションを行うようにする、などの対策があります。

ディスクの容量を確保したら、MySQLサービスを起動・または再起動してください。

金, 9月 14 2012 » よくある質問(FAQ), データベース関連, トラブル, バックアップ・リストア関連, バージョンアップ関連, 各種エラーの解説

Login