摘要:
在分析ORACLE的AWR报告时,发现SQL ordered by Executions(记录了按照SQL的执行次数排序的TOP SQL。该排序可以看出监控范围内的SQL执行次数)下有一个SQL语句执行非常频繁,一个小时执行了上万次: update seq$ set increment$=:2, minvalue=:3, maxvalue=:4, cycle#=:5, order$=:6, c... 阅读全文
随笔档案-2017年08月
批量修改所有服务器的dbmail配置
2017-08-29 11:33 by 潇湘隐者, 650 阅读, 收藏, 编辑
摘要:
最近遇到这样一个案例,需要修改所有SQL Server的Database Mail的SMTP,原来的SMTP为10.xxx.xxx.xxx, 现在需要修改为192.168.xxx.xxx, 另外需要规范邮件地址,以前这类邮件ServerName@yoursqldba.com的后缀需要修改为ServerName@xxxx.com(信息做了脱敏处理)。 如果使用SSMS客户端的UI界面去修改的话,... 阅读全文
MySQL 修改账号的IP限制条件
2017-08-25 16:50 by 潇湘隐者, 19085 阅读, 收藏, 编辑
摘要:
今天遇到一个需求:修改MySQL用户的权限,需要限制特定IP地址才能访问,第一次遇到这类需求,结果在测试过程,使用更新系统权限报发现出现了一些问题, 具体演示如下. 下面测试环境为MySQL 5.6.20. 如有其它版本与下面测试结果有出入,请以实际环境为准。 我们先创建一个测试用户LimitIP,只允许192.168段的IP地址访问,具体权限如下所示: mysql> GRANT S... 阅读全文
MySQL 查看用户授予的权限
2017-08-24 16:40 by 潇湘隐者, 47338 阅读, 收藏, 编辑
摘要:
在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限。具体分类如下: 全局层级 全局权限适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限。 数据库层级 数据库权限适用... 阅读全文
MySQL 授予普通用户PROCESS权限
2017-08-24 10:37 by 潇湘隐者, 19437 阅读, 收藏, 编辑
摘要:
在MySQL中如何给普通用户授予查看所有用户线程/连接的权限,当然,默认情况下show processlist是可以查看当前用户的线程/连接的。 mysql> grant process on MyDB.* to test; ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES 第一次授予这样... 阅读全文
Multiple Server Query Execution报The result set could not be merged..
2017-08-23 16:48 by 潇湘隐者, 684 阅读, 收藏, 编辑
摘要:
在SQL Server中使用Multiple Server Query Execution这个功能做数据库维护或脚本发布时非常方便,昨天由于磁盘空间原因,删除清理了大量的软件和组件,结果导致SSMS客户端出了问题,重装过后,使用Multiple Server Query Execution时,出现了 阅读全文
ORACLE Index Lookup索引访问路径总结
2017-08-23 10:11 by 潇湘隐者, 976 阅读, 收藏, 编辑
摘要:
在ORACLE中,索引访问/查找(Index Lookup)路径有五种方式,分别为INDEX UNIQUE SCAN、INDEX RANGE SCAN、INDEX FULL SCAN、INDEX FAST FULL SCAN 、INDEX SKIP SCAN。下面通过一些案例介绍、总结一下这五种索引访问路径。本文是总结这方面的知识点,所以文中一些地方参考、引用了参考资料中的部分内容。详细、具体... 阅读全文
ORACLE实际执行计划与预估执行计划不一致性能优化案例
2017-08-19 16:16 by 潇湘隐者, 4176 阅读, 收藏, 编辑
摘要:
在一台ORACLE服务器上做巡检时,使用下面SQL找出DISK_READ最高的TOP SQL分析时,分析过程中,有一条SQL语句的一些反常现象,让人觉得很奇怪: SELECT SQL_ID, SQL_TEXT, DISK_READS, BUFFER_GETS, PARSING_SCHEMA_NAME, EXECUTION... 阅读全文
MySQL线程处于Waiting for table flush的分析
2017-08-18 12:19 by 潇湘隐者, 7738 阅读, 收藏, 编辑
摘要:
最近遇到一个案例,很多查询被阻塞没有返回结果,使用show processlist查看,发现不少MySQL线程处于Waiting for table flush状态,查询语句一直被阻塞,只能通过Kill进程来解决。那么我们先来看看Waiting for table flush的官方解释:https://dev.mysql.com/doc/refman/5.6/en/general-thread... 阅读全文
ORACLE等待事件:SQL*Net message from client & SQL*Net message to client
2017-08-15 08:26 by 潇湘隐者, 19322 阅读, 收藏, 编辑
摘要:
在ORACLE当中有两个很常见的等待事件“SQL*Net message from client”与“SQL*Net message to client”,两者有点区别,下面整理这方面的资料如下: SQL*Net message from client 表示服务端等待着Cilent发来请求让它处理,这时就会产生SQL*Net message from client等待事件。 ... 阅读全文
PL/SQL重新编译包无反应案例2
2017-08-10 08:03 by 潇湘隐者, 605 阅读, 收藏, 编辑
摘要:
在这篇"PL/SQL重新编译包无反应"里面介绍了编译包无反应的情况,今天又遇到一起案例, 在测试环境中,一个包的STATUS为INVALID,重新编译时,一直处于编译状态,检查发现下面两条因素都不存在: 1:当包正在被调用执行时,编译该包会导致无响应情况。 2:包中的对象或依赖对象被其它session所拥有。 后面检查发现包中调用了一个LINKED SERVER,由于迁移测... 阅读全文
ORA-1652: unable to extend temp segment by 128 in tablespace xxx Troubleshootin
2017-08-08 22:54 by 潇湘隐者, 2651 阅读, 收藏, 编辑
摘要:
当收到告警信息ORA-01652: unable to extend temp segment by 128 in tablespace xxxx 时,如何Troubleshooting ORA-1652这样的问题呢? 当然一般xxx是临时表空间,也有可能是用户表空间。 我们先来模拟一下这个情况,在两个会话窗口执行下面SQL语句,这个视图比较特殊(因为比较懒,不想去构造一个大量消耗临时段的SQ... 阅读全文
SQL Server中授予用户查看对象定义的权限
2017-08-07 14:28 by 潇湘隐者, 2131 阅读, 收藏, 编辑
摘要:
SQL Server中授予用户查看对象定义的权限 在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程、函数、视图、表)的定义权限存。如果是部分存储过程、函数、视图授予查看定义的权限,那么就像下面脚本所示,比较繁琐: GRANT VIEW DEFINITION ON YOUR_PROCEDURE TO USERNAME; GRANT VIE... 阅读全文
The process could not read file xxx due to OS error 53
2017-08-02 08:53 by 潇湘隐者, 961 阅读, 收藏, 编辑
摘要:
在不同地域的两个SQL Server服务器上配置了复制(Replication)用于同步数据(生产环境配置有Replication,测试环境也配有Replication),两地通过专线连接起来,这些复制(Replication)已经稳定运行了一两年了, 但是前阵子,测试环境的SQL Server的Replication中突然遇到下面错误: Error messages: The... 阅读全文
SQL Server中如何定位Row Lock锁定哪一行数据
2017-08-01 15:36 by 潇湘隐者, 1907 阅读, 收藏, 编辑
摘要:
在SQL Server中有时候会使用提示(Hint)强制SQL使用行锁(Row Lock),前两天有个同事咨询了一个问题,如何定位Row Lock具体锁定了哪一行。其实这个问题只适合研究一下,实际意义并不大,因为找到、定位被锁定的行的代价开销较大,而意义却不怎么大,而且使用场景也很少。那么下面我们来探讨、研究一下这个问题吧: 在会话窗口(会话ID=65)下执行下面SQL语句,模拟SQL S... 阅读全文