摘要:今天遇到一个很奇怪的情况,发现一个会话异常,这个会话只是在执行一个简单的存储过程,里面使用了链接服务器(Linked Server)查询另外一台服务器数据(存储过程里面没有任何显性事务、UPDATE、DELETE操作,只有几个简单的SELECT查询,其中有两个查询使用了链接服务器Linked Server,由于生产环境,不好贴出SQL语句),在DPA监控工具里面,发现该会话引起了非常长的OLEDB... 阅读全文
VmWare平台Windows Server 2012 无响应宕机
2016-10-20 17:10 by 潇湘隐者, 3641 阅读, 0 推荐, 收藏,
摘要:我们生产服务器都部署在VMware ESXi 5.5平台上,最近大半年的时间,偶尔就会出现操作系统为Windows Servre 2012的服务器出现没有任何响应(unresponsive)的情况,出现问题的时候,服务器有下面一些现象: 1: 应用程序无法访问SQL Server数据库,使用Microsoft SQL Server Management Sutdio去测试连接数据库,也会返回... 阅读全文
SQL Challenge ——快速找到1-100之间缺失的数
2016-10-18 17:02 by 潇湘隐者, 5605 阅读, 0 推荐, 收藏,
摘要:有个经典的题目:1-100之间的数字(不重复)存放在表里,共95行一列,但是里面缺了5个数字,怎么用SQL最快找出那五个数字。 我们先来看看Oracle数据库如何实现,如下所示,我们先准备测试环境和数据。 SQL> create table t( id number(10)); Table created. SQL> begin 2 for i in 1 .. 100 3 loo... 阅读全文
Cannot execute as the database principal because the principal "guest" does not exist, this type of principal cannot be impersonated, or you do not have permission.
2016-10-17 11:51 by 潇湘隐者, 2101 阅读, 0 推荐, 收藏,
摘要:今天遇到这样一个问题:一个系统的作业需要给系统Support人员开放SQL Agent下作业的查看、执行权限。数据库版本为SQL Server 2014 SP2,给这个系统Support人员的NT账号授予msdb数据库下面权限后: 该系统Support人员反馈在双击查看该作业时报下面错误。于是我测试,验证了一下这个权限是否OK, 我测试的时候使用的是Microsoft SQL ... 阅读全文
ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析
2016-10-08 23:37 by 潇湘隐者, 9222 阅读, 10 推荐, 收藏,
摘要:在ORACLE数据库中有物理读(Physical Reads)、逻辑读(Logical Reads)、一致性读(Consistant Get)、当前模式读(DB Block Gets)等诸多概念,如果不理解或混淆这些概念的话,对你深入理解一些知识无疑是一个障碍,但是这些概念确实挺让让人犯晕的。下面我们总结、学习一下这方面的知识点。捋一捋他们的关系和特点,希望对你有所帮助。 物理读(... 阅读全文
ORACLE的SQL JOIN方式小结
2016-10-07 12:13 by 潇湘隐者, 54408 阅读, 27 推荐, 收藏,
摘要:在ORACLE数据库中,表与表之间的SQL JOIN方式有多种(不仅表与表,还可以表与视图、物化视图等联结),官方的解释如下所示 A join is a query that combines rows from two or more tables, views, or materialized views. Oracle Database performs a join whenever... 阅读全文
关于数据库学习进阶的一点体悟
2016-09-29 23:14 by 潇湘隐者, 2627 阅读, 6 推荐, 收藏,
摘要:收到李华荣邀请,写一篇关于数据库方面的学习经验和感悟心得的文章,最初有点诚惶诚恐,因为自己技术上也只能算个半吊子,无奈他不嫌弃,那就硬着头皮分享一下自己数据库方面的一些学习经验以及心得体会吧,希望对刚入门的同行有所帮助。 关于学习方法,个人感觉因人而异,有些方法不见得适合所有人。个体不同,学习方式与学习效率也各有不同。找到适合自己的学习方法才是最重要的。所以关于这方面,大家秉承取其精... 阅读全文
IO is frozen on database xxx, No user action is required
2016-09-23 13:57 by 潇湘隐者, 3467 阅读, 0 推荐, 收藏,
摘要:最近遇到一起关于"I/O is frozen on database xxx. No user action is required. However, if I/O is not resumed promptly, you could cancel the backup."的案例。 出现问题的时候,我去执行一个非常简单的SQL语句,执行时间非常长,检查没有阻塞。正常情况下,应该是几秒就OK。后... 阅读全文
ORACLE等待事件:enq: TX - row lock contention
2016-09-19 23:26 by 潇湘隐者, 16802 阅读, 0 推荐, 收藏,
摘要:enq: TX - row lock contention等待事件,这个是数据库里面一个比较常见的等待事件。enq是enqueue的缩写,它是一种保护共享资源的锁定机制,一个排队机制,先进先出(FIFO)。enq: TX - row lock contention等待事件,OACLE将其归类为application级别的等待事件。有些场景是因为应用逻辑设计不合理造成的。下面我们看看enq: TX ... 阅读全文
SQL SERVER中隐式转换的一些细节浅析
2016-09-08 15:32 by 潇湘隐者, 6156 阅读, 7 推荐, 收藏,
摘要:其实这是一篇没有技术含量的文章,精通SQL优化的请绕道。这个缘起于在优化一个SQL过程中,同事问了我一个问题,为什么SQL中存在隐式转换,但是执行计划没有变? 我思索了一下,觉得这个问题也有点意思,说不定有些对隐式转换了解得不深入的同学都有此疑问,那么下面结合上下文场景做一个细节方面的解答。 我们一个系统中使用了ORMLite框架,粗心的开发人员弄出了不少下面这样的SQL语句,都存在隐式转换问题,... 阅读全文
ORACLE等待事件: log file parallel write
2016-09-07 15:09 by 潇湘隐者, 5547 阅读, 0 推荐, 收藏,
摘要:log file parallel write概念介绍 log file parallel write 事件是LGWR进程专属的等待事件,发生在LGWR将日志缓冲区(log_buffer)中的重做日志信息写入联机重做日志文件组的成员文件,LGWR在该事件上等待该写入过程的完成。该事件的等待表示重做日志所处的磁盘设备缓慢或存在争用。下面看看官方一些资料是如何解释log file parallel w... 阅读全文
ORACLE调整SGA_TARGET值耗费时间长案例
2016-09-04 23:59 by 潇湘隐者, 6060 阅读, 1 推荐, 收藏,
摘要:在一数据库版本为(标准版)Oracle Database 10g Release 10.2.0.4.0 - 64bit Production 的服务器上调整 sga_target时,遇到命令执行了非常久都没有执行完成的异常情况,觉得非常诧异、不解,因为一般调整sga_targt命令非常快速,检查了告警日志,并没有任何异常错误,等了好几分钟都没有执行完成,于是执行了CTRL+C命令结束了SQL命令,... 阅读全文
为什么忘记commit也会造成select查询的性能问题
2016-09-02 23:53 by 潇湘隐者, 4524 阅读, 3 推荐, 收藏,
摘要:今天遇到一个很有意思的问题,一个开发人员反馈在测试服务器ORACLE数据库执行的一条简单SQL语句非常缓慢,他写的一个SQL没有返回任何数据,但是耗费了几分钟的时间。让我检查分析一下原因,分析解决过后,发现事情的真相有点让人哭笑不得,但是也是非常有意思的。我们先简单构造一下类似的案例,当然只是简单模拟。 假设一个同事A,创建了一个表并初始化了数据(实际环境数据量较大,有1G多的数据),但是他忘... 阅读全文
ORACLE参数max_shared_servers空值与零的区别
2016-08-31 22:16 by 潇湘隐者, 3286 阅读, 0 推荐, 收藏,
摘要:ORACLE数据库中的参数max_shared_servers,这是一个DBA很熟悉的参数,但是这个参数max_shared_servers为空值与为0有区别吗?这个细节可能很多人都没有注意过。如下所示: SQL> show parameter max_shared_servers NAME TYPE VALUE... 阅读全文
VIEW SERVER STATE permission was denied on object 'server', database 'master'
2016-08-30 23:01 by 潇湘隐者, 2687 阅读, 2 推荐, 收藏,
摘要:今天一同事反馈使用SQL Server 2012 Management Studio连接SQL Server 2014后,选择数据库中某个表,然后单击右键时,就会遇到下面错误: 这个错误初看以为是权限问题,后面验证、检查、查找资料过后,发现这个是一个bug来的,需要升级或应用SQL Server Management Studio工具的补丁来解决这个问题。下面链接有描述这个问题的相关... 阅读全文
为什么数据库有时候不能定位阻塞(Blocker)源头的SQL语句
2016-08-30 11:48 by 潇湘隐者, 4493 阅读, 3 推荐, 收藏,
摘要:在SQL Server数据库或OACLE数据库当中,通常一个会话持有某个资源的锁,而另一个会话在请求这个资源,就会出现阻塞(blocking)。这是DBA经常会遇到的情况。当出现SQL语句的阻塞时,很多人想查看阻塞的源头(哪个SQL语句阻塞了哪个SQL),这样方便直观、简洁明了的定位问题。但是很多时候,很多场景,我们通过SQL语句并不能或者说不容易定位到阻塞者(Blocker)的SQL语句... 阅读全文
Linux如何搜索查找文件里面内容
2016-08-24 12:14 by 潇湘隐者, 337452 阅读, 26 推荐, 收藏,
摘要:在Linux系统当中,如何搜、索查找文件里面的内容呢? 这个应该是系统维护、管理当中遇到最常见的需求。那么下面介绍,总结一下如何搜索、查找文件当中的内容。 搜索、查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容 1:搜索某个文件里面是否包含字符串,使用grep "search content" filename1, 例如 $ grep... 阅读全文
ORACLE使用GV_$TEMP_SPACE_HEADER统计临时表空使用情况不准确的问题
2016-08-22 22:24 by 潇湘隐者, 4530 阅读, 4 推荐, 收藏,
摘要:以前写了一篇ORACLE临时表空间总结的文章, 里面介绍了几个查看临时表空间使用情况的脚本,其中一个脚本如下所示: SELECT TU.TABLESPACE_NAME AS "TABLESPACE_NAME", TT.TOTAL - TU.USED ... 阅读全文
ORA-01336: specified dictionary file cannot be opened
2016-08-21 10:56 by 潇湘隐者, 2192 阅读, 0 推荐, 收藏,
摘要:这篇介绍使用Logminer时遇到ORA-01336: specified dictionary file cannot be opened错误的各种场景 1:dictionary_location参数的路径最后多了一个/符号。 SQL> show parameter utl_file_dir; NAME TYPE ... 阅读全文
杂想闲思录
2016-08-20 19:49 by 潇湘隐者, 924 阅读, 3 推荐, 收藏,
摘要:微信上看了梁博“北京十年”这篇文章,内心不能平静,这篇文章确实带给我很多感悟: 1:做挨踢的,一定要赚足够的钱,有一定的经济能力才能不被现实生活所左右,才能不缚手缚脚,才能给家人、自己多一些生活保障。做自己想做的事情! 世事难料,如果那天真的挨踢了,也能过得不错! 2:生活中少一点苦闷、忧愁,有这个 阅读全文
ORACLE AWR结合ASH诊断分析enq: TX - row lock contention
2016-08-20 11:48 by 潇湘隐者, 6479 阅读, 0 推荐, 收藏,
摘要:公司用户反馈一系统在14:00~15:00(2016-08-16)这个时间段反应比较慢,于是生成了这个时间段的AWR报告, 如上所示,通过Elapsed Time和DB Time对比分析,可以看出在这段时间内服务器并不繁忙。分析Top 5 Timed Events,我们可以看到前五的等待事件 可以看到等待事件enq: TX - row lock contention占了所有等待... 阅读全文
get_locked_objects_rpt.sql
2016-08-19 17:36 by 潇湘隐者, 1284 阅读, 0 推荐, 收藏,
摘要:在metalink上看到一个脚本(get_locked_objects_rpt.sql),非常不错,如下所示 /*----------------------------------------------------------------------------+ | MODULE: get_locked_objects_rpt.sql | | DESCRIPTION: | | Script... 阅读全文
SQL Server 使用OPENROWSET访问ORACLE遇到的各种坑总结
2016-08-18 17:40 by 潇湘隐者, 6048 阅读, 0 推荐, 收藏,
摘要:在SQL Server中使用OPENROWSET访问ORACLE数据库时,你可能会遇到各种坑,下面一一梳理一下你会遇到的一些坑。 1:数据库没有开启"Ad Hoc Distributed Queries"选项,那么你就会遇到下面坑。 SELECT TOP 10 * FROM OPENROWSET('OraOLEDB.Oracle', 'ESCM_134';'test';'test', '... 阅读全文
Linux 日志报错 xxx blocked for more than 120 seconds
2016-08-18 12:23 by 潇湘隐者, 17748 阅读, 1 推荐, 收藏,
摘要:监控作业发现一台服务器(Red Hat Enterprise Linux Server release 5.7)从凌晨1:32开始,有一小段时间无法响应,数据库也连接不上,后面又正常了。早上检查了监听日志,并没有发现错误信息。但是检查告警日志,发现有下面错误信息: Thread 1 advanced to log sequence 19749 (LGWR switch) Cu... 阅读全文
Remote table-valued function calls are not allowed
2016-08-18 11:29 by 潇湘隐者, 1660 阅读, 0 推荐, 收藏,
摘要:在SQL Server中,在链接服务器中调用表值函数(table-valued function)时,会遇到下面错误: SELECT * FROM LNK_TEST.TEST.DBO.TEST(12) 消息 4122,级别 16,状态 1,第 1 行 Remote table-valued function calls are not allowed. 以前几乎没有在链接服务器(Lin... 阅读全文
DBCC SHRINKDATABASE xxxx was skipped because the file does not have enough free
2016-08-16 17:57 by 潇湘隐者, 4862 阅读, 0 推荐, 收藏,
摘要:假设你创建一个数据库时,指定其初始化大小(SIZE )非常大。例如,如下测试案例所示 USE [master]GO CREATE DATABASE [TEST] ON PRIMARY ( NAME = N'TEST_Data', FILENAME = N'D:\SQL_DATA\TEST_Data.mdf' , SIZE = 11527027KB , MAXSIZE = UNLIMITE... 阅读全文
RMAN命令LIST操作总结
2016-08-15 15:16 by 潇湘隐者, 20403 阅读, 2 推荐, 收藏,
摘要:在使用RMAN备份、还原的过程中,我们经常需要查看备份的一些详细信息,例如,RMAN提供了LIST命令。关于LIST命令的详细信息 可以参考Oracle Database Backup and Recovery Reference文档。 列出备份信息 列出详细备份信息:备份集(Backup Sets),镜像备份(image copies),proxy copies的信息。 ... 阅读全文
ORA-02292: integrity constraint (xxxx) violated - child record found
2016-08-12 16:58 by 潇湘隐者, 14691 阅读, 0 推荐, 收藏,
摘要:在更新表的主键字段或DELETE数据时,如果遇到ORA-02292: integrity constraint (xxxx) violated - child record found 这个是因为主外键关系,下面借助一个小列子来描述一下这个错误: SQL> create table student 2 ( 3 id number, 4 name nvarchar2(12),... 阅读全文
Oracle 11g 单实例安装文档
2016-08-12 15:52 by 潇湘隐者, 3823 阅读, 1 推荐, 收藏,
摘要:这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整理在此。仅供参考! 1:下载对应平台的ORACLE 11g安装介质 安装ORACLE,首先要获取安装介质,大部分情况手头都有相关版本的安装介质。如果你手头没有安装介质,那么可以从下面链接获取... 阅读全文
Linux启动报错missing operating system
2016-08-12 10:36 by 潇湘隐者, 9659 阅读, 1 推荐, 收藏,
摘要:用UltraISO制作了一个Red Hat Enterprise Linux Server release 5.7系统的U盘启动盘,然后在一台PC上安装,由于安装过程中在干别的事情,有些选项没有细看。安装完成后,启动系统时报错:missing operating system。 插上U盘,在BIOS里面选择从U盘启动就能正常启动系统,搜索了一些资料后,发现在安装LINUX操作系... 阅读全文