タグ付けされた質問 「innodb」

InnoDBは、MySQLで使用される主要なACID準拠のストレージエンジンです。

1
InnoDB:エラー:ログファイル./ib_logfile0は異なるサイズです
InnoDBエンジンを使用するように1つのデータベースを変換した後、/ etc / mysql / my.cnfに次の行を追加しました。 innodb_buffer_pool_size = 2560M innodb_log_file_size = 256M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 2 innodb_thread_concurrency = 16 innodb_flush_method = O_DIRECT しかし、mysqldを再起動すると「2行目でエラー2013(HY000)2:クエリ中にMySQLサーバーへの接続が失われました」エラーが発生します。そして、mysqlエラーログは次を示します InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 268435456 bytes! 100118 20:52:52 [ERROR] …
106 mysql  log-files  innodb 

6
不明またはサポートされていないストレージエンジン:InnoDB | MySQL Ubuntu
最近、以前のLTS UbuntuからPreciseにアップグレードしましたが、mysqlは起動を拒否します。起動しようとすると、次のエラーが表示されます。 ╰$ sudo service mysql restart stop: Unknown instance: start: Job failed to start そして、これは「/var/log/mysql/error.log」に表示されます。 120415 23:01:09 [Note] Plugin 'InnoDB' is disabled. 120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled. 120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB 120415 23:01:09 [ERROR] Aborting 120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete すべてのmysqlディレクトリのパーミッションをチェックして、所有権があることを確認しました。また、previou ib_logsの名前を変更して、再作成できるようにしました。Googleの結果を2時間確認した後、この問題で今どこにもないのです。
45 ubuntu  mysql  innodb 

6
MySQL InnoDB-innodb_file_per_tableの短所?
デフォルトでは、MySQL InnoDBはすべてのDBのすべてのテーブルを1つのグローバルファイルに保存します。これを変更するには、configでinnodb_file_per_tableを設定します。これにより、テーブルごとに1つのデータファイルが作成されます。 なぜinnodb_file_per_tableデフォルトで有効になっていないのだろうか。それを使用することの欠点はありますか?
32 mysql  innodb 

2
InnoDB(5gbデータベース)のみを使用する8gb RAM専用MySQLサーバーの最適なMySQLキャッシュ設定
パフォーマンスのためにMySQLを設定することになると、私は非常に大物です。そして正直なところ、MySQLのパフォーマンスの最後の部分をすべて絞り出すための微調整については心配していませんが、最良の結果のいくつかを提供する最も重要なことは、キャッシュ/バッファを正しく設定することです。 InnoDBのみをストレージエンジンとして使用することで、物事をシンプルにしようとしました。また、MySQL専用のサーバーがあります。8GBのRAMがありますが、パフォーマンスを最大化するにはどのように割り当てる必要がありますか?最高のパフォーマンスを得るために、データベース全体をメモリに収めることができます。データベースは約5GBです。これは可能ですか? クエリキャッシュに割り当てるメモリ量はどれくらいですか?InnoDBバッファープールはいくらですか?コンピューターの残りの部分(つまり、MySQLに関連しないプロセス)はいくらですか?等。 MyISAMを使用していないので、キーキャッシュに多くのメモリを正しく入れる必要はありませんか?

3
Mysqlがクラッシュし、起動しません
本番mysqlサーバーがクラッシュしただけで、復旧しません。セグメンテーションエラーが発生しています。再起動を試みましたが、他に何を試すべきかわかりません。スタックトレースは次のとおりです。 140502 14:13:05 [注]プラグイン「FEDERATED」は無効です。 InnoDB:ログスキャンがチェックポイントlsn 108を超えて進行しました10 1059948207 140502 14:13:06 InnoDB:データベースは正常にシャットダウンされませんでした! InnoDB:クラッシュリカバリを開始しています。 InnoDB:.ibdファイルからのテーブルスペース情報の読み取り... InnoDB:ダブルライトからのハーフライトデータページの復元 InnoDB:バッファー... InnoDB:リカバリを実行中:ログシーケンス番号108までスキャン10 1058059648 InnoDB:1つのトランザクションをロールバックまたはクリーンアップする必要があります InnoDB:元に戻すための合計15行の操作 InnoDB:Trx idカウンターは0 562485504です 140502 14:13:06 InnoDB:データベースへのログレコードの適用バッチの開始... InnoDB:進捗率(パーセント):4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 …
19 mysql  innodb  crash 

5
ダウンタイムがほとんどまたはまったくない非常に大きなmysqlテーブルの列の変更
私は定期的にmysql 5.1のテーブルを変更する必要があり、ほとんどの場合は列を追加します。alter tableコマンドを使用すると非常に簡単です。しかし、私のテーブルには現在最大4,000万行あり、急速に成長しています...したがって、これらのalter tableコマンドには数時間かかります。数ヶ月で彼らは私が推測している数日かかるでしょう。 Amazon RDSを使用しているため、スレーブサーバーを使用してマスターに昇格させることはできません。私の質問は、最小限のダウンタイムでこれを行う方法があるかどうかです。ユーザーがもちろんデータベースを使用できる場合、数時間または数日かかる操作を気にしません...列が追加されている間に少なくとも読むことができますか?アプリが書き込もうとするとどうなりますか?挿入または更新しますか?すぐに失敗した場合、実際にはそれほど悪くはありません。ハングしただけで、大きな問題であるdbサーバーに問題が発生した場合。 これはかなり一般的なスケーリングの問題である必要があり、誰もが列を追加する必要があります。スレーブ->マスター移行? 更新 -私はinnodbストレージエンジンを使用していることに言及するのを忘れました


5
MySQLデータベースエンジンの選択方法
特に、MyISAMとInnoDBのどちらも必要な機能が欠けている場合(外部キーが不要な場合など)、どのように選択しますか。 常に両方を試して測定することになりますか?または、読み取りと書き込みの数と頻度、およびそのような他の尺度に関して、良い経験則がありますか?テーブルのサイズは、一般的な選択に影響を与えますか?
16 mysql  innodb  myisam 

5
MySQLのINSERTおよびUPDATEのパフォーマンスを改善する方法は?
この質問はおそらくStackOverflowでも聞かれますが、まずはここで試してみます... データベース内のINSERTおよびUPDATEステートメントのパフォーマンスが低下し、Webアプリのパフォーマンスが低下しているようです。 テーブルはInnoDBであり、アプリケーションはトランザクションを使用します。速度を上げるために簡単に調整できるものはありますか? ロックに関する問題が発生している可能性がありますが、どうすればわかりますか?


5
ZFSスナップショットを介してMySQLデータベースをバックアップする
私はこれを正確に行うことについて話している多くのサイトを見つけましたが、いくつかの重要な詳細を見逃しています。一般的な手順は 走る FLUSH TABLES WITH READ LOCK ZFSスナップショットを撮る 走る UNLOCK TABLES さまざまな情報源は、私が使用しているInnoDBは実際にはを尊重しないと報告していFLUSHます。MySQLユーザーマニュアルFLUSH TABLES...FOR EXPORTには、InnoDBで使用するバリアントがありますが、データベース全体をバックアップするのではなく、各テーブルを個別に指定する必要があると記載されています。テーブルのリストが実際に存在するテーブルと同期しなくなる可能性があるため、各テーブルを個別に指定することは避けたいと思います。 私が抱えている他の問題は、私がのようなことをする予定であったことですmysql -h"$HOST" -u"$USERNAME" -p"$PASSWORD" --execute="FLUSH TABLES WITH READ LOCK"。ただし、これにより、セッションが終了した直後にロックが解除されます。これは理にかなっていますが、スナップショットを撮るときに読み取りロックを保持する必要があるため、かなり面倒です。 私の他のアイデアは、Percona XtraBackupのようなツールを使用してホットバックアップを作成し、バックアップのスナップショットを取得することですが、スナップショットを作成するためだけにすべてのデータを2番目の場所に書き込むコストを払わないことを望みます。
12 mysql  backup  freebsd  zfs  innodb 

4
データベースの使用されているストレージエンジンを知る方法は?
以前は、作成されたすべてのデータベースで、以下を使用しています。 mysql -u root -p CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL ON dbname.* TO 'dbuser'@'localhost'; MyISAMやInnoDBを意識せずにデータベースを使用する データベースの使用されているストレージエンジンを知る方法は?

6
MySQL / InnoDBでトランザクションの時間制限を設定する
これは、この関連する質問から生じました。ここでは、2つのトランザクションを単純なケース(両方が単一の行でのみ動作している)で連続して発生させる方法を知りたいと思いました。SELECT ... FOR UPDATE両方のトランザクションの最初の行として使用するという回答を得ましたが、これは問題につながります。最初のトランザクションがコミットまたはロールバックされない場合、2番目のトランザクションは無期限にブロックされます。innodb_lock_wait_timeout変数は、2番目のトランザクションを作成しようとしているクライアントは、「申し訳ありませんが、もう一度やり直してください」と言われるでしょう...しかし、私の知る限り、彼らは次のサーバを再起動するまで再試行されると思いまでの秒数を設定します。そう: ROLLBACKトランザクションが永遠にかかっている場合、強制する方法が必ずあるはずです。そのようなトランザクションを強制終了するためにデーモンを使用する必要があります。その場合、そのようなデーモンはどのようになりますか? 接続がトランザクションによってwait_timeoutまたはinteractive_timeoutトランザクションの途中で強制終了された場合、トランザクションはロールバックされますか?コンソールからこれをテストする方法はありますか? 明確化:innodb_lock_wait_timeoutトランザクションがロックを解除するまで待機する秒数を設定します。私が望むのは、ロックを強制的に解除する方法です。 更新1:innodb_lock_wait_timeout2番目のトランザクションが最初のトランザクションによってブロックされないようにするのに十分ではない理由を示す簡単な例を次に示します。 START TRANSACTION; SELECT SLEEP(55); COMMIT; のデフォルト設定ではinnodb_lock_wait_timeout = 50、このトランザクションは55秒後にエラーなしで完了します。またUPDATE、SLEEP行の前にを追加してからSELECT ... FOR UPDATE、同じ行を試行する別のクライアントから2番目のトランザクションを開始すると、スリープ状態になったトランザクションではなく、2番目のトランザクションがタイムアウトになります。 私が探しているのは、このトランザクションの安らかな眠りを終わらせる方法です。 更新2:上記の例がいかに現実的であるかについてのhobodaveの懸念に応えて、代替シナリオを次に示します。DBAはライブサーバーに接続して実行します START TRANSACTION SELECT ... FOR UPDATE 2行目は、アプリケーションが頻繁に書き込む行をロックします。その後、DBAは中断され、トランザクションの終了を忘れて立ち去ります。行がロック解除されるまで、アプリケーションは停止します。この間違いの結果としてアプリケーションがスタックする時間を最小限にしたいと思います。
11 mysql  innodb 


4
InnoDBバッファープールサイズを増やす
MySql InnoDBのバッファープールサイズとログファイルサイズの設定に問題があります。私はMySqlエキスパートにはほど遠いですが、読んでいて、これを変更するには、これらの行を/etc/mysql/my.cnfに追加するだけのようです # Set buffer pool size to 50-80% of your computer's memory innodb_buffer_pool_size=2048M innodb_additional_mem_pool_size=512M # # Set the log file size to about 25% of the buffer pool size innodb_log_file_size=256M innodb_log_buffer_size=128M サーバーには約7GBのメモリがあり、Webサーバーも実行しているので、これらの数値は大丈夫な出発点になると思います。ただし、サーバーを保存して再起動した後、変更が有効になったようには見えません。バッファープールがまだ16.0Mであると報告されたMysqltunerを実行してみました。私が間違っていることは何か考えていますか?設定ファイルの詳細を確認したい場合はお知らせください。ありがとう!
11 mysql  innodb 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.