MySQL占用大量CPU资源到100%

生产上的MySQL5.6的库,一直都很正常的运行,从昨天下午开始,服务器CPU资源100%,开始我还以为是其它应用占用了CPU资源,一段时间后应该会放开,直到今天早上,CPU还仍然是100%,这就让我很疑惑了。

赶紧上去查看一下:

#top

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

15232 mysql 20 0 2779m 2.3g 0 S 197.1 29.1 80573:31 mysqld

果然,CPU被MySQL占完了,业务部门也反应系统查询很慢。

我就呵呵了,这平时跑着都正常,怎么突然就100%了。

mysql>show processlist;

然后就发现某台服务器正在用一个我没见过的账号在查询,状态一直是Sending data,而且有好几条。

去mysql-slow.log里翻一下,嗯,是有这么一条select语句。

二话不说,问开发有没有用那个MySQL的账号,回答说有,直接把SQL语句丢过去,然后在MySQL里kill掉那些一直Sending data的查询:

mysql>kill xxxxx;

进程号在你show processlist的时候就有,直接干掉,然后再出来top一下,嗯,CPU已经恢复正常了。

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

公司的测试数据库,开发的在上面跑脚本,把库资源全占完了,要我把库重启,我懒得去重启,就直接杀了oracle的进程,结果还是不行,就只能去重启库了:

$sqlplus / as sysdba

SQL>shutdown abort

SQL>startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORA-03113:end-of-file on communication channel

ORA-32004的错误,按照老外的方法:

sql>alter system reset log_archive_start scope=spfile;

完美解决,也有说是直接清理干净日志系统就可以,反正这里也是要清理的,不然ORA-03113错误没法解决。

ORA-03113:end-of-file on communication channel,去alert.xml里看,有关于闪回区日志占满的情况,这里就直接清理好了。

$rman target /

DELETE force archivelog ALL completed before ‘SYSDATE’;

然后再startup,这里就成功启动了。

ORA-01187: cannot read from file because it failed verification tests

今天去DG备库上生成报告,然后给了一段提示:

ORA-01187: cannot read from file  because it failed verification tests
ORA-01110: data file 201: ‘/oradata/seven/temp01.dbf’

临时表空间坏了?查看一下大小,跟主库不一样,主库6G,备库只有50M,真是怪了。

SQL>SELECT FILE_ID,FILE_NAME, STATUS FROM DBA_TEMP_FILES;

ERROR at line 1:
ORA-01187: cannot read from file 201 because it failed verification tests
ORA-01110: data file 201: ‘/u03/oradata/AGX/temp01.dbf’

SQL> select name,bytes/1024/1024,status from v$tempfile;

NAME                           BYTES/1024/1024 STATUS


/oradata/seven/temp01.dbf                   30 ONLINE

直接开干吧,老外说可以让系统检查一下,我试了一下,没用:

SQL>ALTER SYSTEM CHECK DATAFILES;

删除临时文件:

SQL> alter database  tempfile ‘/oradata/seven/temp01.dbf’ drop;

Database altered.

SQL> select name,bytes/1024/1024,status from v$tempfile;

no rows selected

重新添加临时数据文件:

SQL> alter tablespace temp add tempfile ‘/oradata/seven/temp01.dbf’ size 30M reuse autoextend on;

Tablespace altered.

SQL> select name,bytes/1024/1024,status from v$tempfile;

NAME                           BYTES/1024/1024 STATUS


/oradata/seven/temp01.dbf                   30 ONLINE

jenkins增加sonarqube检查java代码

准备工作:

1、jenkins

jenkins的工作方法有两种,这里随意,哪种都可以,我是选择放在了tomcat里面,便于管理。

2、sonarqube6.7.7 LTS

这里说明一下为什么要选6.7.7这个版本,因为后来从7版本开始,好像就不支持MySQL了,只支持Oracle,PostgreSQL,MSSQL。之前的版本启动的时候又提示什么版本太旧,不是Long Team Support版,所以干脆就选择了6.7.7这个LTS版。

3、MySQL5.6

手上只有这个版本的包,又懒得去下载,就用这个了。

CentOS自带的Mariadb版本太低,SonarQube不支持,不然就用自带的了。

阅读更多