2016-09-18 12 views
-2

もっと堅牢なデータベースサーバーを作るにはどうすればいいですか?私はこれがかなり一般的な問題だと知っていますが、いくつかの選択と2つの挿入を行うシンプルなサービスでMySQLを使用してあらゆる種類のエラーと停止時間を得ています。何も複雑でなく、JOINもありません。MySQLは本当に不安定です - マイグレーションを検討する

多くの接続のために私のホストはDBサーバーからブロックされていましたので、max_used_connectionsパラメータを増やしました。私のクライアントは実際に接続を閉じてプールを正しく処理しています。

数日間は正常でした。今日私は目を覚まし、MySQLサーバーはダウンしました。 service mysql restartで再起動しようとしましたが、失敗しました。接続しようとしましたがエラー1040:接続が多すぎます。 私はサーバーを再起動できませんでした。

私はkillall mysqldを実行し、service mysql startでサーバーを起動しようとしました。サービスが開始されませんでした。実行してsu - mysql -s /bin/sh -c "/usr/bin/mysqld_safe > /dev/null 2>&1 &"、サーバーが最後に起動しました。

また、今日のサーバ起動時に数秒後にサーバが死んでしまうので、max_connectionsの制限も増やしました。

は、1つのテーブルが破損したERROR 144 (HY000): Table '<table_name>' is marked as crashed and last (automatic?) repair failed

REPAIR <table_name>しようとしたが、いくつかの時間後にサーバがERROR 2006 (HY000): MySQL server has gone away再び死亡しました。サーバーが死んだときはいつも、この同じプロセス(ここまでkillall)を約3回試行しました。

今私はREPAIR <table_name> QUICKを実行していて、サーバーは死にそうではないようですが、実際には200kの行テーブルを修正するのにかなり時間がかかります。

ところで、私は2つのテーブルを持っています.1つは200k行ともう1つは11M行です。私は約2000人の同時ユーザーをピークにします。その結果、毎秒約100件のクエリが発生します。

これはMySQLが簡単にクラッシュすることはありますか? Cassandraのような他のスケーラブルなデータベースに移行する必要がありますか?私は実際に私のケースではリレーショナルデータベースを好んでいます(テーブル結果にはrequest_id、キーテーブルのkey_id FKを持つリクエストテーブルのFKがあります)が、実際に稼働時間が長いとリレーショナルメリットが失われることはありません。

+1

他のソフトウェアに移行しても、悪いハードウェアで動作する「魔法の」コードがあるわけではありません。まず、MySQLとの接続/切断を望んでいません。永続的な接続が必要です。第二に、db用の適切なハードウェアを用意する必要があります。これは、良好なソリッドステートドライブと、十分なRAM RAMを備えているため、作業データを保持します。第三に、あなたのMySQLを設定する必要があります - それは2001年に "ok"を実行するように設定されています。答えるには、MySQLがクラッシュするのは普通ではありません。 –

+3

MySQLはかなり堅牢で信頼性の高いサービスです。クラッシュは一般的ではなく、通常の動作とはみなされません。使用しているオペレーティングシステムのバージョンと、MySQLのバージョンをお知らせください。 – JasonD

+0

また、仮想ホストからこれを実行しているようです - RAMとディスクのスペックを教えてください。 MySQLを再起動する際のエラーは、MySQL自体ではなく、OSに関連しています。 – JasonD

答えて

0

は、私が(?私はカサンドラのような他のよりスケーラブルなデータベースに移行する必要がありMySQLは、この簡単にクラッシュし、それが正常なことです?)ご質問があることはよく分からない客観的に答えることができるので、ここで私の主観的な答えは:

いいえ、それは正常ではありません。リレーショナルデータベースを必要とし、MySQLが十分にサポートされており、本当によく知られているため、移行しないでください。あなたの問題は(も主観)について

さらに詳しい情報:

MySQLは本当に安定しています。私は定期的に使用して何年も稼働しており、問題がないMySQLサービスを持っています。他の多くの人が同様の経験をしていると確信しています。大企業の多くは、MySQLを大いに活用しています。

私にとって懸念されるのは、killallとサービスの再起動がうまくいかなかったことです。特に、あなたは2歳以上のUbuntu LTSバージョンで動作しているので、かなり安定しています。私は絶対確実にこれを言うことはできませんが、ハードウェアに問題があるか、少なくともハードドライブが壊れているように見えます。問題の原因となっているソフトウェアやカーネルのオプションや設定があるかもしれません。

ハードウェアの完全なチェック(最低でもRAMとHDDのチェック)を行い、完全に再インストールすることをお勧めします。

関連する問題