ポジションを引き渡しますか?

過去半年間、MySQLを使用するという二重の印象を持っています。 オラクルが管理会社として行った作業を評価したくありませんが、5つのリリースでは、正常に動作するMySQLの安定したバージョンを待つことができないという事実について本当に述べたいと思います。



5.5.19

バグbugs.mysql.com/bug.php?id=56299を修正した待望のリリースがリリースされました。これは、レプリケーションbugs.mysql.com/bug.phpによる販売ハングの可能性があるため、データベース上のログのすべての切り替えを監視する必要があったためです。 ?id = 61186

リリースのテスト中に、パーティションを使用すると、MySQLが恥知らずに流れることがわかりました。 開発者は、流れるのはそうではないと主張しますが、メモリは断片化されていますblogs.innodb.com/wp/2011/12/improving-innodb-memory-usage-continued

画像

あ! つまり 私のOSがMySQLで使用されるメモリを使用できない場合、これは間違いなくOSのせいです。

5.5.21

バグ修正はbugs.mysql.com/bug.php?id=57480でした 。 5.6.5からのバックポートには修正がありました。これは、MySQLを毎月オーバーロードする必要がないため、スワップがいっぱいになっているためです。 しかし、その後、新たな驚きが生じました! もちろん古いですが、PCI DSSアクセサーの場合はパスワードがなくてもデータベースにアクセスできるので、赤い布です: seclists.org/oss-sec/2012/q2/493 。 問題はhabrahabr.ru/post/145641で十分にカバーされていました 5.5.22より前のバージョンはすべて脆弱です。 私たち自身は高速ではありません。テストしています。ソースコードのパッチをダウンロードしてください。

5.5.25

これまでのところ、リリース5.5.25のパッチとテストを行います。 さて、多くの修正があるので、インストールすることにしました。 1か月前、このバージョンのテストプロセスを開始しました。 私はチケットを書いています、ここで驚いた! このバージョンのソースはサイトから消えました。 パッチがあります。ソースをダウンロードする場所がないため、収集できません。 理由は些細なbugs.mysql.com/bug.php?id=65745です。 プライマリキーを更新すると(誰がプライマリキーを更新するのかわからない)、データが再帰的に変更され、HDDのすべての領域がいっぱいになります。

5.5.25a

新しいバージョンを応援します。 そこですべてが機能するはずです。 作業を確認します。突然、開発者の1人が、MySQLが要求に応じると答えました。 チェックします。 実際、存在しない期間にパーティション化されたテーブルからデータを要求すると、MySQLはエラーでクラッシュします

12:06:58 UTC - mysqld got signal 8 ; This could be because you hit a bug. ... Thread pointer: 0x4169f30 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... stack_bottom = 7ff9fa384e58 thread_stack 0x30000 /opt/mysql-5.5.25a/bin/mysqld(my_print_stacktrace+0x29)[0x75feb9] ... /opt/mysql-5.5.25a/bin/mysqld(pfs_spawn_thread+0x54)[0x879cf4] /lib/x86_64-linux-gnu/libpthread.so.0(+0x7efc)[0x7ffa669e8efc] /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7ffa65d5b59d]
      
      





確認します-5.5.22までのバージョンはすべて脆弱ですが、5.5.22ではパスワードなしで入力できます。 私は何をすべきかわかりません。 かぶを引っ掻いて座っています。 たとえば、このスクリプト(終日入力して作成した)を実行すると、Ubuntuが過負荷になります。

 use test_mysql_crash; drop table if exists test_table; create table test_table ( agad_id int(10) unsigned not null auto_increment, partition_key int(8) not null default '0', caaf_caaf_id int(10) unsigned default null, primary key (agad_id,partition_key), key idx_1 (partition_key), key idx_2 (caaf_caaf_id) ) engine=innodb partition by range (partition_key) (partition test_table_20120717 values less than (20120718) engine = innodb, partition test_table_20120718 values less than (20120719) engine = innodb, partition test_table_20120719 values less than (20120720) engine = innodb, partition test_table_20120720 values less than (20120721) engine = innodb, partition test_table_20120721 values less than (20120722) engine = innodb); drop procedure if exists ui_test_mysql_crash; delimiter $$ create procedure ui_test_mysql_crash() main_sql: begin declare v_sql_core text; set v_sql_core = concat( ' explain select caaf_caaf_id, ', ' partition_key ', ' from test_table ', ' where partition_key between ? and ? ', ' group by caaf_caaf_id, partition_key' ); set @sv_ddl_statement = v_sql_core; set @sv_partition_key_from = 20120801; set @sv_partition_key_to = 20120831; prepare v_stmt from @sv_ddl_statement; execute v_stmt using @sv_partition_key_from, @sv_partition_key_to; deallocate prepare v_stmt; end $$ delimiter ; call ui_test_mysql_crash;
      
      





さて、バグbugs.mysql.com/bug.php?id=65587にコメントして待ってください...



PSもちろん、すべてのイベントは年代順ではなく、すべての最新バージョンで何かが間違っていたことを説明したいだけです...



更新: shagguboyが正しく指摘-あるバグでは、5.5.26で最後のバグがすでに修正されていると書かれており、彼のおかげで、はい、次のバージョンを待っています(IMHOは非常に象徴的です)



All Articles