1. 重建rpmdb
有时候rpm数据库偶尔发生损坏,无法安装新rpm包:
rpmdb: Thread/process 21721/140622824318880 failed: Thread died in Berkeley DB library error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db3 - (-30974) error: cannot open Packages database in /var/lib/rpm rpmdb: Thread/process 21721/140622824318880 failed: Thread died in Berkeley DB library error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages database in /var/lib/rpm
这时候只需要重建就好了:
mv /var/lib/rpm/__db* /tmp yum clean all yum update rm -i /tmp/__db*
2. 利用 mysql_random_data_load 生成随机测试数据
mysql_random_data_load
是Percona贡献的工具,可以用于生成随机测试数据,非常方便。
其项目地址 https://github.com/Percona-Lab/mysql_random_data_load。
简单一个命令即可填充测试数据:
$ mysql_random_data_load -h127.0.0.1 -uroot -pGreatSQL -P3306 --max-threads=4 testdb t1 1000
各参数比较简单清晰,不再额外解释。
3. 在MySQL Shell里也启用pager
有时候,MySQL Shell的输出内容也挺多,需要加上pager便于查看:
mysqlsh> shell.enablePager(); mysqlsh> shell.options["pager"]="less -i -n -S";
4. 利用awk快速求和
假如有下面这样一段文本内容:
$ grep Lock_time: slow.log | head # Query_time: 1.097620 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0 # Query_time: 0.000111 Lock_time: 0.000060 Rows_sent: 1 Rows_examined: 1 # Query_time: 0.000462 Lock_time: 0.000120 Rows_sent: 2 Rows_examined: 544 ...
现在想求得 Query_time 列的数值,可以用类似下面的方法:
$ grep Lock_time: slow.log | head | awk '{sum1+=$3;}END{print sum1}' 77.228
这样就行了。