摘要:
同事在Toad里面执行SQL语句时,突然无线网络中断了,让我检查一下具体情况,如下所示(有些信息,用xxx替换,因为是在处理那些历史归档数据,使用的一个特殊用户,所以可以用下面SQL找到对应的会话信息): SQL> SELECT B.USERNAME , 2 B.SID , 3 B.SERIAL# , 4 ... 阅读全文
随笔分类 - 数据库技术(Oracle)
ORA-32004: obsolete and/or deprecated parameter(s) specified
2016-05-03 12:07 by 潇湘隐者, 2855 阅读, 收藏, 编辑
摘要:
如果在启动数据库时遇到ORA-32004: obsolete and/or deprecated parameter(s) specified 错误,这个是因为数据库里面设置了过时或不推荐使用的参数,如下描述所示: SQL> ho oerr ora 3200432004, 00000, "obsolete and/or deprecated parameter(s) specified"// *C... 阅读全文
数据泵如何生成导出文件的DDL脚本
2016-05-03 11:09 by 潇湘隐者, 2530 阅读, 收藏, 编辑
摘要:
在使用exp/imp时,生成对应dumpfile文件的DDL脚本非常容易,在使用命令imp时,添加参数show, show=y表示展示imp导入的时候,输出相关DDL语句(不包括insert语句),而不会真正的在数据库中执行.其实使用数据泵(expdp/impdp)也能生成对应导出dumpfile的DDL语句,参数为sqlfile。如果添加了参数sqlfile就会生成对应dumpfile的... 阅读全文
ORA-01501: CREATE DATABASE failed
2016-04-30 17:41 by 潇湘隐者, 9841 阅读, 收藏, 编辑
摘要:
使用dbca建库时遇到ORA-01501: CREATE DATABASE failed这个错误,检查告警日志,发现有下面错误信息: SMON: enabling tx recoveryFri Apr 29 14:06:25 HKT 2016replication_dependency_tracking turned off (no async multimaster replicati... 阅读全文
ORACLE手工删除数据库
2016-04-29 22:31 by 潇湘隐者, 12522 阅读, 收藏, 编辑
摘要:
很多人习惯用ORACLE的DBCA工具创建、删除数据库,这里总结一下手工删除数据库实验的步骤,文中大量参考了乐沙弥的手动删除ORACLE数据库这篇博客的内容,当然还有Oracle官方相关文档。此处实验环境为Oracle Linux Server release 5.7,数据库版本为10.2.0.5.0 Step 1: .获得控制文件、数据文件,日志文件等相关信息 获取这些信息,一方面是为了... 阅读全文
ORACLE 10升级到10.2.0.5 Patch Set遇到的内核参数检测失败问题
2016-04-07 15:33 by 潇湘隐者, 1458 阅读, 收藏, 编辑
摘要:
在测试ORACLE 10.2.0.4升级到10.2.0.5 Patch Set的过程中,遇到一个内核参数检查失败的问题,具体错误信息如下所示 实验环境: 操作系统:Oracle Linux Server release 5.7 内存:4G 数据库版本:10.2.0.4.0 Checking operating system requirements ...... 阅读全文
v$session中server为none与shared值解析
2016-03-24 15:38 by 潇湘隐者, 1281 阅读, 收藏, 编辑
摘要:
查询V$SESSION,你会看到SERVER可能会有DEDICATED| SHARED| PSEUDO| NONE 四种值,如果SERVER字段的值除了DEDICATED,还有NONE,则说明当前实例启动了共享服务器,并且SERVER为NONE的会话表示其正使用共享服务器连接模式,同时,如果只显示有DEDICATED,则不能说明服务器就一定工作在专用服务器下面,此时也有可能启动了共享模式。只是目前... 阅读全文
ORA-00988: missing or invalid password(s)
2016-03-17 22:22 by 潇湘隐者, 21082 阅读, 收藏, 编辑
摘要:
创建账号或修改账号密码时有可能会遇到ORA-00988: missing or invalid password(s),那么什么情况下会遇到这种错误呢? 一般是因为密码的设置不符合命名规范: 1:密码是关键字,但是没有用双引号包裹起来。 2:密码以数字开头,但是没有用双引号包裹起来 3:密码包含特殊字符,并且没有用双引号包裹起来。 官方文档关于passwor的介绍如下: The BY pass... 阅读全文
ORACLE 查看有多个执行计划的SQL语句
2016-03-17 16:48 by 潇湘隐者, 5582 阅读, 收藏, 编辑
摘要:
在SQL优化过程,有时候需要查看哪些SQL具有多个执行计划(Multiple Executions Plans for the same SQL statement),因为同一个SQL有多个执行计划一般意味着代码有问题或某些其它原因,例如,SQL语句使用绑定变量,但是绑定变量的类型或长度可能不一致会导致同一SQL出现不同执行计划。 --查看数据库里面有多个执行计划的SQL语句的SQL_ID SE... 阅读全文
ORACLE绑定变量隐式转换导致性能问题
2016-03-15 12:10 by 潇湘隐者, 2562 阅读, 收藏, 编辑
摘要:
年后一次系统升级后,监控数据库的工具DPA发现数据库的Total Wait时间突然飙增,如下截图所示,数据库的总体等待时间对比升级前飙增了非常多 另外就是发现出现了较多的等待事件,主要有latch: cache buffers chains、 latch: shared pool 、db file scattered read。根据这边的监控发现TOP SQL里面从升级前的0次变为了一天... 阅读全文
如何分析解读systemstat dump产生的trc文件
2016-03-14 15:59 by 潇湘隐者, 3641 阅读, 收藏, 编辑
摘要:
ORACLE数据库的systemstat dump生成trace文件虽然比较简单,但是怎么从trace文件中浩如烟海的信息中提炼有用信息,并作出分析诊断是一件技术活,下面收集、整理如何分析解读systemstat dump产生的trace文件。 如果要人工去解读systemstat dump生成的trace文件,真是一件体力活,因为这些trace文件动不动就几百M甚至更大,它产生的... 阅读全文
SQL Tune Report–sqltrpt.sql
2016-03-09 22:34 by 潇湘隐者, 4494 阅读, 收藏, 编辑
摘要:
ORACLE 10g提供了一个脚本sqltrpt.sql用来查询最耗费资源的SQL语句,其输出的结果分为两部分: 15 Most expensive SQL in the cursor cache 15 Most expensive SQL in the workload repository 另外可以根据输入的SQL_ID,生成对应执行计划和调优建议,是一个不错的调优优化脚本。其... 阅读全文
EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS的删除创建
2016-03-06 09:57 by 潇湘隐者, 4051 阅读, 收藏, 编辑
摘要:
在最近的一次优化过程中发现了ORACLE 10g中一个作业EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS执行相当频繁,其实以前也看到过,只是没有做过多的了解和关注。这个任务在某些版本或某些情况会引起一些性能问题。其实EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS这个作业是为Database Control收集相关数据的... 阅读全文
Oracle systemstate dump介绍
2016-03-02 23:16 by 潇湘隐者, 6594 阅读, 收藏, 编辑
摘要:
当数据库出现严重的性能问题或者hang起的时候,那么我们非常需要通过systemstate dump来知道进程在做什么,在等待什么,谁是资源的持有者,谁阻塞了别人。在出现上述问题时,及时收集systemstate dump非常有助于问题原因的分析。一般Oracle Support工程是也是需要你提供systemstate dump生成的trace文件做分析,关于systemstate du... 阅读全文
如何删除或重置spfile中的参数
2016-02-28 23:27 by 潇湘隐者, 3612 阅读, 收藏, 编辑
摘要:
在ORACLE中,修改spfile中的参数一般非常容易,那么如何删除spfile中的参数呢? 下面我们用一个案例来介绍一下,如何删除spfile中的参数,一种方法就是创建对应的pfile,删除对应的参数后,然后用当前的pfile反向生成对应的spfile,还有一种方法就是使用命令来删除对应的参数。在删除参数之前,最好先备份一下对应的spfile文件。 假如我们在spfile参数中添加了参数... 阅读全文
INBOUND_CONNECT_TIMEOUT与SQLNET.INBOUND_CONNECT_TIMEOUT小结
2016-02-28 12:10 by 潇湘隐者, 13709 阅读, 收藏, 编辑
摘要:
关于sqlnet.ora的参数SQLNET.INBOUND_CONNECT_TIMEOUT,它表示等待用户认证超时的时间,单位是秒,缺省值是60秒,如果用户认证超时了,服务器日志alert.log显示出错信息"WARNING: inbound connection timed out (ORA-3136)",sqlnet.log里面出现TNS-12535: TNS:operation tim... 阅读全文
查看ORACLE的实际执行计划
2016-02-27 23:09 by 潇湘隐者, 24388 阅读, 收藏, 编辑
摘要:
ORACLE的执行计划分为预估执行计划和实际执行计划。其中,你用Toad、PL/SQL Developer、SQL Developer、EXPLAIN PLAN FOR或者SET ATUOTRACE TRACEONLY等获取的执行计划都是预估的执行计划。有时候预估执行计划和实际执行计划有很大的差别,所以有时候,调优的时候需要对比实际执行计划和预估的执行计划,不能被预估的执行计划给欺骗了。那么... 阅读全文
ksvcreate: Process(m000) creation failed
2016-01-22 14:59 by 潇湘隐者, 2706 阅读, 收藏, 编辑
摘要:
一测试服务器数据库(Oracle Database 10g Release 10.2.0.5.0 - 64bit Production)突然访问不了,检查发现数据库处于挂起模式(hang mode),检查告警日志,发现有“ksvcreate: Process(m000) creation failed”,”kkjcre1p: unable to spawn jobq slave process“之... 阅读全文
ORACLE TO_CHAR函数格式化数字的出现空格的原因
2015-12-28 23:45 by 潇湘隐者, 12639 阅读, 收藏, 编辑
摘要:
在这篇博客SQL挑战——如何高效生成编码里面我由于需要将数字格式化为字符,像12需要格式化0012这样的字符,所以使用了TO_CHAR(数字,'0000')这样的写法,后面0000表示缺省补零,测试过程中,我发发现TO_CHAR(number,'0000') 会多一个空格。有点纳闷为什么了会多一个空格。 后面经过查看官方文档、同事讨论以及网友提供的资料,终于把这个问题给弄清楚了。下面梳... 阅读全文
SQL挑战——如何高效生成编码
2015-12-25 23:49 by 潇湘隐者, 1891 阅读, 收藏, 编辑
摘要:
有这样一个需求:需要根据输入的编码(这个编码值来自于数据库的一个表)生成下一个编码,编码规则如下所示(我们暂且不关心这个逻辑是否合理,只关心如何实现): 1: 最小值为A0000, 最大值为ZZZZZ 2:编码A0000的下一个值为A0001, 编码A9999的下一个值为B0000, 编码AB999的下一个值为AC000,编码AC999的下一个值为AD000,依此规则内推。 3:不用... 阅读全文