比如需要观察show innodb status、innodb_tablespace_monitor、innodb_lock_monitor、innodb_table_monitor这些命令在某个时间段的信息,如果要手动重复执行很麻烦,而innodb引擎在设计的时候就已经考虑到了,不过不够灵活,方法如下:
在数据库中创建相应引擎为innodb的表,创建相应的表之后,每15秒输出一次相应的信息到mysql error log中,不需要此功能的时候,删除相应的表即可,语句如下:
mysql> create table innodb_monitor(a int) engine=innodb;
Query OK, 0 rows affected (0.00 sec)
mysql> create table innodb_tablespace_monitor (a int) engine=innodb;
Query OK, 0 rows affected (0.01 sec)
mysql> create table innodb_lock_monitor (a int) engine=innodb;
Query OK, 0 rows affected (0.01 sec)
mysql> create table innodb_table_monitor (a int) engine=innodb;
Query OK, 0 rows affected (0.01 sec)
其实在Linux中,利用watch命令更加灵活地实现上面的需求,例如:每30秒输出一次show innodb status的结果,并把结果保存在一个文件中,语句如下:
[root@youxia205 tmp]# watch -n 30 'mysql -uroot -padmin -e "show innodb status\G" >> www.log';
关于watch命令的详细用法,可以查询man手册。