通过performance_schema视图和sys视图定位使用磁盘文件导致IO很高的SQL
思路:1. 执行测试的语句,使用 TOP 查看操作系统的性能状态2. iostat3. iotop4. 通过 performance_schema 中的 events_waits_summary_global_by_event_name 表的等待时间排序找出 TOP 等待事件。 或通过 sys 库中的 io_global_by_wait_by_latency 表找出 TOP 等待事件5. 查...
innodb 事务锁研究
1. select * for update 语句添加的是排他行锁。 2. select ... from table_name where ... forupdate 语句在行计划使用索引常量查找或索引范围扫描时(索引覆盖查询的情况下)会在主键上添加排他行锁。 3. select .. for update 语句使用全索引扫描时,在使用覆盖索引的情况下也会对主键的所...
innodb保护行锁对象的mutext争用导致LINUX内核态CPU使用率高诊断
MSYQL 版本:mysql> select version()\G*************************** 1. row***************************version(): 5.6.27-log1 row in set (0.00 sec) 1. 测试数据如下mysql> select * from t1;+------+------+| id | name |+------+------+| &nbs...
ORACLE DATABASE 针对安全扫描检查到的漏洞查找补丁
ORACLE DATABASE 针对安全扫描检查到的漏洞查找补丁
控制文件与数据文件头SCN不一致导致数据库无法启动故障处理
环境说明OS操作系统:WINDOWS 2012 64位数据库版 本:ORACLE 11.2.0.1 故障问题描述客户反映数据库无法启动,报 ORA-01589:要打开数据库必须使用RESETLOGS 或 NORESETLOGS 选项。使用alter database openresetlogs 启动数据库报 ORA-01194:文件1需要更多恢复来保持一致性,ORA-011...
通过查询日志定位持有锁的SQL语句
MYSQL 版本:mysql> select version();+------------+| version() |+------------+| 5.6.27-log |+------------+1 row in set (0.00 sec)1. 启用查询日志mysql> SET GLOBAL general_log=1;Query OK, 0 rows affected (0.02 sec)mysql> show variables like 'general_log%';+------------------+----...
服务器内存不足导致LINUX KILL MYSQLD 故障
环境说明OS操作系统:SUSE Linux 11数据库版 本:MYSQL 5.6 故障问题描述客户反映MYSQL数据库因为内存不足被重启。故障分析1、根据MYSQL报警日志确认问题:2016-10-24 12:28:49 29226 [Note] Plugin'FEDERATED' is disabled.2016-10-24 12:28:49 29226 [Note] ...
RAC删除 /tmp/.oracle目录导致故障
故障问题描述客户技术人员电话反映应用出现有张表无法访问的问题(其实是数据库已经无法进行写入操作),同时,也无法远程登录检查,数据库日志等信息。根据当时情况,基本无法判断确定具体是什么原因导致表无法访问。到现场后经过同现场工程师沟通了解到在凌晨2点删除了 /tmp目录下临时文件。经过分析...
定位ORACLE TX锁和表锁的脚本
--查看 v$lock 表中的锁信息select sid,type,id1,id2,decode(lmode,0,'None',1,'Null',2,'Row Share', 3,'Row Exclusive',4,'Share',5,'Share Row Exclusive',6,'EXclusive') lock_mode, decode(request,0,'None',1,'Null',2,'Row share',3,'R...
ORACLE锁阻塞研究
1. SESION 信息SESSION 125SQL> select sid from v$mystat where rownum select sid from v$mystat where rownum
OGG重新初始化
环境说明OS操作系统:AIX数据库版 本:ORACLE 11.2.0.4 OGG 重新初始化步骤1、关闭目标端的日志应用进程: 2. 确认源端的数据抽取进程已经启动GGSCI> info all 3、导出数据:vi exp_data_parUSERID ="/ AS SYSD...
从MYSQL查查询日志中过滤出一个小时的慢查询日志并找出 TOP SQL
从MYSQL查查询日志中过滤出一个小时的慢查询日志并找出 TOP SQL
使用正确的表连接顺序和表连接方式优化SQL
1. 创建测试数据create table lixia.t1 as select * from dba_objects; delete from lixia.t1 where object_id is null;alter table lixia.t add constraint pk_t1 primary key(object_id);exec dbms_stats.gather_table_stats('LIXIA','T1',cascade=>true,no_invalidate=> FALSE,estimate_percent => 100,metho...
源码编译 mydumper 和使用 mydumper 对MYSQL进行逻辑备份
1. 下载 mydumperhttps://launchpad.net/mydumper/+milestone/0.9.1 2. 把 mydumper 上传到测试服务器 [root@oradb ~]# tar -vxfmydumper-0.9.1.tar.gz mydumper-0.9.1/CMakeLists.txtmydumper-0.9.1/READMEmydumper-0.9.1/binlog.cmydumper-0.9.1/binlog...
【MySQL】Got fatal error 1236原因和解决方法
MySQL 的主从复制作为一项高可用特性,用于将主库的数据同步到从库,在维护主从复制数据库集群的时候,作为专职的MySQL DBA,大多数人都会遇到 “Got fatal error 1236 from master when reading data from binary log” 这类的报错/报警。本文整理了常见的几种 error 1236 报错,并给出相应的解决方法,有所不足之处,当然也希望各位读者朋友指正。
Warning: World-writable config file is ignored
故障现象:[root@oradb mysql-5.6.27]# /app/oracle/oradata2/mysql-5.6.27/bin/mysqld_safe --defaults-file=/app/oracle/oradata2/mysql-5.6.27/my.cnf --user=mysql &[1] 2695[root@oradb mysql-5.6.27]# Warning: World-writable config file '/app/oracle/oradata2/mysql-5.6.27/my.cnf' is ignoredWarning: World...
在LINUX平台配置 MSYQL 支持大页内存
操作系统: [root@oradb ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.4 (Santiago)数据库:mysql> select version();+-----------+| version() |+-----------+| 5.6.27 |+-----------+1 row in set (0.00 sec)在这个测试中我们设置400MB的大页内存给 MYSQL使用...
【MySQL】MySQL5.6新特性之Multi-Range Read
Multi-Range-Read优化的好处,简称MRR,目的是减少磁盘的随机访问,把随机访问转化为比较顺序的访问,对于IO-bound类型的SQL有很大的性能提升。Multi-Range-Read优化适用于range/ref/eq_ref类型的查询。
MYSQL慢查询日志存储在表中时查询出 TOP SQL的脚本
按执行时间使用倒序的方式排序找出 TOP 10 的慢查询SQLt_slow.sqluse mysql;select * from (select * from slow_log where start_time >= '2016-08-01 00:00:01' order by query_time desc) alimit 10;mysql -u root -p -e "source t_slow.sql" > t_slow.txt按锁定时间使用倒序的方式排序找出 TOP 10...
每隔30秒循环收集MYSQL备库状态信息的SHELL脚本
slave_status.shx=0while [ $x -lt 50 ]do mysql -u root -proot_tcl -e "show slave status \G" >> slave_status.txt x=`expr $x + 1` echo '#########################################################################' >> sla...