阿里巴巴DBA,原去哪儿网DBA。专注于MySQL源码研究、DBA运维、CGroup虚拟化及Linux Kernel源码研究等。 github:https://github.com/HengWang/ Email:king_wangheng@163.com 微博 :@王恒-Henry QQ :506437736
分类: Mysql/postgreSQL
2012-05-07 16:55:00
Percona Server 5.5 Bug 规避策略
目的:
由于Percona Server本身存在Bug,为公司的开发者和维护者在开发和管理过程中,避免使用存在Bug的参数、语句等,指定以下策略。不过从查看bug过程中发现,一般在维护和开发中很少用到,仅供大家参考,如果有更重要的信息,欢迎大家交流学习。
Bug列表:
由于MySQL存在的Bug很多,所有不同重要级别、不同类型的Bug有285个,在连接中,给出了所有的Bug列表。而对 Percona Server 5.5而言,有51个Bug,在连接中,给出了所有Bug的列表。基于以上目的,以下仅对Percona Server 5.5的51个Bug进行分析,制定规避策略。为了便于查看所有的Bug,在附录中给出了所有的51个Bug列表及链接。
规避策略:
以下策略中,在每一条策略后面都分别标注了规避对象(管理员、开发者)。需要明确的是,这些并没有严格的界限,仅仅从应用可能上面进行了区别。
1、禁用状态参数innodb_row_lock_numbers。规避Bug#721615,该参数已经修改为Innodb_current_row_locks。通过“show status like ‘Innodb_current_row_locks’;”查看该参数。(管理员)
2、禁用参数log_slow_timestamp_every、log_warnings_slience、userstat_running、slow_query_log_microseconds_timestamp、use_global_log_slow_control。规避Bug#721608,其中参数log_warning_slience修改为log_warnings_suppress,userstat_running修改为userstat。通过“show variables like ‘log_warnings_suppress’”,“show variables like ‘userstat’”可以查看,其他参数经过验证没有相关参数。(管理员)
3、禁止设置参数innodb_dict_size_limit。规避Bug#758788,该参数在设置过大时,会导致服务crash。(管理员)
4、设置boolean类型参数时使用0、1。规避Bug# 727818,有些参数可能不支持ON/OFF。(管理员、开发者)
5、禁用新增log_slow_rate_limit参数。规避Bug#803072,未经过严格的测试。(管理员)
6、禁止设置innodb-purge-thread参数。规避Bug#938419,未确定的Bug。(管理员)
附录:
BugNo |
Important |
Status |
BugHref |
BugTitle |
#983692 |
Critical |
Triaged |
|
Improved table import is broken in 5.5 |
#721615 |
High |
Fix Committed |
|
Document and rename INNODB_ROW_LOCK_NUMBERS |
#721608 |
High |
Fix Committed |
|
Rename general variables in 5.5 |
#758788 |
High |
Fix Committed |
|
mysql process crashes after setting innodb_dict_size |
#756387 |
High |
Confirmed |
|
The innodb.innodb_bug60049 test fails in 5.5.11 |
#904714 |
High |
New |
|
Intermittent rpl.percona_bug860910 failures |
#905334 |
High |
New |
|
Intermittent innodb_bug56680 crash on 32 bit platforms |
#905335 |
High |
New |
|
rpl_show_slave_running crash |
#898306 |
High |
Confirmed |
|
innodb_fake_changes doesn't handle duplicate keys on REPLACE |
#908531 |
High |
Triaged |
|
5.1.60-13.1 - /usr/sbin/mysqld: malloc(): memory corruption |
#917942 |
High |
Triaged |
|
fake-changes infinite loop on update, allocates many extents |
#897258 |
High |
Triaged |
|
crash on quick rm table when optimizing table. |
#978036 |
High |
Fix Committed |
|
Percona server crashes on ALTER TABLE on temporary table |
#721176 |
Medium |
Triaged |
|
slow_extended in 5.5 always shows identical values for Rows_sent and Rows_read |
#589491 |
Medium |
Fix Committed |
|
Add Rows_examined into SHOW PROCESSLIST |
#703947 |
Medium |
Triaged |
|
sql_no_fcache.patch can not find the right device |
#715585 |
Medium |
Triaged |
|
transaction logfile margin might be too large for >4GB logfile at XtraDB |
#727818 |
Medium |
Triaged |
|
Change variable innodb_lazy_drop_table to accept ON/OFF values |
#592365 |
Medium |
Triaged |
|
Make InnoDB thread IDs available |
#589487 |
Medium |
Triaged |
|
Add INFORMATION_SCHEMA table for time spent in different thread statuses |
#616636 |
Medium |
New |
|
5.1.47 Release v11.2.53: Descrepency between RPM database and the contents of the RPM file. |
#712396 |
Medium |
Triaged |
|
log_slow_slave_statements not work on replication threads without RESTART |
#794800 |
Medium |
New |
|
main.myisam-blob and main.almost_full fail on valgrind |
#860055 |
Medium |
Triaged |
|
percona server comparison to mysql is out of date |
#909431 |
Medium |
In Progress |
|
merge kewpie into percona server trees |
#728082 |
Medium |
Triaged |
|
USER_STATISTICS shows incorrect value for number of concurrent connections |
#608027 |
Medium |
Triaged |
|
CPU_TIME is UserStats is broken |
#924872 |
Medium |
New |
|
userstat.patch has several bugs (incorrectly ported from Google Tools for MySQL) |
#893348 |
Medium |
Confirmed |
|
max_user_connections issue |
#734635 |
Low |
Triaged |
|
Error log size message is not adjusted for big log files |
#768038 |
Low |
Triaged |
|
Unused variable in 5.5 innodb_io_patches.patch |
#803124 |
Low |
Confirmed |
|
command-line slow_extended.patch tests |
#803072 |
Low |
Fix Committed |
|
add variable test - log_slow_rate_limit |
#730173 |
Low |
Confirmed |
|
InnoDB and query plan information are logged when not enabled |
#856910 |
Low |
Triaged |
|
mysqldumpslow broken with PS slow log format |
#590289 |
Wishlist |
Triaged |
|
Implement COMMIT SYNC/DELAYED |
#588854 |
Wishlist |
Triaged |
|
Make a way to set and view other user's variables |
#725436 |
Wishlist |
Triaged |
|
Integrate the "KILL IF_IDLE" patch |
#592377 |
Wishlist |
In Progress |
|
Make information on undo space available |
#589489 |
Wishlist |
Triaged |
|
Add an INFORMATION_SCHEMA.HOSTS table |
#991651 |
Wishlist |
Triaged |
|
Provide per-thread memory usage statistics |
#801078 |
Wishlist |
Triaged |
|
Many rpl failures under Valgrind |
#816443 |
Undecided |
Confirmed |
|
Valgrind errors in various ctype tests |
#890659 |
Undecided |
Confirmed |
|
Bug #695906 is not actually fixed |
#892405 |
Undecided |
Confirmed |
|
innodb_stats_method=nulls_ignored works incorrectly |
#901690 |
Undecided |
Confirmed |
|
SunStudio 12.1 on Solaris 10u8 (x64) - compilation error |
#903506 |
Undecided |
Fix Committed |
|
RBR + no PK => High load on slave (table scan/cpu) => slave failure |
#938419 |
Undecided |
Confirmed |
|
can't set innodb_purge_threads |
#951588 |
Undecided |
Confirmed |
|
I_S.GLOBAL_TEMPORARY_TABLES crashes debug builds on ALTER TABLE |
#959198 |
Undecided |
New |
|
main.mysqldump test failure on CentOS 5 |
#988383 |
Undecided |
Confirmed |
|
Patch management remnants in 5.5 tree |