代码改变世界

随笔分类 - 数据库技术(Oracle)

buffer cache size太小引起磁盘IO繁忙案例

2019-09-11 22:40 by 潇湘隐者, 3 阅读, 收藏, 编辑
该文被密码保护。

log file sync等待超高案例浅析

2019-09-08 00:27 by 潇湘隐者, 145 阅读, 收藏, 编辑
摘要:监控工具DPA发现海外一台Oracle数据库服务器DB Commit Time指标告警,超过红色告警线(40毫秒左右,黄色告警是10毫秒,红色告警线是20毫秒),如下截图所示,生成了对应的时段的AWR报告,发现Top 5 Timed Events里面,log file sync等待事件的平均等待时间为37毫秒,log file parallel write等待事件的平均等待时间为40毫秒 ... 阅读全文

[转载]——Automatic Tuning of Undo_retention Causes Space Problems (文档 ID 420525.1)

2019-08-31 11:10 by 潇湘隐者, 60 阅读, 收藏, 编辑
摘要:Automatic Tuning of Undo_retention Causes Space Problems (文档 ID 420525.1) 转到底部 In this Document Symptoms Cause Solution References APPLIES TO: Ora... 阅读全文

[转载]——Full UNDO Tablespace In 10gR2 and above (文档 ID 413732.1)

2019-08-31 10:56 by 潇湘隐者, 65 阅读, 收藏, 编辑
摘要:最近遇到了这个案例,官方文档已有详尽的分析、介绍,特转载在此,方便以后查看! Full UNDO Tablespace In 10gR2 and above (文档 ID 413732.1) 转到底部 In this Document Symptoms Changes Cause Solution ... 阅读全文

DataPump遭遇ORA-06512&ORA-39080&ORA-01403错误案例

2019-08-19 15:55 by 潇湘隐者, 138 阅读, 收藏, 编辑
摘要:最近使用数据泵(DataPump)比较多,遇到了奇奇怪怪的问题,似乎Apply了补丁PSU 10.2.0.5.180717后,DataPump的问题就格外多。如下所示: expdp system/xxx DIRECTORY=DUMPDIR DUMPFILE=xxxx.dmp TABLES=xxxx.xxxx LOGFILE=expdp.log Export: Release 10.2.0... 阅读全文

Thread <number> cannot allocate new log, sequence <number>浅析

2019-08-15 15:02 by 潇湘隐者, 136 阅读, 收藏, 编辑
摘要:有时候,你会在ORACLE数据库的告警日志中发现“Thread cannot allocate new log, sequence Checkpoint not complete”这类告警。具体案例如下所示: Thread 1 cannot allocate new log, sequence 279334 Checkpoint not complete Current log# 4... 阅读全文

Error 942 occured during Initialization of Bufq KUPC$S_1_20181023155636

2019-08-11 15:27 by 潇湘隐者, 89 阅读, 收藏, 编辑
摘要:一台ORACLE实例(Oracle Database 10g Release 10.2.0.5.0)启动时,报“Error 942 occured during Initialization of Bufq KUPC$S_1_20181023155636”错误,具体情况如下所示,内容信息来自告警日志 SMON: enabling cache recovery Thu Aug 08 18:5... 阅读全文

EXPDP导数报ORA-00942案例

2019-07-27 11:51 by 潇湘隐者, 194 阅读, 收藏, 编辑
摘要:使用数据泵(expdp)导数时遇到了ORA-31626 &amp; ORA-00942 错误,数据库版本为Oracle Database 10g Release 10.2.0.5.0,具体错误如下所示: $ expdp system/xxx tables=xxx.xxx directory=DUMPDIR dumpfile=xxxx.dmp logfile=xxx.log; Export: Rele... 阅读全文

ORACLE等待事件:read by other session

2019-06-26 16:54 by 潇湘隐者, 226 阅读, 收藏, 编辑
摘要:read by other session简介 官方关于read by other session的介绍如下: When information is requested from the database, Oracle will first read the data from disk into the database buffer cache. If two or more se... 阅读全文

ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS

2019-06-25 23:17 by 潇湘隐者, 149 阅读, 收藏, 编辑
摘要:使用orachk工具检查数据库实例的时候,发现报告里面有类似下面这样一些错误(最近有给Oracle 10g应用补丁PSU 10.2.0.5.180717,不清楚是这个产生的还是其他原因导致),使用脚本检查,发现有很多INVALID对象(具体参考[转载]—Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID ... 阅读全文

Oracle 10g&11g安装卸载Oracle Label Security

2019-06-25 22:13 by 潇湘隐者, 213 阅读, 收藏, 编辑
摘要:Oracle Label Securit简介 Oracle Label Security是内置于数据库引擎中的过程与约束条件集,该数据引擎实施对在单个表或整个模式上的&quot;行&quot;级访问控制。要利用Oracle Label Security,需要创建一个或多个安全策略,其中每一个安全策略都包含一组标签。你可以用这些标签来标明哪些用户能够访问什么类型数据。在创建了一个策略之后,将该策略应用于需要保护的表... 阅读全文

[转载]—Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1)

2019-06-25 20:46 by 潇湘隐者, 103 阅读, 收藏, 编辑
摘要:Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1) APPLIES TO: Oracle Database - Enterprise Edition - Version 9.2.0.5 to 12.1.0.2 [Release 9.2 to 12... 阅读全文

ORA-02273: this unique/primary key is referenced by some foreign keys

2019-06-12 15:22 by 潇湘隐者, 142 阅读, 收藏, 编辑
摘要:关于ORA-02273错误,以前还真没有仔细留意过。昨天遇到了这个问题,遂顺便总结一番,以后遇到这类问题就可以直接用下面方案解决。如下所示,我们首先准备一下测试环境。 CREATE TABLE TEST.TEST ( OWNER VARCHAR2(30), OBJECT_ID NUMBER, OBJECT_NAME VARCHAR2(3... 阅读全文

ORACLE中能否找到未提交事务的SQL语句

2019-05-27 12:12 by 潇湘隐者, 955 阅读, 收藏, 编辑
摘要:在Oracle数据库中,我们能否找到未提交事务(uncommit transactin)的SQL语句或其他相关信息呢? 关于这个问题,我们先来看看实验测试吧。实践出真知。 首先,我们在会话1(SID=63)中构造一个未提交的事务,如下所: SQL&gt; create table test 2 as 3 select * from dba_objects; Table creat... 阅读全文

Oracle关于TX锁的一个有趣的问题

2019-05-21 15:31 by 潇湘隐者, 382 阅读, 收藏, 编辑
摘要:前阵子有一个网友在群里问了一个关于Oracle数据库的TX锁问题,问题原文如下: 请教一个问题: 两个会话执行不同的delete语句,结果都是删除同一个行。先执行的会话里where条件不加索引走全表扫描,表很大,执行很慢;后执行的用where条件直接用rowid进行delete。 Oracle的什么机制使第二个会话执行后一直是等待第一个会话结束的呢。 那么我们先动手实验一下,来看看这个问题... 阅读全文

Oracle dblink的连接模式的关系测试总结

2019-03-23 11:44 by 潇湘隐者, 335 阅读, 收藏, 编辑
摘要:这篇主要介绍一下database link由于连接数据库的方式不同遇到的一些问题,我们知道连接ORACLE服务器的模式一般有两种方式:专用服务器连接(dedicated server)和共享服务器连接(shared server)。这次遇到的案例服务是dblink跟连接ORACLE方式有关,当然本质原因是什么呢,这也是我这篇文章在探讨的问题。下面通过案例来讲述一下具体情况: 我们先来搭建测试环... 阅读全文

ORA-279 signalled during: alter database recover logfile

2019-03-01 11:47 by 潇湘隐者, 486 阅读, 收藏, 编辑
摘要:在RMAN的RECOVER还原过程中,RMAN界面正常,但是检查、刷新告警日志,发现告警日志里面有ORA-279,如下所示: alter database recover logfile &#39;/u06/archivelog/2019_02_19/o1_mf_1_16228_g6oznpbv_.arc&#39;Thu Feb 21 08:49:48 CST 2019Media Recovery Lo... 阅读全文

ORA-02266错误的批量生成脚本解决方案

2019-02-25 17:09 by 潇湘隐者, 217 阅读, 收藏, 编辑
摘要:ORA-02266: unique/primary keys in table referenced by enabled foreign keys这篇博客是很早之前总结的一篇文章,最近导数时使用TRUNCATE清理主表数据又遇到了这个错误,发现还有其它解决方案: a) 禁用与主表相关的外键约束 b) TRUNCATE TABLE c) 启用那些外键约束。 在实际操作中... 阅读全文

ORA-12520 TroubleShooting

2019-01-10 23:24 by 潇湘隐者, 316 阅读, 收藏, 编辑
摘要:同事反馈他连接一个新搭建的测试数据库时,报“ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序”错误,在解决他这个问题时,顺便分析、总结一下ORA-12520错误。下面重现一下这个场景: Oracle Client段的tnsnames.ora的配置如下: MY_TEST= (DESCRIPTION= (ADDR... 阅读全文

关于ORACLE数据库名以及数据实例名等几个重要概念

2019-01-06 23:22 by 潇湘隐者, 477 阅读, 收藏, 编辑
摘要:在Oracle中有关数据库和数据库实例的几个重要概念,有时候如果理解不是很深或者对其疏忽、混淆了,还真容易搞错或弄不清其概念,下面就数据库实例名、数据库名、数据库域名、数据库服务名、全局数据库名几个概念,我们来梳理一下概念,总结归纳一下这些知识,首先,我们来看看官方文档对这几者的概念介绍: INSTANCE_NAME(数据库实例名) Property Description P... 阅读全文

ORA-04030: out of process memory when trying to allocate 152 bytes (Logminer LCR c,krvtadc)

2019-01-01 21:51 by 潇湘隐者, 765 阅读, 收藏, 编辑
摘要:今天使用LogMiner找回误更新的数据时,查询v$logmnr_contents时,遇到了“ORA-04030: out of process memory when trying to allocate 152 bytes (Logminer LCR c,krvtadc)”错误。查了一下My Oracle Support,发现出现ORA-04030错误的原因,特摘录在此。 如... 阅读全文

ORA-00904: "WMSYS"."WM_CONCAT": invalid identifier

2018-12-27 09:51 by 潇湘隐者, 1650 阅读, 收藏, 编辑
摘要:同事玩Docker,在Docker里面启了一个Oracle 10g Express版本,在测试过程中遇到了ORA-00904: &quot;WMSYS&quot;.&quot;WM_CONCAT&quot;: invalid identifier错误。 SQL&gt; select * from v$version; BANNER--------------------------------------------------... 阅读全文

ORA-00471: DBWR process terminated with error案例

2018-12-21 17:13 by 潇湘隐者, 323 阅读, 收藏, 编辑
摘要:每年年底,系统管理员都要组织一次容灾方案的测试、演练。会在一个与生产环境网络隔离的DR环境中,启动各个“生产环境服务器”,然后让各路人员参与其中测试、演练容灾方案是否可靠。这次演练中,一台Oracle数据库服务器启动的时候遇到了问题。如下所示,启动的时候遇到ORA-03113: end-of-file on communication channel错误。 [oracle@myln... 阅读全文

Oracle database link中查询会开启事务吗?

2018-12-20 10:54 by 潇湘隐者, 1211 阅读, 收藏, 编辑
摘要:关于oracle database link,使用database link相关的查询语句是否会开启事务呢?我们知道,在数据库中一个简单的SELECT查询语句不会产生事务(select for update会产生事务)。如下测试所示: 我们首先准备测试环境,创建了一个database link: LINK_NODEFINE_TEST,然后我们开始测试 CREATE PUBLIC... 阅读全文

ORA-02030: can only select from fixed tables/views

2018-12-19 14:07 by 潇湘隐者, 647 阅读, 收藏, 编辑
摘要:有时候给一些普通用户授予查询系统对象(例如dynamic performance views)权限时会遇到“ORA-02030: can only select from fixed tables/views”,如下所示: SQL&gt; grant select on v$session to test;grant select on v$session to test ... 阅读全文

ORA-12537: Network Session: End of file

2018-12-18 17:04 by 潇湘隐者, 848 阅读, 收藏, 编辑
摘要:最近开发组同事使用Azure的Function App访问公司内部的Oracle数据库时,偶尔会遇到“ORA-12537: Network Session: End of file”这个错误。关于ORA-12537的详细信息如下: [oracle@DB-Server ~]$ oerr ora 12537 12537, 00000, &quot;TNS:connection closed&quot; // *Cau... 阅读全文

ORACLE中关于表的一些特殊查询语句

2018-11-22 10:57 by 潇湘隐者, 586 阅读, 收藏, 编辑
摘要:1: 如何判断字段的值里面:那些数据包含小写字母或大小字母 判断字段NAME的值里面有小写字母的记录 方式1: SELECT NAME FROM TEST WHERE regexp_like(NAME,&#39;[[:lower:]]&#39;); 方式2 SELECT NAME FROM TEST WHERE regexp_like(NAME,&#39;[a-z]&#39;); 判断字段NAME... 阅读全文

ORACLE中如何查找定位表最后DML操作的时间小结

2018-11-20 14:33 by 潇湘隐者, 705 阅读, 收藏, 编辑
摘要:在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析、总结一下。 1:使用ORA_ROWSCN伪列获取表最后的DML时间 ORA_ROWSCN伪列是Oracle 10g开始引入的,可以查询表中记录最后变更的SCN。然后通过SCN_TO_TIMESTAMP函数可以将SCN转换为时间戳,从而找到最后DML操作时SC... 阅读全文

Oracle 10g 应用补丁PSU 10.2.0.5.180717

2018-11-04 19:06 by 潇湘隐者, 1523 阅读, 收藏, 编辑
摘要:最近测试了一下在Oracle 10g下面(单实例下面)升级、应用补丁PSU 10.2.0.5.180717,打这个补丁的主要原因是 Oracle 将于 2019年6月启用新的SCN兼容性,并且由于BigSCN的作用,96K每秒的SCN增速,都可能会使得通过DB Link的访问产生SCN过度拉升,所以新的补丁需要被应用。最近(2018年8月份)Oracle 提供了针对 Oracle 10g 最终... 阅读全文

ORACLE如何检查找出损坏索引(Corrupt Indexes)

2018-09-14 11:41 by 潇湘隐者, 494 阅读, 收藏, 编辑
摘要:在Oracle数据库中如何找出损坏索引呢? 下面我们人为构造一个案例,将索引块损坏。如下案例所示: SQL&gt; create tablespace test_data 2 datafile &#39;/u01/app/oracle/oradata/gsp/test_data_01.dbf&#39; 3 size 200M autoextend off 4 logging 5 segm... 阅读全文

oracle中print_table存储过程介绍

2018-09-03 22:08 by 潇湘隐者, 843 阅读, 收藏, 编辑
摘要:一直以来,觉得MySQL中使用\G参数改变输出结果集的显示方式非常好用,尤其是在命令行界面。但是ORACLE数据库没有这个功能,今天在搜索到Tom大师的一篇博文时,发现大师用一个存储过程print_table实现了类似这样的功能。只是我们这些凡夫俗子不知道而已,特意整理在此,方便自己或有需要的人以后查看。 CREATE OR REPLACE PROCEDURE print_table(p_q... 阅读全文

ORACLE中内部函数SYS_OP_C2C和隐式类型转换

2018-08-17 09:40 by 潇湘隐者, 846 阅读, 收藏, 编辑
摘要:什么是SYS_OP_C2C呢?官方的介绍如下: SYS_OP_C2C is an internal function which does an implicit conversion of varchar2 to national character set using TO_NCHAR function. Thus, the filter completely changes as com... 阅读全文

ALTER SYSTEM ARCHIVELOG CURRENT挂起案例

2018-07-05 14:12 by 潇湘隐者, 1006 阅读, 收藏, 编辑
摘要:最近两天,一台ORACLE数据库的作业执行delete_ob_get_epps.sh脚本清理过期备份时,执行下面SQL语句就会被阻塞,在监控工具DPA里面部分截图如下(图片分开截断) sql &#39;alter system archive log current&#39;; 如上截图所示,会话ID=650的EVENT为Log archive I/O,被阻塞的会话303在... 阅读全文

ORA-19816: WARNING: Files may exist in db_recovery_file_dest that are not known to database

2018-07-04 22:32 by 潇湘隐者, 3 阅读, 收藏, 编辑
该文被密码保护。

ORACLE中Scalar subquery Caching的hash table大小测试浅析

2018-06-25 10:20 by 潇湘隐者, 446 阅读, 收藏, 编辑
摘要:前阵子总结了这篇“ORACLE当中自定义函数性优化浅析”博客,里面介绍了标量子查询缓存(scalar subquery caching),如果使用标量子查询缓存,ORACLE会将子查询结果缓存在哈希表中,如果后续的记录出现同样的值,优化器通过缓存在哈希表中的值,判断重复值不用重复调用函数,直接使用上次计算结果即可。从而减少调用函数次数,从而达到优化性能的效果。另外在ORACLE 10和11中,... 阅读全文

ORACLE如何找到引起账号锁定的IP的一点思考与总结

2018-06-17 08:03 by 潇湘隐者, 592 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,如果没有修改过FAILED_LOGIN_ATTEMPTS的话,默认10次尝试失败后就会锁住用户。此时再登录数据库,就会遇到ORA-28000: the account is locked SQL&gt; SELECT * 2 FROM DBA_PROFILES 3 WHERE RESOURCE_NAME=&#39;FAILED_LOGIN_ATTEMPTS&#39;; P... 阅读全文

记一次坑爹的ORA-01152&ORA-01110错误

2018-06-15 13:39 by 潇湘隐者, 5843 阅读, 收藏, 编辑
摘要:最近做RMAN还原时遇到了一次非常坑爹的ORA-01152&amp;ORA-01110错误。遇到的具体错误信息如下所示: RMAN&gt; alter database open resetlogs; RMAN-00571: RMAN-00569: ERROR MESSAGE STACK FOLLOWS RMAN 阅读全文

RMAN restore fails with ORA-01180: can not create datafile 1

2018-06-15 10:02 by 潇湘隐者, 679 阅读, 收藏, 编辑
摘要:最近在验证、测试备份有效性时,遇到了“ORA-01180: can not create datafile 1”这个错误,顺便结合metalink的官方文档“RMAN restore fails with ORA-01180: can not create datafile 1 (文档 ID 1265151.1)”里面的内容做一个学习、归纳、总结,顺便加深一下理解。 creating ... 阅读全文

ORACLE中使用ANALYZE引起ORA-00604& ORA-30511&ORA-06512错误Troubleshooting

2018-06-14 16:19 by 潇湘隐者, 6 阅读, 收藏, 编辑
该文被密码保护。

ORACLE当中自定义函数性优化浅析

2018-05-28 12:15 by 潇湘隐者, 601 阅读, 收藏, 编辑
摘要:为什么函数影响性能 在SQL语句中,如果不合理的使用函数(Function)就会严重影响性能,其实这里想说的是PL/SQL中的自定义函数,反而对于一些内置函数而言,影响性能的可能性较小。那么为什么SQL语句当中,不合理的使用函数会影响性能呢? 在SELECT语句中调用函数时,那么查询返回的结果集中的每一行都会调用该函数。如果该函数需要执行1秒,返回的结果集是10行,那么此时SQ... 阅读全文

RMAN命令DELETE操作总结

2018-05-16 15:47 by 潇湘隐者, 816 阅读, 收藏, 编辑
摘要:本篇总结一下RMAN命令中的DELETE操作,DELETE命令用于删除RMAN备份记录以及相应的物理文件。 To delete physical backups and copies as well as do the following: 1: Update their repository records in the target control file to status DELET... 阅读全文

ORA-07445 with error “found dead shared server 'S000'”

2018-05-15 14:46 by 潇湘隐者, 3 阅读, 收藏, 编辑
该文被密码保护。

RMAN-06172 Troubleshooting

2018-03-29 11:43 by 潇湘隐者, 711 阅读, 收藏, 编辑
摘要:今天在RMAN还原测试过程中,遇到了&quot;RMAN-06172: no autobackup found or specified handle is not a valid copy or piece&quot;这个错误,如下所示: RMAN&gt; restore spfile to pfile &quot;/u01/app/oracle/product/10.2.0/db_1/dbs/initSCM2.ora... 阅读全文

如何定位那些SQL产生了大量的redo日志

2018-03-27 23:04 by 潇湘隐者, 1967 阅读, 收藏, 编辑
摘要:在ORACLE数据库的管理、维护过程中,偶尔会遇到归档日志暴增的情况,也就是说一些SQL语句产生了大量的redo log,那么如何跟踪、定位哪些SQL语句生成了大量的redo log日志呢? 下面这篇文章结合实际案例和官方文档“How to identify the causes of High Redo Generation (文档 ID 2265722.1)”来实验验证一下。 首先... 阅读全文

Windows平台监听服务无法启动报报TNS-12560 TNS-00530案例

2018-03-01 13:38 by 潇湘隐者, 1843 阅读, 收藏, 编辑
摘要:在Windows Server 2012平台使用命令启动监听服务时遇到了TNS-12560 &amp; TNS-00530错误。 C:\Users&gt;lsnrctl start GEW_LISTENER LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 01-MAR-2018 12:05 :10 Copyright ... 阅读全文

ORACLE透明网关访问SQL Server配置总结

2018-03-01 11:42 by 潇湘隐者, 842 阅读, 收藏, 编辑
摘要:透明网关概念 ORACLE透明网关(Oracle Transparent Gateway)可以解决ORACLE数据库和非ORACLE数据库交互数据的需求。在一个异构的分布式环境中,通过ORACLE透明网关可以访问其他类型数据库,例如DB2,SQL Server、Sybase....。这个类似于SQL Server里面的LINKED SERVER可以直接访问异构的数据库环境,由于Window... 阅读全文

ORACLE ASMM与AMM的总结

2018-01-05 15:04 by 潇湘隐者, 1580 阅读, 收藏, 编辑
摘要:概念对比介绍 相信有些人会对ORACLE当中的AMM(Automatic Memory Management)与ASMM(Automatic Shared Memory Management)有些迷惑或混淆,不清楚两者的异同,本文会从几个方面来总结一下两者的异同。如有不足或疏漏之处,敬请指正! 从ORACLE发布的版本历史(时间轴)来看,ORACLE的内存管理的大致历程如下: OR... 阅读全文

RMAN还原时注意set newname时文件名不要有空格

2017-11-08 15:56 by 潇湘隐者, 892 阅读, 收藏, 编辑
摘要:今天遇到一个非常奇怪的现象,查看ORACLE数据库的一个文件,明明这个文件是存在的,但是使用ls -lrt 查看都显示这个文件不存在。很是纳闷! 后面发现在终端输入文件名后并使用tab键时,发现文件后其实是有空格(不可见字符)。如下截图所示: [oracle@ehvlnx02 ~]$ ls -lrt /u01/oradata/SCM2/system01.dbfls: /u01/ora... 阅读全文

ORA-04028: cannot generate diana for object xxx

2017-11-02 14:16 by 潇湘隐者, 303 阅读, 收藏, 编辑
摘要:在ORACLE数据库(10.2.0.5.0)上修改一个包的时候,编译有错误,具体错误信息为&quot;ORA-04028: cannot generate diana for object xxx&quot;。 Warning: Package Body created with compilation errors. SQL&gt; show error;Errors for PACKAGE BODY XXXX... 阅读全文

ORACLE不可见索引(Invisible Indexes)

2017-09-18 21:46 by 潇湘隐者, 1221 阅读, 收藏, 编辑
摘要:不可见索引概念 不可见索引(Invisible Index)是ORACLE 11g引入的新特性。不可见索引是会被优化器忽略的不可见索引,除非在会话或系统级别上将OPTIMIZER_USE_INVISIBLE_INDEXES初始化参数显式设置为TRUE。此参数的默认值是FALSE。如果是虚拟索引是为了合理、科学新增索引而设计的,那么不可见索引就是为了合理、科学的删除索引而设计的。为什么这样说... 阅读全文

ORACLE虚拟索引(Virtual Index)

2017-09-15 16:10 by 潇湘隐者, 507 阅读, 收藏, 编辑
摘要:ORACLE虚拟索引(Virtual Index) 虚拟索引概念 虚拟索引(Virtual Indexes)是一个定义在数据字典中的假索引(fake index),它没有相关的索引段。虚拟索引的目的是模拟索引的存在而不用真实的创建一个完整索引。这允许开发者创建虚拟索引来查看相关执行计划而不用等到真实创建完索引才能查看索引对执行计划的影响,并且不会增加存储空间的使用。如果我们观察到优化器生成... 阅读全文

ORACLE NLS_DATE_FORMAT设置

2017-09-14 09:01 by 潇湘隐者, 1124 阅读, 收藏, 编辑
摘要:最近在ORACLE里面设置NLS_DATE_FORMAT日期时间格式时遇到了一些问题,顺便整理一下。以防以后忘记时,能顺速翻阅。 1:在会话级别设置nls_date_format对应的日期格式。 使用alter session set nls_date_format=&#39;xxxx&#39;设置只会影响当前会话的。这个对所有工具(SQL*Plus、SQL Developer)都能生效。 ... 阅读全文

ORACLE归档日志比联机重做日志小很多的情况总结

2017-09-06 15:05 by 潇湘隐者, 1655 阅读, 收藏, 编辑
摘要:ORACLE归档日志比联机重做日志小很多的情况 前几天一网友在群里反馈他遇到归档日志比联机重做日志(redo log)小很多的情况,个人第一次遇到这种情况,非常感兴趣,于是在一番交流沟通后,终于弄清楚了情况,顺便将这方面的资料整理于此!也是一个总结、学习过程! 归档日志比联机重做日志小很多,出现这种情况的原因有很多,我们可以从下面这几方面着手检查,一一排除确认。 1:检查参数A... 阅读全文

ORACLE获取SQL绑定变量值的方法总结

2017-09-04 23:27 by 潇湘隐者, 3174 阅读, 收藏, 编辑
摘要:本文总结一下ORACLE数据库中如何获取SQL绑定变量值的方法,在SQL优化调优过程中,经常会用到这方面的知识点。在此梳理、总结一下,方面日后查找、翻阅。 方法1:查询V$SQL V$SQL视图中的BIND_DATA字段用来存储绑定变量的值,但是从这个视图查询绑定变量的值,有很大的局限性: 1: 它的记录频率受_cursor_bind_capture_interval隐... 阅读全文

ORACLE SEQUENCE跳号总结

2017-09-01 00:02 by 潇湘隐者, 1053 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会遇到跳号呢? 事务回滚引起的跳号 不管序列有没有CACHE、事务回滚这种情况下,都会引起序列的跳号。如下实验所示: SQL&gt; create sequence my_seq... 阅读全文

ORACLE中seq$表更新频繁的分析

2017-08-30 12:04 by 潇湘隐者, 572 阅读, 收藏, 编辑
摘要:在分析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... 阅读全文

ORACLE Index Lookup索引访问路径总结

2017-08-23 10:11 by 潇湘隐者, 339 阅读, 收藏, 编辑
摘要:在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 潇湘隐者, 1868 阅读, 收藏, 编辑
摘要:在一台ORACLE服务器上做巡检时,使用下面SQL找出DISK_READ最高的TOP SQL分析时,分析过程中,有一条SQL语句的一些反常现象,让人觉得很奇怪: SELECT SQL_ID, SQL_TEXT, DISK_READS, BUFFER_GETS, PARSING_SCHEMA_NAME, EXECUTION... 阅读全文

ORACLE等待事件:SQL*Net message from client & SQL*Net message to client

2017-08-15 08:26 by 潇湘隐者, 8106 阅读, 收藏, 编辑
摘要:在ORACLE当中有两个很常见的等待事件“SQL*Net message from client”与“SQL*Net message to client”,两者有点区别,下面整理这方面的资料如下: SQL*Net message from client 表示服务端等待着Cilent发来请求让它处理,这时就会产生SQL*Net message from client等待事件。 ... 阅读全文

ORA-1652: unable to extend temp segment by 128 in tablespace xxx Troubleshootin

2017-08-08 22:54 by 潇湘隐者, 1047 阅读, 收藏, 编辑
摘要:当收到告警信息ORA-01652: unable to extend temp segment by 128 in tablespace xxxx 时,如何Troubleshooting ORA-1652这样的问题呢? 当然一般xxx是临时表空间,也有可能是用户表空间。 我们先来模拟一下这个情况,在两个会话窗口执行下面SQL语句,这个视图比较特殊(因为比较懒,不想去构造一个大量消耗临时段的SQ... 阅读全文

ORACLE中修改表的Schema的总结

2017-07-11 11:00 by 潇湘隐者, 2704 阅读, 收藏, 编辑
摘要:前阵子遇到一个案例,需要将数据库中的几个表从USER A 移动到USER B下面,在ORACLE中,这个叫做更改表的所有者或者修改表的Schema。其实遇到这种案例,有好几种解决方法。下面我们通过实验来测试、验证一下。首先准备简单测试数据,如下所示: SQL&gt; CREATE TABLE TEST.KKK( ID INT , NAME VARCHAR2(12) , CONS... 阅读全文

ORA-01440: column to be modified must be empty to decrease precision or scale

2017-06-08 08:26 by 潇湘隐者, 1651 阅读, 收藏, 编辑
摘要:在修改表字段的NUMBER类型的精度或刻度时,你可能会遇到ORA-01440: column to be modified must be empty to decrease precision or scale,下面介绍一下,如何处理这个问题。测试案例如下: SQL&gt; drop table test; Table dropped. SQL&gt;create table test(pro... 阅读全文

ORACLE 中NUMBER类型默认的精度和Scale问题

2017-06-07 16:06 by 潇湘隐者, 19304 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,NUMBER(P,S)是最常见的数字类型,可以存放数据范围为10^-130~10^126(不包含此值),需要1~22字节(BYTE)不等的存储空间。P 是Precison的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过38个有效数字。S是Scale的英文缩写,表示从小数点到最低有效数字的位数,它为负数时,表示从最大有效数字到小数点的位数。有时候,我们在创建表的时候,... 阅读全文

ORACLE中死锁的知识点总结

2017-06-01 12:20 by 潇湘隐者, 12471 阅读, 收藏, 编辑
摘要:死锁的概念 什么是死锁呢? 其实我们生活中也有很多类似死锁的例子。 我先举一个生活中的例子:过年回家,父亲买了一把水弹枪,儿子和侄子争抢着要先玩,谁也不让谁,拆开包装后,一个抢了枪, 一个逮住了子弹和弹夹。两个都争着要先玩,但是都互不相让。结果两个人都玩不了。如果儿子要先玩,就必须让侄子把子弹和弹夹给他,如果侄子要先玩,就必须让儿子把枪给侄子。他们就这样对峙了十几分钟,互不相让。 ... 阅读全文

Linux平台下RMAN异机恢复总结

2017-05-29 16:30 by 潇湘隐者, 10317 阅读, 收藏, 编辑
摘要:下面总结、整理一下RMAN异机恢复这方面的知识点,这篇笔记在个人笔记里面躺了几年了,直到最近偶然被翻看到,遂整理、总结一下。如下所示,个人将整个RMAN异机恢复分为准备工作和操作步骤两大部分。当然,准备工作里面,有些步骤不是必须的,可以跳过或忽略的。这个取决于你的实际环境和你对RMAN异机恢复的熟悉程度。 准备工作 1:了解一下目标服务器与源服务器的操作系统版本信息 需要对比一下目标... 阅读全文

ORACLE关于段的HEADER_BLOCK的一点浅析

2017-05-15 15:27 by 潇湘隐者, 849 阅读, 收藏, 编辑
摘要:在学习段(segment)、区间(extent)时,对段的HEADER_BLOCK有一些疑问,本文记录一下探究的实验过程以及相关总结,,如有不对的地方,敬请指出。以SCOTT.EMP表为例(下面测试环境为Oracle Database 10g Release 10.2.0.5.0 - 64bit Production): SELECT FILE_ID, BLOCK_ID, ... 阅读全文

关系数据库如何快速查询表的记录数

2017-05-09 15:58 by 潇湘隐者, 9674 阅读, 收藏, 编辑
摘要:在数据库中,很多人员习惯使用SELECT COUNT(*)、SELECT COUNT(1)、SELECT COUNT(COL)来查询一个表有多少记录,对于小表,这种SQL的开销倒不是很大,但是对于大表,这种查询表记录数的做法就是一个非常消耗资源了,而且效率很差。下面介绍一下SQL Server、 Oracle、MySQL中如何快速获取表的记录数。 SQL SERVER 数据库 在S... 阅读全文

ORACLE中关于外键缺少索引的探讨和总结

2017-04-17 15:59 by 潇湘隐者, 2600 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引。那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创建索引的相关表,并生成对应的索引的脚本呢? 外键缺失索引影响 外键列上缺少索引会带来三个问题,限制并发性、影响性能、还有可能造成死锁。所以对于绝大部分场景,我们应该尽量考虑在外键... 阅读全文

ORA-12514, TNS:listener does not currently know of service requested in connect descriptor案例2

2017-04-12 13:39 by 潇湘隐者, 99854 阅读, 收藏, 编辑
摘要:今天使用SQL Developer连接一台测试服务器数据库(ORACLE 11g)时,遇到了“ORA-12514, TNS:listener does not currently know of service requested in connect descriptor”错误,具体提示如下所示: 执行请求的操作时遇到错误: Listener refused the connection ... 阅读全文

关于ORACLE通过file_id与block_id定位数据库对象遇到的问题的一点思考

2017-03-19 00:15 by 潇湘隐者, 1546 阅读, 收藏, 编辑
摘要:在ORACLE中,我们可以通过file_id(file#)与block_id(block#)去定位一个数据库对象(object)。例如,我们在10046生成的trace文件中file#=4 block#=266 blocks=8,那么我可以通过下面两个SQL去定位对象 SQL 1:此SQL效率较差,执行时间较长。 SELECT OWNER, SEGMENT_NAME, ... 阅读全文

ORACLE的Dead Connection Detection浅析

2017-01-17 12:27 by 潇湘隐者, 1904 阅读, 收藏, 编辑
摘要:在复杂的应用环境下,我们经常会遇到一些非常复杂并且有意思的问题,例如,我们会遇到网络异常(网络掉包、无线网络断线)、客户端程序异常(例如应用程序崩溃Crash)、操作系统蓝屏、客户端电脑掉电、死机重启等异常情况,此时数据库连接可能都没有正常关闭(Colse)、事务都没有提交,连接(connections)就断开了。如果遇到这些情况,你未提交的一个事务在数据库中是否会回滚? 如果回滚,什么条... 阅读全文

ORACLE从共享池删除指定SQL的执行计划

2016-12-29 11:14 by 潇湘隐者, 3944 阅读, 收藏, 编辑
摘要:Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等。也就是说可以删除、清理特定SQL的执行计划,这样在特殊情况下,就避免你要将整个SHARED POOL清空的危险情况。例如某个SQL语句由于优化器产生了错误的执行计划,我们希望优化器重新解析,生成新的执行计划,必须先将SQL的执行计划从共享池中... 阅读全文

SQL*Plus生成html文件

2016-12-27 12:12 by 潇湘隐者, 1414 阅读, 收藏, 编辑
摘要:最近使用SQL*Plus命令生成html文件,遇到一些有意思的知识点,顺便记录一下,方便以后需要的时候而这些知识点又忘记而捉急。好记性不如烂笔头吗! 为什么要用SQL*Plus生成html文件? 有些人肯定会问,我使用SQL*Plus为什么要生成html文件呢? SQL*Plus本身就是一个命令工具,生成html文件有必要吗? 下面是个人的一些看法,如有不对,敬请指正: 有很大一部分ORA... 阅读全文

PMON failed to acquire latch, see PMON dump

2016-12-23 12:18 by 潇湘隐者, 2491 阅读, 收藏, 编辑
摘要:前几天,一台Oracle数据库(Oracle Database 10g Release 10.2.0.4.0 - 64bit Production)监控出现&quot;PMON failed to acquire latch, see PMON dump&quot;错误,连接数据库出现短暂异常,告警日志中具体错误如下所示: Tue Dec 20 09:13:16 2016PMON failed to acquire... 阅读全文

ORACLE中STATUS为INACTIVE但是SERVER为SHARED状态的会话浅析

2016-12-15 16:46 by 潇湘隐者, 1177 阅读, 收藏, 编辑
摘要:我们知道当ORACLE数据库启用共享服务器模式时,通过共享服务器模式连接到数据库的会话是有一些特征的。在v$session里面,其SERVER的状态一般为SHARED和NONE, 为SHARED时,表示当前会话正在执行SQL语句,其占用共享服务器进程,会话的STATUS状态为ACTIVE;当会话状态STATUS处于INACITVE时,它的SERVER字段值一般为NONE,意味着此时并没有共享... 阅读全文

ORA-00821: Specified value of sga_target 3072M is too small, needs to be at least 12896M

2016-12-15 10:23 by 潇湘隐者, 7478 阅读, 收藏, 编辑
摘要:在测试PlateSpine克隆的数据库服务器时,由于资源有限,克隆过来的数据库服务器只给了9G的内存,结果在测试时,老是会出现OOMkiller导致宕机,即out of memory killer,是linux下面当内存耗尽时的的一种处理机制。当内存较少时,OOM会遍历整个进程链表,然后根据进程的内存使用情况以及它的oom score值最终找到得分较高的进程,然后发送kill信号将其杀掉。... 阅读全文

ORA-00600 3020 ORA-10567案例

2016-11-25 15:48 by 潇湘隐者, 1042 阅读, 收藏, 编辑
摘要:PlateSpin克隆复制出的Oracle数据库服务器,往往启动数据库实例都会遇到一些杂七杂八的问题。今天测试DR环境时又遇到了一个特殊场景,在此之前,我已经遇到了下面两起案例: ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], [] ORA-00600: internal... 阅读全文

ORA-00600: internal error code, arguments: [4194]

2016-11-21 14:51 by 潇湘隐者, 4766 阅读, 收藏, 编辑
摘要:使用PlateSpin复制出来的一数据库服务器(Oracle 10g)在启动数据库实例时遇到“ORA-00600: internal error code, arguments: [4194].....”错误,实例在启动后,会自然Down掉。具体情况如下所示: Successfully onlined Undo Tablespace 54.Mon Nov 21 11:34:03 2016SMON... 阅读全文

ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

2016-11-10 11:26 by 潇湘隐者, 1600 阅读, 收藏, 编辑
摘要:凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库。报ORA-12570 TNS:packet reader failure 2. 使用lsnrctl status检查监听,一直没有响应,这个是极少见的情况。 3. 检查数据库状态为OPEN,使用nmon检查系统资源。如下一... 阅读全文

[转载】——故障排除:Shared Pool优化和Library Cache Latch冲突优化 (文档 ID 1523934.1)

2016-10-31 15:59 by 潇湘隐者, 830 阅读, 收藏, 编辑
摘要:原文链接:https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrlstate=23w4l35u5_4&amp;id=1523934.1用途 提出问题,得到帮助并分享您的心得 排错步骤 什么是shared pool? 专用术语 Literal SQL Hard Parse... 阅读全文

ORACLE推导参数Derived Parameter介绍

2016-10-30 23:46 by 潇湘隐者, 758 阅读, 收藏, 编辑
摘要:Oracle的推导参数(Derived Parameters)其实是初始化参数的一种。推导参数值通常来自于其它参数的运算,依赖其它参数计算得出。官方文档关于推导参数(Derived Parameters)的概念如下: Derived Parameters Some initialization parameters are derived, meaning that their values... 阅读全文

SQL Challenge ——快速找到1-100之间缺失的数

2016-10-18 17:02 by 潇湘隐者, 3288 阅读, 收藏, 编辑
摘要:有个经典的题目:1-100之间的数字(不重复)存放在表里,共95行一列,但是里面缺了5个数字,怎么用SQL最快找出那五个数字。 我们先来看看Oracle数据库如何实现,如下所示,我们先准备测试环境和数据。 SQL&gt; create table t( id number(10)); Table created. SQL&gt; begin 2 for i in 1 .. 100 3 loo... 阅读全文

ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

2016-10-08 23:37 by 潇湘隐者, 4958 阅读, 收藏, 编辑
摘要:在ORACLE数据库中有物理读(Physical Reads)、逻辑读(Logical Reads)、一致性读(Consistant Get)、当前模式读(DB Block Gets)等诸多概念,如果不理解或混淆这些概念的话,对你深入理解一些知识无疑是一个障碍,但是这些概念确实挺让让人犯晕的。下面我们总结、学习一下这方面的知识点。捋一捋他们的关系和特点,希望对你有所帮助。 物理读(... 阅读全文

ORACLE的SQL JOIN方式小结

2016-10-07 12:13 by 潇湘隐者, 40627 阅读, 收藏, 编辑
摘要:在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... 阅读全文

ORACLE等待事件:enq: TX - row lock contention

2016-09-19 23:26 by 潇湘隐者, 6911 阅读, 收藏, 编辑
摘要:enq: TX - row lock contention等待事件,这个是数据库里面一个比较常见的等待事件。enq是enqueue的缩写,它是一种保护共享资源的锁定机制,一个排队机制,先进先出(FIFO)。enq: TX - row lock contention等待事件,OACLE将其归类为application级别的等待事件。有些场景是因为应用逻辑设计不合理造成的。下面我们看看enq: TX ... 阅读全文

ORACLE等待事件: log file parallel write

2016-09-07 15:09 by 潇湘隐者, 1330 阅读, 收藏, 编辑
摘要: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 潇湘隐者, 3469 阅读, 收藏, 编辑
摘要:在一数据库版本为(标准版)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 潇湘隐者, 3103 阅读, 收藏, 编辑
摘要:今天遇到一个很有意思的问题,一个开发人员反馈在测试服务器ORACLE数据库执行的一条简单SQL语句非常缓慢,他写的一个SQL没有返回任何数据,但是耗费了几分钟的时间。让我检查分析一下原因,分析解决过后,发现事情的真相有点让人哭笑不得,但是也是非常有意思的。我们先简单构造一下类似的案例,当然只是简单模拟。 假设一个同事A,创建了一个表并初始化了数据(实际环境数据量较大,有1G多的数据),但是他忘... 阅读全文

为什么数据库有时候不能定位阻塞(Blocker)源头的SQL语句

2016-08-30 11:48 by 潇湘隐者, 2049 阅读, 收藏, 编辑
摘要:在SQL Server数据库或OACLE数据库当中,通常一个会话持有某个资源的锁,而另一个会话在请求这个资源,就会出现阻塞(blocking)。这是DBA经常会遇到的情况。当出现SQL语句的阻塞时,很多人想查看阻塞的源头(哪个SQL语句阻塞了哪个SQL),这样方便直观、简洁明了的定位问题。但是很多时候,很多场景,我们通过SQL语句并不能或者说不容易定位到阻塞者(Blocker)的SQL语句... 阅读全文

ORACLE使用GV_$TEMP_SPACE_HEADER统计临时表空使用情况不准确的问题

2016-08-22 22:24 by 潇湘隐者, 2157 阅读, 收藏, 编辑
摘要:以前写了一篇ORACLE临时表空间总结的文章, 里面介绍了几个查看临时表空间使用情况的脚本,其中一个脚本如下所示: SELECT TU.TABLESPACE_NAME AS &quot;TABLESPACE_NAME&quot;, TT.TOTAL - TU.USED ... 阅读全文

ORA-01336: specified dictionary file cannot be opened

2016-08-21 10:56 by 潇湘隐者, 1062 阅读, 收藏, 编辑
摘要:这篇介绍使用Logminer时遇到ORA-01336: specified dictionary file cannot be opened错误的各种场景 1:dictionary_location参数的路径最后多了一个/符号。 SQL&gt; show parameter utl_file_dir; NAME TYPE ... 阅读全文

ORACLE AWR结合ASH诊断分析enq: TX - row lock contention

2016-08-20 11:48 by 潇湘隐者, 3226 阅读, 收藏, 编辑
摘要:公司用户反馈一系统在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 潇湘隐者, 544 阅读, 收藏, 编辑
摘要:在metalink上看到一个脚本(get_locked_objects_rpt.sql),非常不错,如下所示 /*----------------------------------------------------------------------------+ | MODULE: get_locked_objects_rpt.sql | | DESCRIPTION: | | Script... 阅读全文

RMAN命令LIST操作总结

2016-08-15 15:16 by 潇湘隐者, 10130 阅读, 收藏, 编辑
摘要:在使用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 潇湘隐者, 7251 阅读, 收藏, 编辑
摘要:在更新表的主键字段或DELETE数据时,如果遇到ORA-02292: integrity constraint (xxxx) violated - child record found 这个是因为主外键关系,下面借助一个小列子来描述一下这个错误: SQL&gt; create table student 2 ( 3 id number, 4 name nvarchar2(12),... 阅读全文

Oracle 11g 单实例安装文档

2016-08-12 15:52 by 潇湘隐者, 2561 阅读, 收藏, 编辑
摘要:这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整理在此。仅供参考! 1:下载对应平台的ORACLE 11g安装介质 安装ORACLE,首先要获取安装介质,大部分情况手头都有相关版本的安装介质。如果你手头没有安装介质,那么可以从下面链接获取... 阅读全文

ORACLE口令管理

2016-08-06 22:08 by 潇湘隐者, 7424 阅读, 收藏, 编辑
摘要:口令文件介绍 在ORALCE数据库系统中,用户如果要以特权用户身份(SYS/SYSDBA/SYSOPER)登录ORALCE数据库可以有两种身份验证的方法:即使用与操作系统集成的身份验证或使用ORALCE数据库的密码文件进行身份验证。因此,管理好密码文件,对于控制授权用户从服务器本机或远端登录Oracle数据库系统,执行数据库管理工作,具有重要的意义. ORALCE口令文件用于存... 阅读全文

oom_kill_process造成数据库挂起并出现found dead shared server

2016-08-06 11:27 by 潇湘隐者, 1183 阅读, 收藏, 编辑
摘要:这篇博客是上一篇博客Oracle shutdown immediate遭遇ORA-24324 ORA-24323 ORA-01089的延伸(数据库挂起hang时,才去重启的),其实这是我们海外一工厂的遇到的案例,把内容拆开是因为这个case分开讲述显得主题明确一些。正式进入主题: 服务器数据库版本Oracle Database 10g Release 10.2.0.4.0,操作系统为Red H... 阅读全文

Oracle shutdown immediate遭遇ORA-24324 ORA-24323 ORA-01089

2016-08-06 09:16 by 潇湘隐者, 10229 阅读, 收藏, 编辑
摘要:一数据库服务器执行shutdown immediate时,遇到了下面ORA错误,如下所示: $ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Fri Aug 5 10:56:24 2016 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Conne... 阅读全文

sqlplus: error while loading shared libraries: /u01/app/lib/libclntsh.so.11.1

2016-08-03 09:27 by 潇湘隐者, 2583 阅读, 收藏, 编辑
摘要:成功安装了Oracle 11g后,使用sqlplus登录数据库时遇到下面错误: [oracle@DB-Server ~]$ sqlplus / as sysdba sqlplus: error while loading shared libraries: /u01/app/lib/libclntsh.so.11.1: cannot restore segment prot after relo... 阅读全文

ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看

2016-07-26 23:31 by 潇湘隐者, 3841 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象是什么东西呢?其实OBJECT_TYPE为LOB就是大对象(LOB),它指那些用来存储大量数据的数据库字段。下面演示一下: CREATE TABLE TEST( &quot;ID&quot; NUMBER, &quot;NAME&quot; NVARCHAR2(10), &quot;TEST&quot; CLOB) INSERT I... 阅读全文

ORACLE 10g AWR报告设置总结

2016-07-26 14:42 by 潇湘隐者, 1331 阅读, 收藏, 编辑
摘要:1:查看、修改AWR报告快照数据的采样间隔、保存策略 SQL&gt; COL DBID FOR 999999999999SQL&gt; COL SNAP_INTERVAL FOR A26SQL&gt; COL RETENTION FOR A26SQL&gt; COL TOPNSQL FOR A10SQL&gt; select * from dba_hist_wr_control; DBID SNAP_I... 阅读全文

记一次ORACLE的UNDO表空间爆满分析过程

2016-07-21 23:57 by 潇湘隐者, 15808 阅读, 收藏, 编辑
摘要:这篇文章是记录一次ORACLE数据库UNDO表空间爆满的分析过程,主要整理、梳理了同事分析的思路。具体过程如下所示: 早上收到一数据库服务器的UNDO表空间的告警邮件,最早一封是7:55发出的(监控作业是15分钟一次),从告警邮件分析,好像是UNDO表空间突然一下子被耗尽了。 DB Tablespace Allocated Free Used % Free % Use... 阅读全文

ORACLE AWR报告数据的导入导出实践

2016-07-20 22:16 by 潇湘隐者, 1712 阅读, 收藏, 编辑
摘要:关于AWR的快照数据可以导出、导入,一直没有亲手实践过。今天动手测试了一下如何导出、导入AWR数据,将AWR的数据从一测试服务器,导入到另外一台测试服务器。 SQL&gt; @?/rdbms/admin/awrextr.sql~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~... 阅读全文

ORACLE 查看RMAN的备份信息总结

2016-07-19 14:45 by 潇湘隐者, 23025 阅读, 收藏, 编辑
摘要:关于Oracle数据库的RMAN备份,除了邮件外,是否能通过其它方式检查RMAN备份的成功与失败呢?其实我们可以通过下面SQL脚本来检查某个时间段备份失败的记录: SELECT * FROM V$RMAN_STATUS WHERE START_TIME &gt;= TO_DATE(&amp;START_TIME,&#39;YYYY-MM-DD HH24:MI:SS&#39;) AND END_TIME = TO... 阅读全文

ORACLE AWR报告生成过程出现多个实例记录分析

2016-07-18 16:38 by 潇湘隐者, 1318 阅读, 收藏, 编辑
摘要:在一次生成AWR报告中,发现在“Instances in this Workload Repository schema”部分,出现了多个实例记录信息(host敏感信息被用host1,host2,host3替换)。具体信息如下截图所示: SQL&gt; @?/rdbms/admin/awrrpt Current Instance~~~~~~~~~~~~~~~~ DB Id DB Name ... 阅读全文

ORACLE 如何查看索引重建进度情况

2016-07-15 13:03 by 潇湘隐者, 12389 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,如果一个比较大的索引在重建过程中耗费时间比较长,那么怎么查看索引重建耗费的时间,以及完成了多少(比例)了呢,我们可以通过V$SESSION_LONGOPS视图来查看索引重建的时间和进度。 官方文档关于V$SESSION_LONGOPS的介绍如下 V$SESSION_LONGOPS This view displays the status of various ... 阅读全文

Oracle行内链接不会引起USER_TABLES中CHAIN_CNT值变化

2016-07-10 10:02 by 潇湘隐者, 1027 阅读, 收藏, 编辑
摘要:前几天和群里网友讨论一个关于行内链接(intra-block chaining)的问题,问题非常有意思,恰好今天有空,顺便整理了一下这些知识点。 问题描述:下面SQL,创建一个超过255列的表(实际为256列),然后插入几条数据,然后对表做ANALYZE分析过后,但是发现user_tables的CHAIN_CNT字段值为0,chained_rows表中没有记录,为什么会这样? ... 阅读全文

ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], []

2016-07-06 22:49 by 潇湘隐者, 2311 阅读, 收藏, 编辑
摘要:今天在PlateSpin Forge(关于PlateSpin相关介绍,请见最下面部分简单介绍) 复制出来的一台数据库服务器上,测试数据库能否正常启动时,遇到了“ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], []”错误: 在官方文档介绍中,这个错误主要出现在磁盘... 阅读全文

DROP_SNAPSHOT_RANGE过程不能清理表RM$_SNAPSHOT_DETAILS

2016-06-30 23:11 by 潇湘隐者, 1245 阅读, 收藏, 编辑
摘要:今天在测试、验证DROP_SNAPSHOT_RANGE不能彻底快照的过程中遇到了DROP_SNAPSHOT_RANGE无法清理WRM$_SNAPSHOT_DETAILS表中数据的情况,测试服务器版本为10.2.0.4.0,AWR的快照是1小时采集一次数据,快照保留14天,也就是二周。具体情况如下所示: SQL&gt; select * from v$version; BANNER... 阅读全文

ORACLE关于索引是否需要定期重建争论的整理

2016-06-19 01:32 by 潇湘隐者, 7261 阅读, 收藏, 编辑
摘要:ORACLE数据库中的索引到底要不要定期重建呢? 如果不需要定期重建,那么理由是什么? 如果需要定期重建,那么理由又是什么?另外,如果需要定期重建,那么满足那些条件的索引才需要重建呢?关于这个问题,网上也有很多争论,也一直让我有点困惑,因为总有点不得庐山真面目的感觉,直到上周看到了一些资料,遂整理于 阅读全文

Linux hostname对Oracle实例以及监听的影响

2016-06-18 19:28 by 潇湘隐者, 4343 阅读, 收藏, 编辑
摘要:在Linux平台中,对hostname的修改,是否对ORACLE数据库实例或监听进程有影响呢?如果有影响,又要如何解决问题呢?另外/etc/hosts下相关内容的修改,是否也会影响实例或监听呢?这里涉及的场景非常多,当然关系也非常复杂,我们下面通过几个例子来测试验证一下。 如下所示,服务器/etc/hosts 与/etc/sysconfig/network的原始配置信息如下 [r... 阅读全文

Oracle global database name与db link的纠缠关系

2016-06-08 11:21 by 潇湘隐者, 3193 阅读, 收藏, 编辑
摘要:ORACLE数据库中Global Database Name与DB LINKS的关系还真是有点纠缠不清,在说清楚这个关系前,我们先来了解一下Global Database Name的概念 Global DataBase Name 概念 1. What is a global database name? -------------------------------------------... 阅读全文

TNS-12535: TNS:operation timed out案例解析

2016-05-18 12:21 by 潇湘隐者, 21877 阅读, 收藏, 编辑
摘要:一数据库突然连接不上,在自己电脑上使用SQL Developer也连接不上。立即使用SecureCRT连接上了这台服务器,从下面几个方面检查。 1:检查了数据库的状态是否正常 $ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Mon May 16 11:07:55 2016 Copyright (c) 198... 阅读全文

ORA-12154 & TNS-03505 案例分享

2016-05-16 15:47 by 潇湘隐者, 4315 阅读, 收藏, 编辑
摘要:下面介绍一个工作中遇到的案例场景,应用服务器连接数据库出现”ORA-12154: TNS: 无法解析指定的连接标识符“。一般情况下ORA-12541错误是很容易排除的,但是这次遇到案例场景跟以往有所不同,我先模拟这样一个环境,然后一一道来。 应用服务器安装的ORACLE 11g客户端,tnsname里面的有如下配置,我们要通过它连接到目标服务器 TEST = ... 阅读全文

ORA-00030: User session ID does not exist.

2016-05-06 21:31 by 潇湘隐者, 5059 阅读, 收藏, 编辑
摘要:同事在Toad里面执行SQL语句时,突然无线网络中断了,让我检查一下具体情况,如下所示(有些信息,用xxx替换,因为是在处理那些历史归档数据,使用的一个特殊用户,所以可以用下面SQL找到对应的会话信息): SQL&gt; SELECT B.USERNAME , 2 B.SID , 3 B.SERIAL# , 4 ... 阅读全文

ORA-32004: obsolete and/or deprecated parameter(s) specified

2016-05-03 12:07 by 潇湘隐者, 1072 阅读, 收藏, 编辑
摘要:如果在启动数据库时遇到ORA-32004: obsolete and/or deprecated parameter(s) specified 错误,这个是因为数据库里面设置了过时或不推荐使用的参数,如下描述所示: SQL&gt; ho oerr ora 3200432004, 00000, &quot;obsolete and/or deprecated parameter(s) specified&quot;// *C... 阅读全文

数据泵如何生成导出文件的DDL脚本

2016-05-03 11:09 by 潇湘隐者, 1579 阅读, 收藏, 编辑
摘要:在使用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 潇湘隐者, 4974 阅读, 收藏, 编辑
摘要:使用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 潇湘隐者, 4610 阅读, 收藏, 编辑
摘要:很多人习惯用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 潇湘隐者, 772 阅读, 收藏, 编辑
摘要:在测试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 潇湘隐者, 580 阅读, 收藏, 编辑
摘要:查询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 潇湘隐者, 8799 阅读, 收藏, 编辑
摘要:创建账号或修改账号密码时有可能会遇到ORA-00988: missing or invalid password(s),那么什么情况下会遇到这种错误呢? 一般是因为密码的设置不符合命名规范: 1:密码是关键字,但是没有用双引号包裹起来。 2:密码以数字开头,但是没有用双引号包裹起来 3:密码包含特殊字符,并且没有用双引号包裹起来。 官方文档关于passwor的介绍如下: The BY pass... 阅读全文

ORACLE 查看有多个执行计划的SQL语句

2016-03-17 16:48 by 潇湘隐者, 3382 阅读, 收藏, 编辑
摘要:在SQL优化过程,有时候需要查看哪些SQL具有多个执行计划(Multiple Executions Plans for the same SQL statement),因为同一个SQL有多个执行计划一般意味着代码有问题或某些其它原因,例如,SQL语句使用绑定变量,但是绑定变量的类型或长度可能不一致会导致同一SQL出现不同执行计划。 --查看数据库里面有多个执行计划的SQL语句的SQL_ID SE... 阅读全文

ORACLE绑定变量隐式转换导致性能问题

2016-03-15 12:10 by 潇湘隐者, 1117 阅读, 收藏, 编辑
摘要:年后一次系统升级后,监控数据库的工具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 潇湘隐者, 1829 阅读, 收藏, 编辑
摘要:ORACLE数据库的systemstat dump生成trace文件虽然比较简单,但是怎么从trace文件中浩如烟海的信息中提炼有用信息,并作出分析诊断是一件技术活,下面收集、整理如何分析解读systemstat dump产生的trace文件。 如果要人工去解读systemstat dump生成的trace文件,真是一件体力活,因为这些trace文件动不动就几百M甚至更大,它产生的... 阅读全文

SQL Tune Report–sqltrpt.sql

2016-03-09 22:34 by 潇湘隐者, 2087 阅读, 收藏, 编辑
摘要: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 潇湘隐者, 2249 阅读, 收藏, 编辑
摘要:在最近的一次优化过程中发现了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 潇湘隐者, 4030 阅读, 收藏, 编辑
摘要:当数据库出现严重的性能问题或者hang起的时候,那么我们非常需要通过systemstate dump来知道进程在做什么,在等待什么,谁是资源的持有者,谁阻塞了别人。在出现上述问题时,及时收集systemstate dump非常有助于问题原因的分析。一般Oracle Support工程是也是需要你提供systemstate dump生成的trace文件做分析,关于systemstate du... 阅读全文

如何删除或重置spfile中的参数

2016-02-28 23:27 by 潇湘隐者, 1580 阅读, 收藏, 编辑
摘要:在ORACLE中,修改spfile中的参数一般非常容易,那么如何删除spfile中的参数呢? 下面我们用一个案例来介绍一下,如何删除spfile中的参数,一种方法就是创建对应的pfile,删除对应的参数后,然后用当前的pfile反向生成对应的spfile,还有一种方法就是使用命令来删除对应的参数。在删除参数之前,最好先备份一下对应的spfile文件。 假如我们在spfile参数中添加了参数... 阅读全文

INBOUND_CONNECT_TIMEOUT与SQLNET.INBOUND_CONNECT_TIMEOUT小结

2016-02-28 12:10 by 潇湘隐者, 7732 阅读, 收藏, 编辑
摘要:关于sqlnet.ora的参数SQLNET.INBOUND_CONNECT_TIMEOUT,它表示等待用户认证超时的时间,单位是秒,缺省值是60秒,如果用户认证超时了,服务器日志alert.log显示出错信息&quot;WARNING: inbound connection timed out (ORA-3136)&quot;,sqlnet.log里面出现TNS-12535: TNS:operation tim... 阅读全文

查看ORACLE的实际执行计划

2016-02-27 23:09 by 潇湘隐者, 18731 阅读, 收藏, 编辑
摘要:ORACLE的执行计划分为预估执行计划和实际执行计划。其中,你用Toad、PL/SQL Developer、SQL Developer、EXPLAIN PLAN FOR或者SET ATUOTRACE TRACEONLY等获取的执行计划都是预估的执行计划。有时候预估执行计划和实际执行计划有很大的差别,所以有时候,调优的时候需要对比实际执行计划和预估的执行计划,不能被预估的执行计划给欺骗了。那么... 阅读全文

ksvcreate: Process(m000) creation failed

2016-01-22 14:59 by 潇湘隐者, 1645 阅读, 收藏, 编辑
摘要:一测试服务器数据库(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 潇湘隐者, 7073 阅读, 收藏, 编辑
摘要:在这篇博客SQL挑战——如何高效生成编码里面我由于需要将数字格式化为字符,像12需要格式化0012这样的字符,所以使用了TO_CHAR(数字,&#39;0000&#39;)这样的写法,后面0000表示缺省补零,测试过程中,我发发现TO_CHAR(number,&#39;0000&#39;) 会多一个空格。有点纳闷为什么了会多一个空格。 后面经过查看官方文档、同事讨论以及网友提供的资料,终于把这个问题给弄清楚了。下面梳... 阅读全文

SQL挑战——如何高效生成编码

2015-12-25 23:49 by 潇湘隐者, 1179 阅读, 收藏, 编辑
摘要:有这样一个需求:需要根据输入的编码(这个编码值来自于数据库的一个表)生成下一个编码,编码规则如下所示(我们暂且不关心这个逻辑是否合理,只关心如何实现): 1: 最小值为A0000, 最大值为ZZZZZ 2:编码A0000的下一个值为A0001, 编码A9999的下一个值为B0000, 编码AB999的下一个值为AC000,编码AC999的下一个值为AD000,依此规则内推。 3:不用... 阅读全文

SQL*LOADER错误总结

2015-12-09 22:51 by 潇湘隐者, 7503 阅读, 收藏, 编辑
摘要:在使用SQL*LOADER装载数据时,由于平面文件的多样化和数据格式问题总会遇到形形色色的一些小问题,下面是工作中累积、整理记录的遇到的一些形形色色错误。希望能对大家有些用处。(今天突然看到自己以前整理的这些资料,于是稍稍整理、归纳成这篇博客,后面如果碰到其他案例,会陆陆续续补充在此篇文章。) ERROR 1:SQL*LOADER装载数据成功,但是发现某些字段的中文为乱码,这个是因... 阅读全文

如何监控ORACLE索引使用与否

2015-11-30 00:31 by 潇湘隐者, 5607 阅读, 收藏, 编辑
摘要:在数据库管理与维护中,我们总会遇到一个问题:我们创建的索引是否会被某些SQL语句使用呢?换个通俗表达方式:我创建的索引是否是未使用的索引(unused Indexes),是否有价值呢?如果创建的某个索引是Unused Indexes,尤其是没有合理规划索引的系统或那些管理控制不规范的系统。有可能建立了N个索引,其实有些索引都是没有任何SQL会使用,那么此时这些多余的索引其实会带来两个问题:1:浪费... 阅读全文

SQL*Plus环境下创建PLUSTRACE角色

2015-11-28 11:29 by 潇湘隐者, 1107 阅读, 收藏, 编辑
摘要:普通用户在SQL*Plus中开启AUTOTRACE报告时,遇到SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled错误。如下所示: SQL&gt; SQL&gt; set autotrace on; SP2-0618: Cannot find the Session Identifier. Check PL... 阅读全文

ORACLE SQL Developer日期显示格式设置

2015-11-21 10:49 by 潇湘隐者, 29368 阅读, 收藏, 编辑
摘要:ORACLE的SQL Developer工具默认的日期格式DD-MON-RR,在SQL查询中往往你看不到时间信息,此时你必须修改日期格式。具体如下所示 工具-&gt;首选项-&gt;数据库-&gt;NLS-&gt;日期格式: DD-MON-RR 修改为: YYYY-MM-DD HH24:MI:SS 阅读全文

ORA-04031错误导致宕机案例分析

2015-11-03 15:34 by 潇湘隐者, 7708 阅读, 收藏, 编辑
摘要:今天遇到一起ORACLE数据库宕机案例,下面是对这起数据库宕机案例的原因进行分析、解读。分析过程中顺便记录一下这个案例的前因后果,攒点经验值,培养一下分析、解决问题的能力。 案例环境: 操作系统 :Oracle Linux Server release 5.7 64 bit 数据库版本:Oracle Database 10g Release 10.2.0.4.0 - 64bit... 阅读全文

ORACLE数据库异步IO介绍

2015-10-25 21:41 by 潇湘隐者, 7515 阅读, 收藏, 编辑
摘要:异步IO概念 Linux 异步 I/O (AIO)是 Linux 内核中提供的一个增强的功能。它是Linux 2.6 版本内核的一个标准特性,当然我们在2.4 版本内核的补丁中也可以找到它。AIO 背后的基本思想是允许进程发起很多 I/O 操作,而不用阻塞或等待任何操作完成。稍后或在接收到 I/O 操作完成的通知时,进程就可以检索 I/O 操作的结果。 Linux IO模型(I... 阅读全文

ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []

2015-10-25 12:40 by 潇湘隐者, 2715 阅读, 收藏, 编辑
摘要:一ORACLE 10.2.0.5.0 标准版的数据库的告警日志出现ORA-00600错误,具体错误信息如下所示 Errors in file /u01/app/oracle/admin/SCM2/bdump/scm2_s003_20333.trc:ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], ... 阅读全文

ADDM Reports bug:Significant virtual memory paging was detected on the host operating system

2015-10-16 12:25 by 潇湘隐者, 1322 阅读, 收藏, 编辑
摘要:查看ADDM(数据库版本为ORACLE 10.2.0.5.0)报告时,发现其中有个结论非常不靠谱:Significant virtual memory paging was detected on the host operating system,具体内容如下所示: FINDING 2: 100% impact (3930 seconds)---------------------------... 阅读全文

化繁为简——分解复杂的SQL语句

2015-10-07 00:12 by 潇湘隐者, 8060 阅读, 收藏, 编辑
摘要:今天同事咨询一个SQL语句,如下所示,SQL语句本身并不复杂,但是执行效率非常糟糕,糟糕到一塌糊涂(执行计划也是相当复杂)。如果查询条件中没有NOT EXISTS部分,倒是不要一秒就能查询出来。 SELECT * FROM dbo.UVW_PDATest a WITH(NOLOCK)WHERE Remark=&#39;前纺&#39; AND Operation_Name=&#39;粗纱&#39; AND One_Status... 阅读全文

ORACLE数据库的限制

2015-08-19 16:42 by 潇湘隐者, 820 阅读, 收藏, 编辑
摘要:ORACLE数据库最多可以拥有多少个表空间(Tablespace)?数据库最多拥有多少个数据文件(Database files)、数据库的数据文件最大可以多大?遇到这些问题只能查询官方文档,人的记忆能力是有限的。正所谓好记性不如烂笔头。下面是ORACLE 10g数据库的一些限制,以供参考。 Physical Database Limits Item Type of Limit Li... 阅读全文

ORACLE数据库对比表结构

2015-07-21 12:23 by 潇湘隐者, 5430 阅读, 收藏, 编辑
摘要:有时候会有某种需求:需要对比两个表的表结构是否一致,有时候甚至是整个数据库所有表的表结构对比......。表结构对比无非就是字段名、字段类型、字段数据类型、以及字段的顺序的对比。如果需要对比表结构,可以通过下面简单的脚本实现: SELECT M.OWNER ,M.TABLE_NAME ,M.COLUMN_ID ,M.COLUMN_NAME ,M.DATA... 阅读全文

ORACLE查看数据文件包含哪些对象

2015-07-10 19:43 by 潇湘隐者, 3082 阅读, 收藏, 编辑
摘要:在上篇ORACLE查看表空间对象中,我介绍了如何查询一个表空间有那些数据库对象,那么我们是否可以查看某个数据文件包含那些数据库对象呢?如下所示 SELECT E.SEGMENT_TYPE AS SEGMENT_TYPE , E.SEGMENT_NAME AS SEGMENT_NAME , F.FILE_NAME A... 阅读全文

清理DBA_DATAPUMP_JOBS中的孤立数据泵作业

2015-07-02 23:26 by 潇湘隐者, 3756 阅读, 收藏, 编辑
摘要:今天在重构数据库时(将表空间中的表、索引转移到其它表空间)时,发现有两个奇怪的对象SYS_EXPORT_FULL_01、SYS_EXPORT_FULL_02搜索了一下,发现这个可能是EXPDP导出异常时遗留下的对象,但是搜到的资料不多,不能确认其具体用途以及该表是否删除。后来同事在metalink搜索到How To Cleanup Orphaned DataPump Jobs In DBA_DAT... 阅读全文

ORACLE查看表空间对象

2015-07-02 14:03 by 潇湘隐者, 11903 阅读, 收藏, 编辑
摘要:ORACLE如何查看表空间存储了那些数据库对象呢?可以使用下面脚本简单的查询表空间存储了那些对象: SELECT TABLESPACE_NAME AS TABLESPACE_NAME , SEGMENT_NAME AS SEGMENT_NAME , SUM(BYTES)/1024/1024 AS SEGMENT_SIZE FROM DBA_SEGM... 阅读全文

如何只授予用户查看存储过程定义的权限

2015-06-16 11:13 by 潇湘隐者, 16388 阅读, 收藏, 编辑
摘要:有个网友问我,如何授予某个用户只能查看某些存储过程的定义权限,而不能让用户去修改、执行存储过程。看似简单的问题,却因为从没有碰到这样的需求。花了点时间才梳理、总结清楚。 关于ORACLE账号的权限问题,一般分为两种权限: 系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、创建存储过程等 对象权限: 允许用户操纵一些特定的对象,如读取视图,... 阅读全文

ORA-07445&ORA-00108错误案例

2015-06-11 17:34 by 潇湘隐者, 1532 阅读, 收藏, 编辑
摘要:由于需要ORACLE的UAT测试环境,克隆了虚拟机后,修改IP地址后,启动实例遇到了ORA-07445 &amp;ORA-00108错误. 案例环境: SQL&gt; select * from v$version; BANNER----------------------------------------------------------------Oracle Database 10g Releas... 阅读全文

Oracle SQL Developer如何配置TNS

2015-05-31 23:57 by 潇湘隐者, 7008 阅读, 收藏, 编辑
摘要:安装了ORACLE的SQL Developer 4.0.3.16,但是连接数据库时,如果选择连接类型为“TNS”,无法获取网络别名,那么要如何设置,才能访问到TNS文件呢? 此时需要设置TNS_ADMIN环境变量指向tnsnames.ora文件所在目录,最简单的方法如下所示 C:\Users\konglb&gt;set tns_names=C:\OracleClient\Oracle32\prod... 阅读全文

ORACLE SQL调优案例一则

2015-05-30 22:54 by 潇湘隐者, 2369 阅读, 收藏, 编辑
摘要:收到监控告警日志文件(Alert)的作业发出的告警邮件,表空间TEMPSCM2不能扩展临时段,说明临时表空间已经被用完了,TEMPSCM2表空间不够用了 Dear All: The Instance SCM2&#39; alert log occured the ora errors ,please see the detail blow and take action for it. many th... 阅读全文

RMAN-03002, RMAN-06059, ORA-19625 and ORA-27037 When Running RMAN Backup of Archivelogs

2015-05-27 00:33 by 潇湘隐者, 1801 阅读, 收藏, 编辑
摘要:RMAN备份数据库时,出现下面错误错误信息: Starting backup at 25-MAY-15 current log archived allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=953 devtype=DISK RMAN-00571: ===========================================... 阅读全文

RMAN冷备份异机还原

2015-05-12 22:58 by 潇湘隐者, 2536 阅读, 收藏, 编辑
摘要:1:环境准备 在新的服务器上安装ORACLE实例,安装过程中需要注意源服务器与目标服务器的ORACLE_SID一致,另外确保安装路径与源路径一致(不仅是安装目录,甚至包括数据文件、控制文件目录、联机重做日志文件所在目录都要注意)。如果不一致相当麻烦,需要修改spfile。 2:RMAN做冷备份 使用cold_backup.sh将数据库备份到/u04/migration目录下面 mkdir ... 阅读全文

ORACLE OLAP错误ORA-06512: at "SYS.OLAPIHISTORYRETENTION"

2015-04-24 23:07 by 潇湘隐者, 1503 阅读, 收藏, 编辑
摘要:刚刚安装了ORACLE 10g R2后,启动数据库时发现告警日志有如下错误: Database Characterset is UTF8replication_dependency_tracking turned off (no async multimaster replication found)WARNING: AQ_TM_PROCESSES is set to 0. System ope... 阅读全文

expdp 报The value (30) of MAXTRANS parameter ignored错误的原因诊断

2015-04-20 11:18 by 潇湘隐者, 2038 阅读, 收藏, 编辑
摘要:在使用expdp导出一个表的数据时遇到了下面情况,也不见其提示报错信息,一下子就执行完了,也没有导出我需要的数据 [oracle@getlnx01 dump_dir]$ expdp system/xxxx TABLES=xxx.inv_workshop_stock dumpfile=inv_workshop_stock.dmp DIRECTORY=DUMP_DIR logfile=1.log; ... 阅读全文

ORA-01157 & ORA-01110

2015-04-17 16:32 by 潇湘隐者, 4182 阅读, 收藏, 编辑
摘要:测试服务器做了RMAN还原后,发现告警日志文件有如下错误信息ORA-01110: data file 206: &#39;/u04/epps/oradata/temp02.dbf&#39; Errors in file /u01/app/oracle/admin/epps/bdump/epps_j000_12672.trc:ORA-01157: cannot identify/lock data file 2... 阅读全文

INITIAL参数设置导致TRUNCATE TABLE不能降低高水位线案例

2015-04-16 16:58 by 潇湘隐者, 1019 阅读, 收藏, 编辑
摘要:在一个数据库使用下面SQL找出了一批需要降低高水位线的表,其中有几个表没有数据,于是我打算用TRUNCATE来降低高水位线HWM SELECT a.owner, a.segment_name, a.segment_type, a.tablespace_name, a.blocks &quot;real block&quot;, ... 阅读全文

ORA-19563: header validation failed for file

2015-04-15 22:28 by 潇湘隐者, 2704 阅读, 收藏, 编辑
摘要:在测试服务器还原数据库时遇到了ORA-19563错误。如下所示 RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: =============... 阅读全文

ORACLE NUMBER类型Scale为0引发的问题

2015-04-14 23:55 by 潇湘隐者, 3864 阅读, 收藏, 编辑
摘要:今天遇到了一个很有意思的NUMBER类型Scale引发的问题,我用一个简单的测试用例来展示一下这个案例。假如有个TEST的表,有个字段类型为NUMBER,我插入下面两条数据 CREATE TABLE TEST( Category VARCHAR(12), QTY NUMBER) INSERT INTO TESTSELECT &#39;M&#39;, 12 FROM DUAL UNION ALL... 阅读全文

ORA-04063: view "SYS.DBA_REGISTRY" has errors

2015-04-14 14:22 by 潇湘隐者, 3710 阅读, 收藏, 编辑
摘要:测试环境做了RMAN还原(从10.2.0.4.0 32bit 还原到 10.2.0.4.0 64bit)后,查询dba_registry系统视图时报如下错误 SQL&gt; select comp_name,version,status from dba_registry;select comp_name,version,status from dba_registry ... 阅读全文

ORACLE DELETE数据慢的案例

2015-04-03 16:33 by 潇湘隐者, 10801 阅读, 收藏, 编辑
摘要:今天遇到一个有意思的案例,一开发同事告诉我他删除一个表的记录非常慢,已经快1个多小时了还没有完成。而且删除的记录只有1百多条。真是大跌眼镜的一件事情。最后发现该表与多个表有外键关联关系(这个表即是主表、又是从表),最后我禁用引用该表的外键约束后。一秒内删除了记录。然后启用外键约束关系。下面记录、分析一下解决过程的思路(下面是在测试环境的记录,数据量不一样)。 我去处理这个问题时,首先怀疑可... 阅读全文

RMAN备份失败: ORA-19502 & ORA-27072: File I/O error

2015-03-23 12:23 by 潇湘隐者, 5389 阅读, 收藏, 编辑
摘要:早上检查一ORACLE数据库的RMAN备份的邮件时,发现出现了ORA-27072: File I/O error等错误,具体信息如下所示: channel ORA_DISK_1: starting piece 1 at 23-MAR-15RMAN-00571: ===========================================================RMAN-0056... 阅读全文

RMAN还原32位数据库到64位实例的错误处理

2015-03-10 19:52 by 潇湘隐者, 1186 阅读, 收藏, 编辑
摘要:将ORACLE 10g 32bit数据库还原到测试机ORACLE 10g 64bit的数据库实例上, 还原、恢复数据库后,使用open resetlogs打开数据库后,发现警告日志里面有ORA-12012以及ORA-06553错误: Sun Mar 8 13:31:08 2015LOGSTDBY: Validation completeStarting control autobackupC... 阅读全文

Oracle监听服务启动失败案例

2015-03-09 14:21 by 潇湘隐者, 8091 阅读, 收藏, 编辑
摘要:在ORACLE测试服务器上还原恢复了一个数据库后,启动监听服务时出现了TNS-12541, TNS-12560,TNS-00511之类的错误,具体情况如下所示: [oracle@getlnx01 admin]$ lsnrctl status LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 09-MAR-2015 09:13:29 Copy... 阅读全文

RMAN-06023: no backup or copy of datafile 1 found to restore

2015-03-07 21:56 by 潇湘隐者, 9857 阅读, 收藏, 编辑
摘要:在ORACLE 10g数据库还原过程遭遇RMAN-06023: no backup or copy of datafile x found to restore,具体情况如下所示 .....................................................................................File Name: /u03/flash_re... 阅读全文

ORA-00604: error occurred at recursive SQL level 1

2015-02-26 22:44 by 潇湘隐者, 19529 阅读, 收藏, 编辑
摘要:在测试环境中使用某个账号ESCMOWNER对数据库进行ALTER操作时,老是报如下错误: ORA-00604: error occurred at recursive SQL level 1 ORA-20016: (ALTER) Action denied as it is a protected object! ORA-06512: at line 7 不清楚发生了什么情况,于是想跟踪当... 阅读全文

ORACLE计算表引占用空间大小

2015-02-08 20:14 by 潇湘隐者, 11278 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,如何计算一个表所占用的存储空间呢?我们可以通过系统视图DBA_SEGMENTS、USER_SEGMETNS、DBA_TABLES来查看一个表所占空间的大小,如下所示: SELECT SEGMENT_NAME TABLE_NAME ,SUM(BLOCKS) BLOCKS ,SUM(BYTES)/(... 阅读全文

TNS-12540: TNS:internal limit restriction exceeded

2015-01-27 22:54 by 潇湘隐者, 2004 阅读, 收藏, 编辑
摘要:应用程序以及客户端工具(Toad、PL/SQL Developer等)出现突然连接不上数据库服务器的情况,监听日志listener.log里面出现了TSN-12518与TSN-12540错误,如下所示, 27-JAN-2015 10:10:19 * (CONNECT_DATA=(SERVICE_NAME=scm2)(CID=(PROGRAM=c:\windows\system32\in... 阅读全文

ORA-01012: not logged on

2015-01-23 16:16 by 潇湘隐者, 25777 阅读, 收藏, 编辑
摘要:关于ORA-01012这个错误,惜分飞的博客ORA-01012: not logged on里面已经做了一些介绍,原因就不多说了,看看他的描述说明:现象说明: 1)终于发现了ORA-01012错误,期待了很久。发现只有当sys登录系统,对数据库进行查询或者操作之时才会出现ORA-01012,其他用户... 阅读全文

ORACLE判别字段是否包含中文

2015-01-19 14:26 by 潇湘隐者, 25647 阅读, 收藏, 编辑
摘要:在ORACLE数据库中如何查找那些字段里面包含中文的数据记录呢,有时候就是有这样的特殊需求,下面整理了一些判别字段中包含中文记录的几个方法 1:使用ASCIISTR函数判别 ASCIISTR函数说明: ASCIISTR返回字符的ASCII形式的字符串。非ASCII的字符被转化为\xxxx的形式。 使用ASCIISTR函数也是根据非ASCII字符会被转化这个特性来判别中文字符,只要里... 阅读全文

ORACLE清理、截断监听日志文件(listener.log)

2015-01-16 00:41 by 潇湘隐者, 38034 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,如果不对监听日志文件(listener.log)进行截断,那么监听日志文件(listener.log)会变得越来越大,想必不少人听说过关于“LISTENER.LOG日志大小不能超过2GB,超过会导致LISTENER监听器无法处理新的连接”,当然这个不是真理,不会绝对出现,只是发生在老旧的32bit Linux或Unix系统下面,真实的原因是一些32bit O... 阅读全文

ORA-04091: table xxxx is mutating, trigger/function may not see it

2015-01-15 22:54 by 潇湘隐者, 3001 阅读, 收藏, 编辑
摘要:今天同事让我看一个触发器为什么老是报错,当执行DML语句触发触发器后,会报ORA-04091错误:ORA-04091: table xxxx is mutating, trigger/function may not see it 。对应的中文错误提示为:ORA-04091: 表 xxx发生了变化, 触发器/函数不能读它。 原因分析: [oracle@DB-Server ~]$ oerr ora ... 阅读全文

ORA-01950: no privileges on tablespace xxxx

2015-01-13 23:16 by 潇湘隐者, 23185 阅读, 收藏, 编辑
摘要:案例场景: 新建了一个表空间后TBS_MARKET_DAT,希望将归档的数据放置在这个表空间。 SQL&gt; CREATE TABLESPACE TBS_MARKET_DAT 2 DATAFILE &#39;/u04/oradata/gps/bookt_data_arch_01.dbf&#39; 3 SIZE 100M 4 AUTOEXTEND ON 5 NEXT 10M 6 MAXSIZE ... 阅读全文

专用服务器模式&共享服务器模式

2015-01-10 11:56 by 潇湘隐者, 5590 阅读, 收藏, 编辑
摘要:连接ORACLE服务器一般有两种方式:专用服务器连接(dedicated server)和共享服务器连接(shared server)。那么两者有啥区别和不同呢?下面我们将对这两者的区别与不同一一剖析。 专用服务器模式(dedicated server)模式 在专用服务器模式中,用户进程运行在客户端的机器上,专用服务器进程运行在数据库服务器,用户进程和专用服务器进程是... 阅读全文

ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序

2015-01-06 16:33 by 潇湘隐者, 16640 阅读, 收藏, 编辑
摘要:当你碰到ORA-12520错误时,如下所示: 英文:ORA-12520: TNS:listener could not find available handler for requested type of server 中文:ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序 一般你应该从下面两个方面考虑: 1:数据库是专用服务器,但是在tnsname.ora配置... 阅读全文

ORA-12523: TNS: 监听程序无法找到适用于客户机连接的例程

2015-01-06 15:55 by 潇湘隐者, 14915 阅读, 收藏, 编辑
摘要:今天使用PL/SQL Developer连接到一台新的测试服务器时,遇到ORA错误:ORA-12523: TNS: 监听程序无法找到适用于客户机连接的例程。对应的监听日志文件里面错误为TNS-12523: TNS:listener could not find instance appropriate for the client connection 首先使用oerr命令查看ORA-... 阅读全文

Warning: log write time 600ms, size 43KB

2015-01-05 00:03 by 潇湘隐者, 2090 阅读, 收藏, 编辑
摘要:突然才发现一个数据库的LGWR进程的跟踪文件scm2_lgwr_5690.trc有大量的告警信息,如下所示: Warning: ;log write time 680ms, size 11569KB*** ;2015-01-04 02:41:17.122Warning: ;log write time 520ms, size 2764KB*** ;2015-01-04 03:11:40.885... 阅读全文

RMAN还原遭遇ORA-32006&ORA-27102错误

2014-12-24 12:19 by 潇湘隐者, 1717 阅读, 收藏, 编辑
摘要:案例环境: 服务器A: 操作系统 : Red Hat Enterprise Linux ES release 4 (Nahant Update 6) 数据库版本: Oracle Database 10g Release 10.2.0.4.0 32bit Production 服务器B: 操作系统 : Oracle Lin... 阅读全文

TNS-12518 & Linux Error:32:Broken pipe

2014-12-15 14:40 by 潇湘隐者, 6469 阅读, 收藏, 编辑
摘要:最近一周,有一台ORACLE数据库服务器的监听服务在凌晨2点过几分的时间点突然崩溃,以前从没有出现过此类情况,但是最近一周出现了两次这种情况,检查时发现了如下一些信息: $ lsnrctl servicesLSNRCTL for Linux: Version 10.2.0.4.0 - Production on 12-DEC-2014 08:22:34Copyright (c) 1991,... 阅读全文

TNS-12502: TNS:listener received no CONNECT_DATA from client

2014-12-12 21:46 by 潇湘隐者, 3733 阅读, 收藏, 编辑
摘要:检查我们的一台ORACLE数据库的监听日志发现有不少TNS-12502错误信息。如下所示 TNS-12502: TNS:listener received no CONNECT_DATA from client09-DEC-2014 15:47:06 * (CONNECT_DATA=(SERVICE_NAME=epps)(CID=(PROGRAM=D:\Tasks\FGIS2MES\CEG... 阅读全文

ORACLE应用调优:请避免SQL做大量循环逻辑处理

2014-11-21 00:22 by 潇湘隐者, 2784 阅读, 收藏, 编辑
摘要:前阵子遇到一个案例:一个同事说以前一个运行很正常的包,突然间比以前慢了很多,执行时间非常长,晚上的作业调用这个包跑了几个小时也没有跑出数据。于是我在跟踪、优化过程中定位到包中一个存储过程的一段SQL,我将原SQL简化了一下(对应的表名、函数全都随机取名替换掉),大体如下所示,在一个游标中,循环更新表TMP_JO_ORDERS, 其中需要通过函数获取一些值,这些值用来更新目标表的字段值 ... 阅读全文

ORACLE查看SQL的执行次数/频率

2014-11-20 22:53 by 潇湘隐者, 18348 阅读, 收藏, 编辑
摘要:在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻辑上做出优化处理,要么是业务特殊性所导致。如果执行频繁的SQL,往往容易遭遇一些并发性的问题。 那么如何查看ORACLE数据库某个SQL的执行频率/次数呢? 有哪些途径方法呢? 方法1: 通过查询V$SQLAREA或V$SQL的EXECUT... 阅读全文

ORACLE会话连接进程三者总结

2014-11-16 00:15 by 潇湘隐者, 22791 阅读, 收藏, 编辑
摘要:概念介绍 通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息. 连接(Connection):连接是从客户端到ORACLE实例的一条物理路径。连接可以在网络上建立,或者在本机通过IPC机制建立。通常会在客户端进程与一个专用... 阅读全文

YourSQLDba设置共享路径备份

2014-11-14 21:43 by 潇湘隐者, 531 阅读, 收藏, 编辑
摘要:YourSQLDba可以将数据库备份到网络路径(共享路径),这个也是非常灵活的一个功能,以前一直没有使用过这个功能,最近由于一个需求,于是我测试了一下YourSQLDba备份到网络路径,中间遇到了一些问题,遂整理如下。 测试环境: 操作系统: Windows Server Standard 2012 数据库版本: SQL SERVER 2014 1:设置共享路径权限 ... 阅读全文

GRANT/SELECT View时的遭遇ORA-01720和ORA-01031错误

2014-11-14 12:30 by 潇湘隐者, 9669 阅读, 收藏, 编辑
摘要:关于创建视图遇到ORA-01031错误信息,请参考我以前整理的一篇文章Create view failed with ORA-01031:insufficient privileges,本来以为我那篇文章已经已经囊括了很多案例,但是今天遇到一个特殊案例,折腾了我比较久。下面通过几个例子来演示一下遭遇ORA-01031的来龙去脉。 在测试环境准备两个用户dm、ods并授予一定的权限,准备好我们演... 阅读全文

如何查看Oracle客户端版本

2014-11-10 15:36 by 潇湘隐者, 55018 阅读, 收藏, 编辑
摘要:在实际工作中,总会遇到一些需要查看、验证ORACLE客户端版本的问题,因为一台服务器可能装了多个Oracle客户端版本;也有可能你需要知道安装的版本是32位还是64位的。如何查看Oracle客户端(Oracle Client)的版本呢? 下面介绍一下在Windows、Linux下如何查看Oracle客户端版本的方法。 Windows平台: 方法1: 查看安装的Oracle客户端版本 如... 阅读全文

【转载】latch: cache buffers chains

2014-10-30 13:52 by 潇湘隐者, 765 阅读, 收藏, 编辑
摘要:本文转自惜分飞的博客,博客原文地址:www.xifenfei.com/1109.html,支持原创,分享知识! 当一个数据块读入sga区,相应的buffer header会被放置到hash列表上,我们称其这hash chains,chain在中文的意为链条或串的意思,表达就是关连性.如果一个进程想访问或修改hash chain上的block,它首先要获得”cache buffers c... 阅读全文

ORA-14450: attempt to access a transactional temp table already in use

2014-10-26 10:39 by 潇湘隐者, 3535 阅读, 收藏, 编辑
摘要:在ORACLE数据中修改会话级临时表时,有可能会遇到ORA-14550错误,那么为什么会话级全局临时表会报ORA-14450错误呢,如下所示,我们先从一个小小案例入手: 案例1: SQL&gt; CREATE GLOBAL TEMPORARY TABLE TEMP_TEST 2 ( 3 NAME VARCHAR2(12) 4 ) ON COMMIT PRESERVE ROWS;T... 阅读全文

ORACLE快速彻底Kill掉的会话

2014-10-19 09:12 by 潇湘隐者, 66771 阅读, 收藏, 编辑
摘要:在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION &#39;sid,serial#&#39;杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源,有时候你会发现锁定的资源很长时间也不会释放,即使会话状态为“KILLED”,依然会阻塞其它会话。 下面根据Eygel的&quot;Oracle中Kill session的研究&quot;,构造一个案例看看kill s... 阅读全文

ORA-01113: file xxxx needs media recovery

2014-10-16 00:23 by 潇湘隐者, 9940 阅读, 收藏, 编辑
摘要:由于规范存储位置以及存储空间调整缘故需要移动表空间MRP_INDEX2的数据文件,如下所示,首先将表空间MRP_INDEX2脱机; 然后复制数据文件;接着重命名数据文件,最后将表空间MRP_INDEX2联机. 在操作过后,最后一步将表空间MRP_INDEX2联机上线时,出现了意外错误信息,如下所示: SQL&gt; ALTER TABLESPACE MRP_INDEX2 OFFLINE NORMAL... 阅读全文

ORACLE回收站机制介绍

2014-10-06 16:09 by 潇湘隐者, 15491 阅读, 收藏, 编辑
摘要:回收站概念 从ORACLE 10g开始,引入了一个叫回收站(Recycle Bin)的概念。它的全称叫Tablespace Recycle Bin。回收站实际是一个逻辑容器(逻辑区域),原理有点类似于WINDOW系统的回收站。它以表空间中现有已经分配的空间为基础,而不是从表空间上物理划出一个固定区域用作回收站。这意味着回收站和表空间中的对象共用存储区域、系统没有给回收站预留空间。因此,当表被DR... 阅读全文

ORACLE临时表空间总结

2014-10-05 11:35 by 潇湘隐者, 72982 阅读, 收藏, 编辑
摘要:临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。像数据库中一些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERS... 阅读全文

ORACLE 11g 数据库体系结构图

2014-09-14 08:51 by 潇湘隐者, 5426 阅读, 收藏, 编辑
摘要:ORACLE 11g 的数据库体系结构图,非常全面、系统、高屋建瓴的整体介绍了ORACLE 11g 的数据库体系结构。如果能全面了解、清晰梳理、深入掌握这些知识点,相信对你了解学习、深入研究ORACLE不无裨益。如果图片放大展示不够清晰,请参考我上传的PDF附件ORACLE_11g_ARCHITECTURE.pdf 阅读全文

ORACLE 10g 数据库体系结构图

2014-09-13 13:12 by 潇湘隐者, 1279 阅读, 收藏, 编辑
摘要:ORACLE 10g 的数据库体系结构图(ORACLE 10g(Release 2)ARCHITECTURE),非常的全面、系统、高屋建瓴的整体介绍了ORACLE 10g 的数据库体系结构。如果能全面了解、清晰梳理、深入掌握这些知识点,相信对你了解学习、深入研究ORACLE不无裨益。如果图片放大展示不够清晰,请参考我上传的PDF附件ORACLE_10g_ARCHITECTURE.pdf 阅读全文

ORACLE 9i 数据库体系结构图

2014-09-13 12:42 by 潇湘隐者, 712 阅读, 收藏, 编辑
摘要:ORACLE 9i 的数据库体系结构图,非常的全面、系统、高屋建瓴的整体介绍了ORACLE 9i 的数据库体系结构。如果能全面了解、清晰梳理、深入掌握这些知识点,相信对你了解学习、深入研究ORACLE不无裨益。如果图片放大展示不够清晰,请参考我上传的PDF附件ORACLE_9i_ARCHITECTURE.pdf 阅读全文

SQL*Plus中替换变量与定义变量

2014-09-11 21:25 by 潇湘隐者, 7280 阅读, 收藏, 编辑
摘要:替换变量 SQL*Plus中的替换变量又叫替代变量,它一般用来临时存储相关数据;在SQL语句之间传递值。一般使用&amp;或&amp;&amp;前缀来指定替换变量. 关于使用替换变量,一般是利用其创建通用的脚本或达到和用户交换目的。如下所示: 例如,我需要查看表的相关信息,如果不使用替换变量,每次查询我都要修改脚本。非常不便,如果使用替换变量,我们可以将下面脚本存放在tab.sql脚本中,每次运行时,只需要输入替换变... 阅读全文

Oracle数据泵(Data Dump)错误汇集

2014-09-07 13:15 by 潇湘隐者, 12139 阅读, 收藏, 编辑
摘要:Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法。都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的错误案例,都会补充在此篇。 错误案例1: ORA-39065: DISPATCH 中出现意外的主进程异常错误;ORA-44002: 对象名无效 Windows 平... 阅读全文

ORACLE告警日志文件

2014-08-08 15:48 by 潇湘隐者, 50229 阅读, 收藏, 编辑
摘要:告警日志介绍 告警日志文件是一类特殊的跟踪文件(trace file)。告警日志文件命名一般为alert_.log,其中SID为ORACLE数据库实例名称。数据库告警日志是按时间顺序记录message和错误信息。 告警日志位置 在ORACLE 10g中,BACKGROUND_DUMP_DEST参数确定了告警日志的位置,但是告警日志的文件名无法修改,告警日志的名称为:alert_.log... 阅读全文

中断ORACLE数据库关闭进程导致错误案例

2014-08-07 10:38 by 潇湘隐者, 10872 阅读, 收藏, 编辑
摘要:昨晚下班的时候,我准备关闭本机的虚拟机上的ORACLE数据库后准备下班,但是由于我SecureCRT开了多个窗口,结果一不小心,疏忽之下在一个生产服务器上执行了shutdown immediate命令,大概过了6到7秒,发现该命令还没有响应,我才发现我这个命令执行错了服务器。一惊之下,想都没有想直接CTRL+C想中断这个操作。 如下所示: SQL&gt; shutdown immeidate; SP... 阅读全文

ORACLE外部表总结

2014-08-06 12:19 by 潇湘隐者, 19645 阅读, 收藏, 编辑
摘要:外部表介绍ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不... 阅读全文

ORACLE动态采样分析

2014-07-19 15:01 by 潇湘隐者, 4217 阅读, 收藏, 编辑
摘要:动态采样概念 动态采样(Dynamic Sampling)是在ORACLE 9i Release 2中开始引入的一个技术,引入它的目的是为了应对数据库对象没有分析(统计信息缺失)的情况下,优化器生成更好的执行计划。简单的说,在数据库段(表、索引、分区)对象没有分析的情况下,为了使CBO优化器得到足够多的信息以保证优化器做出正确执行计划而发明的一种技术。它会分析一定数量段对象上的数据块... 阅读全文

ORACLE优化器RBO与CBO介绍总结

2014-07-14 10:38 by 潇湘隐者, 36002 阅读, 收藏, 编辑
摘要:RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO) RBO: Rule-Based Optimization 基于规则的优化器 CBO: Cost-Based Optimization ... 阅读全文

ORA-00600: internal error code, arguments: [LibraryCacheNotEmptyOnClose]

2014-07-12 09:11 by 潇湘隐者, 1510 阅读, 收藏, 编辑
摘要:案例环境: 操作系统版本: Red Hat Enterprise Linux ES release 4 数据库版本 : 10.2.0.4.0 32 bit 案例介绍: 今天我执行stop_oracle.sh脚本关闭数据库时遭遇了ORA-00600: internal error code, arguments: [LibraryCacheNotEmptyOnClose], [], [... 阅读全文

ORACLE VARCHAR2最大长度问题

2014-07-09 15:53 by 潇湘隐者, 149118 阅读, 收藏, 编辑
摘要:VARCHAR2数据类型的最大长度问题,是一个让人迷惑的问题,因为VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型。简单的说,要看你在什么应用场景下,否则难以回答VARCHAR2数据类型的最大长度问题。 ORACLE数据库字段类型 关于Oracle Database中的字段的VARCHAR2类型的最大长度,我们先看下面的例子: ... 阅读全文

ORA-02429: cannot drop index used for enforcement of unique /primary key

2014-06-19 17:05 by 潇湘隐者, 8167 阅读, 收藏, 编辑
摘要:相信不少人遇到过ORA-02429: cannot drop index used for enforcement of unique /primary key 这个错误,对应的中文提示“ORA-02429: 无法删除用于强制唯一/主键的索引”,其实从错误提示信息已经很明显了。下面还是用一个简单的例子述说一下该错误的来龙去脉。 ORA-02429错误的原因是因为用户试图删除一个用于强制唯一/主键的... 阅读全文

ORA-06502:PL/SQL :numberic or value error: character string buffer too small

2014-06-19 14:57 by 潇湘隐者, 37142 阅读, 收藏, 编辑
摘要:今天遇到一个错误提示:ORA-06502:PL/SQL :numberic or value error: character string buffer too small,一般对应的中文信息为:ORA-06502: PL/SQL: 数字或值错误 :字符串缓冲区太小。仔细检查调试过程中才发现是开发人员定义了一个变量,但是在脚本里面赋予了该变量超过其长度的值。结果就报这个错误。我习惯总结每一个遇到... 阅读全文

Oracle RAMN 备份解决方案一例

2014-06-15 11:06 by 潇湘隐者, 1987 阅读, 收藏, 编辑
摘要:以前在博客里面介绍了RMAN备份脚本一列分享,通过RMAN备份到本地路径,然后通过FTP将备份文件上传到FTP服务器。 下面简单介绍另外一例RMAN备份解决方案,下面是我简单画的一个图(很少画图,感觉有点粗制滥造)。 首先将数据库备份到本地服务器的一个目录下(目录是按日期格式生成,本地备份保留周期视存储情况而定.一般一天即可)。 然后将备份文件通过Symantec Backup Exec ... 阅读全文

RMAN备份脚本一列分享

2014-05-26 23:26 by 潇湘隐者, 3940 阅读, 收藏, 编辑
摘要:在ORACLE数据库中,RMAN备份的脚本非常多,下面介绍一例shell脚本如何通过RMAN备份,以及FTP上传RMAN备份文件以及归档日志文件的脚本。 fullback.sh 里面调用RMAN命令做数据库备份,它使用的cmdfile为/home/oracle/backup/bin/fullback.rcv,同时在/home/oracle/backup/logs目录下生成日志文件。 1: ... 阅读全文

ORACLE字符集基础知识

2014-05-23 23:33 by 潇湘隐者, 56862 阅读, 收藏, 编辑
摘要:概念描叙 ORACLE数据库有国家字符集(national character set)与数据库字符集(database character set)之分。两者都是在创建数据库时需要设置的。国家字符集主要是用于NCHAR、NVARCHAR、NCLOB类型的字段数据,而数据库字符集使用很广泛,它用于:CHAR、VARCHAR、CLOB、LONG类型的字段数据; ORACLE的字符集名字... 阅读全文

RMAN异机还原遭遇ORA-19698错误案例

2014-05-16 09:01 by 潇湘隐者, 5519 阅读, 收藏, 编辑
摘要:实验环境: 操作系统 :Oracle Linux Server release 5.7 64 bit 数据库版本:Oracle Database 10g Release 10.2.0.4.0 - 64bit Production 案例说明: 为了测试、验证备份的有效性,需要将服务器A上的数据库的备份集还原到服务器B上,服务器B上... 阅读全文

Oracle system identifier(SID) "xxx" alread exits. Specify another SID

2014-05-14 11:16 by 潇湘隐者, 3696 阅读, 收藏, 编辑
摘要:案例环境: 操作系统 :Oracle Linux Server release 5.7 64 bit 数据库版本:Oracle Database 10g Release 10.2.0.4.0 - 64bit Production案例介绍: 在一个刚刚安装实例的服务器,使用dbca创建新的数据库时,在... 阅读全文

ORA-12516:TNS:listener could not find available handler with matching protocol stack

2014-05-13 16:22 by 潇湘隐者, 23515 阅读, 收藏, 编辑
摘要:应用程序连接测试数据库时报ORA-12516:TNS:listener could not find available handler with matching protocol stack 检查监听日志文件,发现大量的TNS-12516错误 cd /u01/app/oracle/product/10.2.0/db_1/network/log more listener.... 阅读全文

ORACLE编译失效对象小结

2014-05-12 16:50 by 潇湘隐者, 37949 阅读, 收藏, 编辑
摘要:在日常数据库维护过程中,我们会发现数据库中一些对象(包Package、存储过程Procedure、函数Function、视图View、同义词.....)会失效,呈现无效状态(INVALID)。有时候需要定期检查数据库中存在哪些失效对象,对于存在异常的对象需要重新编译,有些自动失效的对象,一般会在下次... 阅读全文

虚拟机VMWARE上ORACLE License 的计算

2014-04-21 15:32 by 潇湘隐者, 3906 阅读, 收藏, 编辑
摘要:Oracle License的计算有两种方式:按照用户数和CPU个数. 其中按CPU计算方式如下: License Number = The Number of CPU Cores * Core Factor 其中Core Factor 可以参考官方文档 Oracle Processor Core Factor 。 如果Oracle 安装在VMWARE 上,是否也是按照这个方式计算呢?... 阅读全文

ORACLE 移动数据文件 控制文件 重做日志文件

2014-04-20 09:59 by 潇湘隐者, 3790 阅读, 收藏, 编辑
摘要:ORACLE数据库有时候需要对存储进行调整,增加分区、IO调优等等,此时需要移动数据文件、重做日志文件、控制文件等等,下文结合例子总结一下这方面的知识点。 进行数据文件、重做日志文件、控制文件的迁移前,需要总体了解一下当前Linux服务器的磁盘、分区信息,以及服务器文件使用情况,如下所示 查看Linux服务器的文件使用情况 1: [root@DB-Server ~]# ... 阅读全文

ORACLE opatch命令学习实践

2014-04-15 17:45 by 潇湘隐者, 13095 阅读, 收藏, 编辑
摘要:opatch 是ORACLE开发的用来安装,卸载,检测patch冲突、管理ORACLE所有已经安装的补丁的工具,当然这是一个命令工具。opatch命令工具一般位于$ORACLE_HOME/OPatch/下, 1: 查看opatch帮助信息 一般可以用./opatch -help来查看帮助提示。不同版本的opatch的命令有所差异,通过help看到的信息估计有所出入。虽然opatch只有... 阅读全文

ORACLE查看补丁出现“OPatch failed with error code 1”

2014-04-12 08:43 by 潇湘隐者, 3275 阅读, 收藏, 编辑
摘要:案例场景: 在Oracle Linux Server release 5.7上安装完ORACLE 10g后,顺便将PSR(Patch Set Release)p6810189_10204_Linux-x86-64.zip也安装了。结果在查看补丁时出现了下面情况 [oracle@DB-Server OPatch]$ ./opatch lsinventory Invo... 阅读全文

ORA-27125: unable to create shared memory segment

2014-04-10 22:38 by 潇湘隐者, 5954 阅读, 收藏, 编辑
摘要:案例环境: 操作系统环境 : Oracle Linux Server release 5.7 x86_64 数据库版本 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi 在安装Oracle安装过程中,dbca 建instance的,遇到如下错误:ORA-27125: unable to create ... 阅读全文

ORA-01102: cannot mount database in EXCLUSIVE mode

2014-04-10 15:40 by 潇湘隐者, 32226 阅读, 收藏, 编辑
摘要:安装完ORACEL 10g数据库后,启动数据库时遇到ORA-01102: cannot mount database in EXCLUSIVE mode [oracle@DB-Server ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Thu Apr 10 13:53:08... 阅读全文

RMAN异机恢复遭遇ORA-01547、ORA-01152、ORA-01110错误案例

2014-04-03 00:22 by 潇湘隐者, 7524 阅读, 收藏, 编辑
摘要:测试环境: 操作系统 : Red Hat Enterprise Linux ES release 4 (Nahant Update 4) VMWARE 数据库 : Oracle Database 10g Release 10.2.0.4.0 - Production 简要介绍,一台服务器A位于虚拟机VMWARE上,由于测试需要,在VMWARE上克隆了... 阅读全文

ORA-00600: internal error code, arguments: [17281], [1001], [0x1FF863EE8], [], [], [], [], []

2014-04-01 14:57 by 潇湘隐者, 1978 阅读, 收藏, 编辑
摘要:我们生产服务器中的一个数据库发出监控告警日志的邮件,内容如下所示,在31号09:11分出现了大名鼎鼎的ORA-00600错误。Dear All: The Instance xxx&#39; alert log occured the ora errors ,please see the detail blow and take action for it. many thanks! ----------------------------------------- The errors is blow----------------------------------------------- 阅读全文

ORACLE定期清理INACTIVE会话

2014-03-31 22:25 by 潇湘隐者, 33699 阅读, 收藏, 编辑
摘要:ORACLE数据库会话有ACTIVE、INACTIVE、KILLED、 CACHED、SNIPED五种状态。INACTIVE状态的会话表示此会话处于非活动、空闲、等待状态。例如PL/SQL Developer连接到数据库,执行一条SQL语句后,如果不继续执行SQL语句,那么此会话就处于INACTIVE状态。一般情况下,少量的INACTVIE会话对数据库并没有什么影响,如果由于程序设计等某些原因... 阅读全文

ORA-14452的出现原因解析及解决方法

2014-03-26 23:46 by 潇湘隐者, 14684 阅读, 收藏, 编辑
摘要:在删除临时表时遇到了ORA-14452错误:ORA-14452: attempt to create , alert or drop an index on temporary table already in use。第一次碰到这种情况,问题解决过后,为了加深理解,特意参考网上资料,做了下面实验重现错误出现的场景,以及应该如何解决.会话级临时表由于实验需要两个或多个会话配合,所以使用SET SQLPROMPT来标识会话,如下所示,SESSION 1与SESSION 2:Step 1:在会话1中创建了会话级的临时表TMP_TEST 1 SQL&gt; SET SQLPROMPT &quot;S 阅读全文

Oracle 释放flash recovery area的四种方法

2014-03-19 15:15 by 潇湘隐者, 8389 阅读, 收藏, 编辑
摘要:早上收到一台Linux服务器磁盘告警邮件以及监控告警日志程序发来的邮件。检查过后,发现Linux服务器中一个分区没有空间了。主要原因是由于昨晚程序员做升级时,产生了大量的归档日志,导致联机重做日志无法归档,出现下面错误: 363 | Wed Mar 19 02:33:16 2014 | ORA-00312: online log 2 thread 1: &#39;/u01/app/oracle/orad... 阅读全文

Create view failed with ORA-01031:insufficient privileges

2014-03-14 14:35 by 潇湘隐者, 2963 阅读, 收藏, 编辑
摘要:有时候在ORACLE数据库创建视图时会遇到:ORA-01031:insufficient privileges错误,我也多次碰到了各种创建视图出错的情况,很多时候也没有太在意,今天被一同事问起这个问题,顺便总结一下出错的各种场景。 场景1:使用sys或system账号登陆数据库,创建dm、ods账号(授予connect、resource角色) 1: [... 阅读全文

Linux下Oracle 10.2.0.1升级到10.2.0.4总结

2014-03-12 17:26 by 潇湘隐者, 9255 阅读, 收藏, 编辑
摘要:最近部署测试环境时,将测试环境ORACLE数据库从10.2.0.1升级到了10.2.0.4,顺便整理记录一下升级过程。 实验环境: 操作系统:Oracle Linux Server release 5.7 数据库:Oracle 10.2.0.1 下载解压补丁包 1: [oracle@DB-Server tmp]$ unzip p6810189_10204_Lin... 阅读全文

TNS-12541: TNS:no listener TNS-12560 TNS-00511: No listener

2014-03-10 11:24 by 潇湘隐者, 21714 阅读, 收藏, 编辑
摘要:为了测试需要,系统管理员帮忙将一台ORACLE数据库服务器克隆到虚拟机上,我上去删除了root、oracle、tomcat账号下的crontab定时作业,然后启动了ORACLE数据库实例,删除了ORACLE下的作业,然后启动监听时报如下错误: [oracle@EGMLNX02 admin]$ lsnrctl stop LSNRCTL for Linux: Version 10.2.0.... 阅读全文

ORACLE触发器判断是否更新了某个字段

2014-03-06 17:03 by 潇湘隐者, 16283 阅读, 收藏, 编辑
摘要:今天遇到一个有意思的小问题,一同事有这样一个需求:在更新表T时,如果只是更新字段C,那么不希望触发该该表的触发器去处理业务逻辑。即想在触发器中做出判断:如果更新了字段C,那么跳出触发器,不处理业务逻辑,如果是更新其它字段,那么让触发器去处理业务逻辑。 他是这样做的 1: if :NEW.C != :OLD.C then ... 阅读全文

ORA-01078: failure in processing system parameters & LRM-00109: could not open parameter file

2014-02-25 18:13 by 潇湘隐者, 21319 阅读, 收藏, 编辑
摘要:安装了Oracle 12C后,启动数据库的过程中出现如下错误 SQL&gt; startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file &#39;/u01/app/oracle/product/12.1.0/db_1/dbs/initepps... 阅读全文

ORA-27125: unable to create shared memory segment

2014-01-14 18:20 by 潇湘隐者, 4729 阅读, 收藏, 编辑
摘要:平台环境 : Oracle Linux Server release 5.7 x86_64 数据库版本 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi 在安装Oracle安装过程中,dbca 建instance的,遇到如下错误 以前遇到安装ORACLE成功后,启动过程中遇到OR... 阅读全文

Oracle Linux(64位)安装64位Oracle10g遇到ins_ctx.mk问题

2014-01-14 17:18 by 潇湘隐者, 28252 阅读, 收藏, 编辑
摘要:在Oracle Linux Server Release 5.7上安装64位Oracle 10g 时,遇到如下问题: Error in invoking target &#39;install&#39; of makefile &#39;/u01/app/oracle/product/dbhome_1/ctx/lib/ins_ctx.mk&#39;. See &#39;/u01/app/oracle/oraInventory... 阅读全文

Oracle数据库shutdown immediate被hang住的几个原因

2014-01-05 23:08 by 潇湘隐者, 7691 阅读, 收藏, 编辑
摘要:实验操作环境: 操作系统:Red Hat Enterprise Linux ES release 4 (Nahant Update 6) 数据库 : Oracle Database 10g Release 10.2.0.4.0 – Production 32bit 今晚使用shutdown immediate(其实是执行... 阅读全文

ORACLE数据库汉字占几个字节问题

2013-12-10 10:31 by 潇湘隐者, 26683 阅读, 收藏, 编辑
摘要:一同事由于系统需求关系,将SQL SERVER数据库的一个表导入ORACLE数据库时,发现居然报错:ORA-12899: value too large for column xxxx (actual:56, maximum:50),该字段长度在两个数据库都是50,之所以出现这个错误,原因无外乎两个: 一:因为ORACLE数据库它可以存储字节或字符,例如 CHAR(12 BYTE) CHAR(1... 阅读全文

Oracle shutdown immediate无法关闭数据库解决方法

2013-11-21 14:52 by 潇湘隐者, 41568 阅读, 收藏, 编辑
摘要:在测试服务器上使用shutdown immediate命令关闭数据库时,长时间无法关闭数据库,如下所示 1: [oracle@DB-Server admin]$ sqlplus / as sysdba 2: 3: SQL*Plus: Release 10.2.0.4.0 - Production on Thu Nov 21 ... 阅读全文

ORA-02266: unique/primary keys in table referenced by enabled foreign keys

2013-11-19 16:37 by 潇湘隐者, 6867 阅读, 收藏, 编辑
摘要:在数据库里面使用TRUNCATE命令截断一个表的数据时,遇到如下错误 SQL &gt;TRUNCATE TABLE ESCMOWNER.SUBX_ITEM ORA-02266: unique/primary keys in table referenced by enabled foreign keys 有时候对应的中文错误提示为:ORA-02266: 表中的唯一/主键被启用的外部关键字引用,一般... 阅读全文

ORACLE表空间管理维护

2013-11-11 23:24 by 潇湘隐者, 34874 阅读, 收藏, 编辑
摘要:1:表空间概念 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构。从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成。 如下图所示,一个数据库由对应一个或多个表空间,表空间逻辑上有一个或多个段(Segment)组成,物理上由一个或多个os file组成。 1.1基本的表空间 系统中默认创建的几个表空间: ... 阅读全文

ORACLE 12C新特性——CDB与PDB

2013-10-24 22:17 by 潇湘隐者, 74827 阅读, 收藏, 编辑
摘要:Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关.. 阅读全文

ORACLE数据库SQL语句的执行过程

2013-10-08 11:58 by 潇湘隐者, 16641 阅读, 收藏, 编辑
摘要:SQL语句在数据库中处理过程是怎样的呢?执行顺序呢?在回答这个问题前,我们先来回顾一下:在ORACLE数据库系统架构下,SQL语句由用户进程产生,然后传到相对应的服务端进程,之后由服务器进程执行该SQL语句,如果是SELECT语句,服务器进程还需要将执行结果回传给用户进程。SQL语句的执行过程一般如下:解析(PARSE)—— 绑定(BIND)——执行(EXECUTE)——提取(FETCH 只有SELECT才需要这步)解析服务器进程接收到一个SQL语句时,首先要将其转换成执行这个SQL语句的最有效步骤,这些步骤被称为执行计划。Step 1:检查共享池中是否有之前解析相同的SQL语句后所存储的.. 阅读全文

Linux iptables配置错误导致ORA-12535 & ORA-12170

2013-09-17 11:27 by 潇湘隐者, 2039 阅读, 收藏, 编辑
摘要:实验环境: 操作系统 : Red Hat Enterprise Linux Server release 5.7 (Tikanga) 数据库版本: Oracle Database 12c Release 12.1.0.1.0 - 64bit Production前两天在服务器上安装了ORACLE 12c后,从客户端连接到数据库的时候,出现ORA-12170错误,由于以前在博客的ORA-12170:TNS:连接超时总结过这个问题,所以很快定位到是防火墙问题,于是编辑iptables,开放1521端口,然后重新启动防火墙-A RH-Firewall-1-INPUT -p tcp -m state 阅读全文

ORA-12520: TNS:listener could not find available handler for requested type of server

2013-09-15 00:05 by 潇湘隐者, 6477 阅读, 收藏, 编辑
摘要:当你碰到ORA-12520错误时,如下所示:英文错误提示:ORA-12520: TNS:listener could not find available handler for requested type of server中文错误提示:ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序一般你应该从下面两个方面去检查出错原因并解决问题:1:数据库是专用服务器,但是在tnsname.ora配置文件中设置的连接方式是shared,这种情况需要修改tnsname.ora配置文件,这种错误情况一般发生在第一次连接数据库服务器。2:运行正常的数据库服务器,突然报ORA- 阅读全文

Linux 平台安装Oracle Database 12c

2013-09-13 18:50 by 潇湘隐者, 66391 阅读, 收藏, 编辑
摘要:1)下载Oracle Database 12cRelease 1安装介质官方的下载地址:1:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html2:https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number=16496132URL地址2需要先注册,然后才能登陆下载,注册登陆界面https://edelivery.oracle.com关于这两者有啥区别: 听一个同事说,用metalink 账号下载的安装文件完 阅读全文

ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information

2013-09-05 22:18 by 潇湘隐者, 1140 阅读, 收藏, 编辑
摘要:这篇文章是上篇文章”Expdp 导数错误 ORA-00832”的延续,前几天工作比较忙、累,直到今天才整理发出来。这个数据库实例的参数设置比较诡异其实是有原因的,由于这台数据库服务器系统是32位,数据库也是32位的。对于绝大部分32位系统上的32位数据库,SGA最大的设置都不能超过2G,有的系统最大值甚至不能超过1.7G左右。DBA为了让内存充分利用,不至于浪费内存资源,于是想让SGA_MAX_SIZE最大化,对数据库相关参数做了调整,设置参数USE_INDIRECT_DATA_BUFFERS为TRUE,调整SGA_MAX_SIZE为3424M,然而使用USE_INDIRECT_DATA_B. 阅读全文

Expdp 导数错误 ORA-00832

2013-09-03 23:40 by 潇湘隐者, 2457 阅读, 收藏, 编辑
摘要:问题实验环境 操作系统:Red Hat Enterprise Linux Server release 5.7 (Tikanga) 数据库 :Oracle Database 10g Release 10.2.0.4.0 - Production错误再现分析在使用数据泵导数据时,遇到下面错误:[oracle@gsp db_expd_bak]$ expdp system/xxxx directory=dump_dir dumpfile=dm.dmp tablespaces=dm content=all;Export: Release 10.2.0.4.0 - Production on Thurs 阅读全文

ORACLE关闭启动的诡异错误

2013-08-28 23:28 by 潇湘隐者, 7218 阅读, 收藏, 编辑
摘要:在自己虚拟机搭建的ORACLE数据库环境下,折腾捣鼓做实验时,不知道什么特殊的改动、操作导致从SQL*PLUS里启动数据库实例时,报如下错误:然后用startup nomout启动时,任然报ORA-10997,ORA-09968等错误,于是查看了一下ora相关进程,发现数据库的进程都在,也就是说在某次关闭数据库时,出现了异常导致数据库实例根本没有关闭的情况下出现了该错误((期间我使用shutdown immediate后,还没看到出结果,一不小心点错了,就将SecureCRT关闭了)),于是出现了下面一幕:于是使用 shutdown immediate 命令关闭数据库,结果报ORA-24324 阅读全文

ORACLE临时表总结

2013-08-27 20:23 by 潇湘隐者, 89293 阅读, 收藏, 编辑
摘要:临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别。它只能存储在临时表空间,而非用户的表空间。ORACLE临时表是会话或事务级别的,只对当前会话或事务可见。每个会话只能查看和修改自己的数据。 临时表语法临时表分类ORACLE临时表有两种类型:会话级的临时表和事务级的临时表。1)ON COMMIT DELETE ROWS它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMIT)后,临时表的暂时段将被自动截断(TRUNCATE),但是临时表的结构 以及元数据还存储在用户的数据字典中 阅读全文

ORACLE基本数据类型总结

2013-08-17 21:04 by 潇湘隐者, 171641 阅读, 收藏, 编辑
摘要:ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW&amp; RAW类型、ROWID &amp; UROWID类型。在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的 阅读全文

ORACLE 博客文章目录(2015-05-27更新)

2013-08-13 23:30 by 潇湘隐者, 8547 阅读, 收藏, 编辑
摘要:从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理、归纳分类,方便自己和大家查看、翻阅。 ORACLE数据类型 ORACLE基本数据类型总结 ORAC 阅读全文

ORACLE的SPFILE与PFILE

2013-08-12 22:35 by 潇湘隐者, 53051 阅读, 收藏, 编辑
摘要:ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件。 服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制. 阅读全文

RHEL6 64位系统安装ORACLE 10g 64bit 数据库

2013-08-10 22:12 by 潇湘隐者, 17668 阅读, 收藏, 编辑
摘要:记得去年4月份的时候,为公司部署测试环境和UAT环境时,在红帽RHEL6 64位系统安装ORACLE 10g 64位数据库时遇到了许多小问题,当时匆匆忙忙也没记录一下这些问题,前几天在虚拟机安装ORACLE 64位 10g时,又有一些常见问题又遇到了,顺便整理一下这篇文章。也许在RHEL6 64版本上安装64位Oracle 10g 的问题是最多的,估计很多人都被这个虐过无数次(很多人都是Oracle虐我无数遍,我待Oracle如初恋)。从网上搜索关于这方面的内容就可见一斑。好,废话少说,正式进入正题。步骤1:准备系统以及在虚拟机上设置共享目录DataBase,准备数据库安装介质。有些细节东西. 阅读全文

ORA-01502: index ‘index_name' or partition of such index is in unusable state

2013-08-10 11:59 by 潇湘隐者, 10698 阅读, 收藏, 编辑
摘要:错误现象: 今天发布脚本时,一个表插入数据时报如下错误 ORA-01502: index ‘index_name&#39; or partition of such index is in unusable state ORA-06512: at line 168 错误原因: 这个错误一般是因为索引状态为UNUSABLE引起的。你可以通过下面SQL,查看索引的状态SELECT OWNER, INDEX_NAME,STATUS FROM DBA_INDEXES WHERE INDEX_NAME=&#39;INDEX_NAME&#39; SELECT OWNER, INDEX_NAME,STATU 阅读全文

ORA-19502: write error on file "xxxxx", block number xxxx

2013-08-08 08:25 by 潇湘隐者, 20786 阅读, 收藏, 编辑
摘要:错误现象:在ORACLE 10g下为表空间IGNITE_EGVSQL01增加数据文件时,报如下错误: SQL&gt; ALTER TABLESPACE IGNITE_EGVSQL01 ADD DATAFILE &#39;/oradata/ignt/ignite_egvsql01_d02.dbf&#39; SIZE 40... 阅读全文

SQL*Plus环境变量设置浅析

2013-08-02 15:11 by 潇湘隐者, 4384 阅读, 收藏, 编辑
摘要:SQL*Plus的使用环境是可以通过login.sql 或 glogin.sql脚本来设置的,可能很多初学者或不习惯使用SQL*Plus的老鸟都不知道。因为在如今UI工具(Toad、PL/SQL Developer..)大行其道的年代,SQL*Plus这种命令工具渐渐被冷落了,可能只是偶尔被用用,不过这并不妨碍它被很多DBA或SQL*Plus爱好者广泛使用。 其中glogin.sql文件是全局设置文件,位于$ORACLE_HOME/sqlplus/admin下,而login.sql文件属于个性化设置文件,则可以位于任何位置。既可以通过SQLPATH环境变量设置或不设置。 SQL*Plus启动. 阅读全文

PL/SQL重新编译包无反应

2013-07-31 12:12 by 潇湘隐者, 3899 阅读, 收藏, 编辑
摘要:前几天碰到一个有趣的事情:早上同事执行一个包很久没有反应,就中断了执行,发邮件让我帮忙查看具体情况,我用PL/SQL Developer登录后,找到这个包的过程中发现这个包的图标有红色叉叉,也就是说这个包有地方没有编译通过,于是我便单击右键点击“重新编译”,结果一直没有响应,导致PL/SQL Developer直接卡死,刚开始没太留意,直接杀掉PL/SQL Developer相关进程,重新打开它然后编译这个包,结果还是这个情况,还是头一次遇到这种情况,一头雾水. 后来搜索了一下才知道原因: 1:当包正在被调用执行时,编译该包会导致无响应情况。 2:包中的对象或依赖对象被其它sessio... 阅读全文

Symantec Backup Exec 2012 Agent for Linux 卸载

2013-07-24 21:57 by 潇湘隐者, 2009 阅读, 收藏, 编辑
摘要:本文介绍一下如何卸载Symantec Backup Exec 2012 Agent for Linx。首先我们来看看Symantec_Backup_Exec2012管理员手册的文档介绍:卸载 Agent for Linux1 在 Linux 服务器上,将 Backup Exec 安装介质插入相应的设备中。2 以 root 身份登录到要从中卸载 Linux Agent 的服务器。3 导航到 Backup Exec 安装介质上的以下目录:4 启动 uninstallralus 脚本。例如:./uninstallralus5 执行以下操作之一:键入 Linux 服务器的名称、IP 地址或完全限定域. 阅读全文

Symantec Backup Exec 2012 Agent For Linux安装

2013-07-24 21:25 by 潇湘隐者, 9306 阅读, 收藏, 编辑
摘要:Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能。借助于强大的 Symantec V-Ray 技术,Backup Exec 2012 可以恢复整个服务器、关键 Microsoft 应用程序以及 VMware 或 Microsoft Hyper-V 虚拟环境,从而最大限度减少业务停机。 主要功能使用获得专利的 V-Ray 技术,通过一次性备份在数秒内轻松地恢复虚拟机、应用程序、数据库、文件/文件夹或全面恢复 虚拟机无代理备份 集成强大的恢复功能,可恢复到裸机、不同硬件以及从物理到 阅读全文

ORA-10635: Invalid segment or tablespace type

2013-07-17 21:05 by 潇湘隐者, 3323 阅读, 收藏, 编辑
摘要:上周星期天在迁移数据时,碰到了ORA-10635: Invalid segment or tablespace type 错误,当时的操作环境如下: 操作系统版本: [oracle@xxxxx scripts]$ more /etc/issue Red Hat Enterprise Linux ES 阅读全文

sys不能远程登录的问题

2013-03-27 10:58 by 潇湘隐者, 2496 阅读, 收藏, 编辑
摘要:环境:在数据服务器A(Red Hat Enterprise Linux Server release 5.5 (Tikanga))上装有数据库ORACLE 10g,但是我们现在从机器B上用DBA账号远程连接数据库时,登录不了。如下所示:问题一:SYSDBA不能远程登录(此处是不是指CRT远程登录)SYSDBA不能远程登录分两种情况:1:提示的是ORA-01017:用户名密码出错C:\Users\kerry&gt;sqlplus &quot;sys/wgods123@gsp as sysdba&quot;SQL*Plus: Release 11.2.0.1.0 Production on 星期五 阅读全文

Linux平台下卸载ORACLE

2013-03-27 10:19 by 潇湘隐者, 746 阅读, 收藏, 编辑
摘要:实验环境:操作系统版本:Red Hat Enterprise Linux Server release 5.5 (Tikanga), 数据库版本 :Oracle Database 10g Enterprise Edition Release 10.2.0.1.0。卸载ORACLE 10g的过程,在不同平台或不同版本数据可能有些步骤略有不同,具体操作的时候请结合实际情况酌情处理。1. 首先做好备份工作(如果有需要的话,如果你想重新完全安装,可以忽略这个步骤)。用 oracle 用户登录。 最好先做一些备份工作。例如备份数据库文件等。2. 使用SQL*PLUS停止数据库[oracle@wg... 阅读全文

EXP&EXPDP导出数据同步问题

2013-03-19 09:59 by 潇湘隐者, 1321 阅读, 收藏, 编辑
摘要:在itpub论坛上看到一个问题:如果库正在被写,exp是不是导出的数据就是不同步的了? http://www.itpub.net/forum.php?mod=viewthread&amp;tid=1772882&amp;page=1#pid21172716按照推理逻辑,exp导出的数据应该不是同步的,也不可能同步,除非exp能智能判断数据库是否正在写操作,而且一直等到写操作结束为止。显然这些假设都不合理。下面我们来做个实验,验证一下exp导出数据是否同步。新建一个测试表TEST, 我们写一个循环,往表里面插入1000条记录,而且每插入插入一条记录,停顿0.5秒。这样来模拟数据库处于写状态。CR 阅读全文

ORACLE序列总结

2013-03-18 12:08 by 潇湘隐者, 31326 阅读, 收藏, 编辑
摘要:序列介绍序列是一个计数器,它并不会与特定的表关联。通过创建Oracle序列和触发器实现表的主键自增。 序列的用途一般用来填充主键和计数。序列使用1.创建序列ORACLE序列的语法格式为:CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXVALUE}][{CYCLE|NOCYCLE}][{CACHE n|NOCACHE}]; 1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。 2)START WITH 定义序列的初 阅读全文

MERGE INTO 性能问题疑问

2013-03-17 22:35 by 潇湘隐者, 5937 阅读, 收藏, 编辑
摘要:今天同事碰到一个SQL的性能问题,主要是MERGE INTO的性能问题,执行脚本的时候,居然耗时50多分钟,汗!简直让人抓狂,脚本如下:MERGEINTO EDS.TW_DP_B_TDTERM_IMEI_DAY DM USING T_IMEI_DAY_1111 TEMP ON( DM.DATE_CD =TEMP.DATE_CD AND DM.CITY_ID = TEMP.CITY_ID AND DM.IMEI =TEM... 阅读全文

横表与竖表性能浅析

2013-03-13 10:18 by 潇湘隐者, 5731 阅读, 收藏, 编辑
摘要:概念介绍横表概念横表就是普通的建表方式,每一个字段代表一个KPI指标。举个列子,一个学生的成绩表:学号、数学成绩、语文成绩、英语成绩、物理成绩、化学成绩......如下所示:SQL&gt; DESC STUDENT_SCOREName Type Nullable Default Comments ---------------- ---------- -------- ------- -------- STUDENT_NO NUMBER(10) 学号 CHINESE_SCORE NUMBER Y ... 阅读全文

浅谈数据库的分割技术[转载]

2013-01-25 11:55 by 潇湘隐者, 1046 阅读, 收藏, 编辑
摘要:浅谈数据库的分割技术 电信信息化部/周陈雄 关健词 读写分离分布,垂直分割,水平分割,虚拟化存储,wEB 缓存分割, 存储 CACHE 缓存分割 随着社会的日益进步, 各行业的运营支撑系统都面临着越来越大的压力, 承受着业务数 据量、访问并发数的飞速增长的双重巨大压力,在我们电信行业,同样面临着这样的难题, 是否有一套适合可行的方案来应对呢?本文重点描述数据库的分割技术, 如果能适当的应用在生产中, 必然能极大减缓来自与 日俱增的业务量带来的巨大压力。 如何分割?我们可以从如下六个方面来考虑: 一、读写分离分布技术 由于数据库存在这样的特性, 索引可以提升查询的性能, 但却极大... 阅读全文

数据库表分割技术浅析

2013-01-25 10:55 by 潇湘隐者, 6116 阅读, 收藏, 编辑
摘要:一.水平分割 什么是水平分割?打个比较形象的比喻,在食堂吃饭的时候,只有一个窗口,排队打饭的队伍太长了,都排成S型了,这时容易让排队的人产生焦虑情绪,容易产生混乱,这时一个管理者站出来,增加多个打饭窗口,把那条长长的队伍拦腰截断成几队。更形象一点的理解,你拿一把“手术刀”,把一个大表猛的切了几刀,结果这个大表,变成了几个小表. 水平分割根据某些条件将数据放到两个或多个独立的表中。即按记录进分分割,不同的记录可以分开保存,每个子表的列数相同。水平切割将表分为多个表。每个表包含的列数相同,但是数据行更少。例如,可以将一个包含十亿行的表水平分区成 12 个表,每个小表表示特定年份内一个月的数据。.. 阅读全文

监听服务管理

2012-12-19 19:02 by 潇湘隐者, 7207 阅读, 收藏, 编辑
摘要:如果你想管理(启动、关闭等)ORACLE数据库的监听服务,在Windows/Linux平台,你都可以通过lsnrctl命令来实现,下面我们主要讲一下如何用lsnrctl命令来管理监听服务(我在两台数据库(不同平台、不同版本)分别操作,暂且叫为服务器A、服务器B):1:查看服务监听命令的详细帮助信息服务器A:Red Hat Enterprise Linux Server release 6.0 (Santiago) ORACLE 10[oracle@DB-Server ~]$ lsnrctlLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 阅读全文

ORACLE同义词总结

2012-12-19 14:59 by 潇湘隐者, 57477 阅读, 收藏, 编辑
摘要:同义词概念Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能。同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词 阅读全文

ORA-12170:TNS:连接超时

2012-12-14 17:32 by 潇湘隐者, 102285 阅读, 收藏, 编辑
摘要:在Red Hat Enterprise Linux Server Releae 5.5 成功安装ORACLE 10g 后,在客户端配置TNS后,测试是否可以连接到数据块服务器,结果报错: ORA-12170:TNS:连接超时1:首先检查网络是否能ping通,如下所示,网络是畅通的。2:检查TNS配置(TNS配置也没有问题)GSP =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = 172.20.36.79)(PORT = 1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = gsp)))3: 阅读全文

ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME

2012-12-14 15:27 by 潇湘隐者, 78722 阅读, 收藏, 编辑
摘要:客户端配置好服务名后,用PL/SQL Developer连接数据库时,报错:ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME。一般这种情况请检查tnsnames.ora文件中TNS是否配置正确,如下所示,SERVICE_NAME 名字弄错了,结果报如上错误:GSP = (DESCRIPTION = (ADDRESS =(PROTOCOL = TCP)(HOST = 172.20.36.79)(PORT = 1521)) (CONNECT_DATA= (SERVER = DEDICATED) ... 阅读全文

iSQL*PLUS配置设置

2012-12-11 20:08 by 潇湘隐者, 5939 阅读, 收藏, 编辑
摘要:iSQL*PLUS介绍iSQL*PLUS是从ORACLE 9i开始提供的新功能,是SQL*PLUS的Web形式(ORACLE 11g已经不支持)。是基于三层结构设计的。其client、middle、server可以位于同一台机器上也可以位于不同的机器。iSqlPlus不需要单独安装,通过isqlplus,用户可以不需要安装任何ORACLE客户端,就能够通过浏览器方式的使用SQL*PLUS进行数据操作与数据库管理。普通的数据库用户可以直接通过isqlplus的网址http://ip:port/isqlplus登陆,进入该网址后会直接进入数据库用户登陆界面,使用数据库中的普通用户即可登陆;但如果是 阅读全文

ORACLE——重做日志文件管理

2012-08-09 22:53 by 潇湘隐者, 14547 阅读, 收藏, 编辑
摘要:联机重做日志文件概念联机日志文件又叫重做日志文件,记录了对数据库修改的信息,包括用户对数据修改和数据库管理员对数据库结构的修改。它主要用于在发生故障的时候和数据库备份文件配合恢复数据库,一般发生故障有2个情况:一个是介质损坏另外一个是用户误操作。每个数据库至少有两个日志文件组,每组至少包含1个或者多个日志成员,这里要多个日志成员的原因是防止日志文件组内某个日志文件损坏后及时提供备份,所以同一组的日志成员一般内容信息相同,但是存放位置不同。在Oracle数据库中,执行数据修改操作后,并不是马上写入数据文件,而是首先生成重做信息,并写入SGA中的一块叫LOG_BUFFER的固定区域,LOG_BUF 阅读全文

ORACLE——Instant Client配置SQL*LDR、EXP等命令工具

2012-07-06 00:18 by 潇湘隐者, 12297 阅读, 收藏, 编辑
摘要:在Linux系统中安装了ORACLE客户端Instant Client,但是它缺少SQL*LOADER、IMP等工具,那么怎么安装这些工具呢?直接从同版本的数据库服务器的安装文件中拷贝sqlldr文件过来,执行sqlldr会报如下错误:Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL[etl@m1 instantclient_10_2]$^C 事实上也只能通过拷贝文 阅读全文

ORACLE查看数据库安装补丁情况

2012-06-30 15:32 by 潇湘隐者, 15000 阅读, 收藏, 编辑
摘要:查看ORACLE数据库的版本以及补丁情况,可以通过opatch lsinventory命令来查看,Linux版本和Windows版本几乎差不多(测试的两台机器都没有打补丁。呵呵!):先看一下Windows平台的设置:首先转到ORACLE_HOME目录,然后切换到OPatch目录:(如下所示)E:\&gt;cd E:\app\kerry\product\11.2.0\dbhome_1E:\app\kerry\product\11.2.0\dbhome_1&gt;cd OPatch如果首先没有设置ORACLE_HOME目录,则会报如下错误:E:\app\kerry\product\11.2.0\d 阅读全文

断开网线后监听服务器配置

2012-06-30 15:14 by 潇湘隐者, 661 阅读, 收藏, 编辑
摘要:笔记本拔掉网线后,从服务启动ORACLE监听服务器时报错(如下图所示)通过命令启动查看具体错误信息如下所示:查看具体的报错日志信息log.xml,如下所示:代码&lt;msg time=&#39;2012-06-30T13:58:04.381+08:00&#39; org_id=&#39;oracle&#39; comp_id=&#39;tnslsnr&#39;type=&#39;UNKNOWN&#39; level=&#39;16&#39; host_id=&#39;KERRY-PC&#39;host_addr=&#39;fe80::bdcd:f603:9ae2:a99%16&#39;&gt 阅读全文

ORA-00060错误

2012-06-27 21:21 by 潇湘隐者, 3548 阅读, 收藏, 编辑
摘要:今天有个同事说生产机有个PERL脚本老是报死锁的错误,脚本里面开启了并行度:错误如下:Failure: ORA-12801: error signaled in parallel query server P126, instance NMS_ODS_NDB1:wgods1 (1)ORA-00060: deadlock detected while waiting for resource (DBD ERROR: OCIStmtExecute)检查了所有的脚本后,发现没有其他会话、进程造成脚本里面ODS表的死锁,后来搜索发现http://jidongzheng.itpub.net/post/3 阅读全文

ORACLE数据库查看执行计划

2012-05-24 22:28 by 潇湘隐者, 27443 阅读, 收藏, 编辑
摘要:基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分析执行计划对SQL进行优化做相应说明。一、什么是执行计划(explain plan)执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。二、如何查看执行计划1: 在PL/SQL下按F5查看执行计划。第三方工具toad等。很多人以为PL/SQL的执行计划只能看到基数、优化器、耗费等基本信息,其实这个可以在PL/SQL工具里面设置的。可以看到很多其它信息,如下所示2: 在SQL*PLUS 阅读全文

Linux平台ORACLE INSTANT客户端安装

2012-05-19 22:57 by 潇湘隐者, 5900 阅读, 收藏, 编辑
摘要:下载安装文件先去ORACLE官方网站下载所需版本的Instant Client Package 和 Instant Client Package - SQL*Plus安装包,(千万注意版本)http://www.oracle.com/us/solutions/linuxx86-64soft-092277.htmlhttp://www.oracle.com/technetwork/topics/linuxsoft-082809.html这两个地址分别是linux 32和64位操作系统的下载地址。我下载了如下几个安装文件basic-10.2.0.4.0-linux-x86_64.zipsqlplu 阅读全文

ORACLE数据库链接

2012-05-17 22:43 by 潇湘隐者, 11698 阅读, 收藏, 编辑
摘要:在ORACLE里面,远程数据访问,像查询、更新等可以通过Database Link来实现。数据库连接需要在建立Database Link的两台机子上都运行Oracle Net(以前叫SQL*NET 和NET 8)。 语法如下1 Database Link 的创建:有两个数据库服务器A/B, 其中A的IP地址为172.20.36.245, 服务器B为本机。服务器B上的数据库实例名为ORCL,在本机上的服务监听配置上有服务器A上实例配置:BIWG_TEST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.36.245)(PORT = 阅读全文

ORA-12154: TNS:could not resolve the connect identifier specified

2012-05-16 23:48 by 潇湘隐者, 2017 阅读, 收藏, 编辑
摘要:在安装ORACLE安装的时候,报如下错误:ORA-12154: TNS:could not resolve the connect identifier specified。如下图所示: 折腾了很久才找到罪魁祸首:原来在安装数据库时,设置用户密码的时候里面包含了@符号,引起了这个错误,这个错误倒是有点诡异,应该是ORACLE连接DB时就把口令@后面的串当连接字用了。所以切记注意这个,否则很难发现问题。 阅读全文

Rhel-Server 5.5 安装ORACLE10

2012-05-15 23:44 by 潇湘隐者, 2234 阅读, 收藏, 编辑
摘要:VMWARE + REDHAT + ORA10先说一下环境,操作系统为Microsoft Windows Server 2003,安装的是虚拟机VMware Workstation Version 7.1.2 build-301548,虚拟机上选择安装的是Redhat Enterprise Linux 5。1:安装虚拟机工具:虚拟机工具是VMware虚拟机中自带的一种增强工具,相当于VirtualBox中的增强功能(Sun VirtualBox Guest Additions),可以大幅度的增强虚拟机和主机的交互能力,和显著提供虚拟机的性能。比如,安装虚拟机工具后,虚拟机的显示效果会增强。另一 阅读全文

ORACLE约束总结

2012-05-13 08:36 by 潇湘隐者, 31474 阅读, 收藏, 编辑
摘要:你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了。ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本ORACLE是否不同)?视图有约束吗?约束是否会影响SQL性能? 约束信息存储在哪些系统视图、数据字典中?约束能否修改名称?能否禁用约束?延迟约束有啥好处.......约束定义约束是强加在表上的规则或条件。确保数据库满足业务规则。保证数据的完整性。当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或规则的话,系统就会拒绝执行这个操作。约束可以是列一级别的 也可以是表级别的。定义 阅读全文

裸设备知识介绍【转载】

2012-05-08 23:50 by 潇湘隐者, 412 阅读, 收藏, 编辑
摘要:【转自http://www.chinaunix.net/jh/19/272188.html】裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。本文收集裸设备和Oracle问答20例。 1.什么叫做裸设备? 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。 2.如何辨别裸设备? 在Unix的/dev目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。 字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件... 阅读全文

ORA-27125: unable to create shared memory segment

2012-04-23 19:38 by 潇湘隐者, 2599 阅读, 收藏, 编辑
摘要:平台环境:Linux Red Hat Enterprise Linux Server release 6.0 (Santiago)数据库版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi安装好ORALCE数据库后,启动数据库就会报如下错误参考http://www.eygle.com/archives/2011/12/hugepageshugetl.html 文章,说跟hugetbl有关,只需按如下操作[root@DB-Server ~]#id oracle uid=501(oracle) gid=502(oin 阅读全文

用SYS本地登录或远程登录引起ORA-01031错误

2012-04-17 22:18 by 潇湘隐者, 5138 阅读, 收藏, 编辑
摘要:&quot;历史总是上演惊人的相似&quot;, 在技术开发过程中,你也会总会碰到惊人相似的问题,这段时间我就碰到了”ORA-01031:insufficient privileges 权限不足”这个错误多次,一次是自己,一次是同事碰到的,顺便整理了下这个知识点。情况一:如果数据库实例安装在服务器A上,你用管理员权限Administrator登录后,使用SQL&gt; conn system/manage as sysdba登录 没有问题。但是如果你在服务器A上建立一个etl账号,使它率属于Remote Desktop Users 和Users 组,如下所示:此时你用sys账号登录数据库时,就 阅读全文

SQL语言艺术实践篇——局外思考

2012-04-12 00:22 by 潇湘隐者, 1044 阅读, 收藏, 编辑
摘要:今天有个同事问我一个问题,描述如下: 有一个日志信息表,对应同一个ID,可能有一条、两条、三条不同状态的记录。例如ID= 10001的日志记录可能有三条,一条记录状态为正确, 一条记录状态为错误, 一条记录状态是未知。也有可能只有其中一条记录或两条,现在的问题是,对应同一日志ID,我们只需要取一条记录,取数规则是:1:如果有状态为正确、错误、未知三条记录,我们只取状态为正确的记录。2:如果只有状态为正确、错误状态两条记录的,我们只取状态为正确的记录3:如果只有状态为错误、未知记录两条记录的,我们只取状态为错误的记录4:如果只有状态为正确、未知记录两条记录的,我们只取状态为正确的记录5:如果只有 阅读全文

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

2012-04-03 13:24 by 潇湘隐者, 20372 阅读, 收藏, 编辑
摘要:在安装ORACLE 11G 过程中由于配置的原因,安装过程中报了如下错误:按照安装提示执行后面的操作后,打开PL/SQL DEVELOPER 连接数据库时总报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务!ORACLE NET MANAGER里面测试,测试服务是否能够成功。结果还是报如上错误在网上百度了一下这个错误ORA-12514,原来很多人都碰到过这个问题,于是按照别人的处理步骤依依配置了,这个问题解决了,不过还是觉得有必要把这个问题解决的步骤记录下来,一来让自己能跟深刻的体会一下,锻炼一下总结能力,二来可以帮助到以后碰到这个问题的人。先找到找到listener 阅读全文

ORACLE FLASHBACK TABLE 的一个有趣问题

2011-07-24 13:07 by 潇湘隐者, 2969 阅读, 收藏, 编辑
摘要:大家都知道ORACLE 10G新增了FLASHBACK特性,其中FLASHBACK TABLE用来对误删的表进行修复。但是今天却发现了FLASHBACK TABLE的一个有趣问题,请看下面慢慢道来:下面我用一个例子来说明我的遇到的有趣的问题,欢迎大家探讨。SQL&gt;CONNECTSYSDBA/*****ASSYSDBA已连接。SQL&gt;CREATETABLETEST(TVARCHAR2(10));表已创建。SQL&gt;DROPTABLETEST;表已删除。SQL&gt;FLASHBACKTABLETESTTOBEFOREDROP;FLASHBACKTABLETESTTOBEFORED 阅读全文

ORACLE一些不常用的脚本

2011-07-10 18:01 by 潇湘隐者, 1016 阅读, 收藏, 编辑
摘要:本篇介绍一下一些不太常用的脚本,它们往往有“奇能异效”,但是由于不太常用、不常见、或效率方面的原因,往往被大多数人给遗忘在某些角落里。呵呵,不知道你看见下面这些脚本,是否觉得眼熟呢?1: 如果我需要从SCOTT模式下EMP表中查询职位为CLERK(秘书)、SALESMAN(销售人员)这两种员工,你会怎么写?是下面哪种写法呢?SELECT*FROMSCOTT.EMPWHEREJOB=ANY(&#39;CLERK&#39;,&#39;SALESMAN&#39;)/SELECT*FROMSCOTT.EMPWHEREJOBIN(&#39;CLERK&#39;,&#39;SALESMAN&#39;)/A 阅读全文

ORACLE已建表能否创建分区

2011-07-03 12:23 by 潇湘隐者, 5576 阅读, 收藏, 编辑
摘要:Oracle数据库里面,如果已经创建了一个表,创建时没有给表进行分区,现在由于性能等方面原因需要对该表创建分区。能否直接把一个未分区的表修改成分区表呢(即能否通过ALTER语句把该表修改成分区表呢)?答案是不能,至少目前版本不能。但是可以对已分区表增加新分区、合并分区、删除分区等一系列操作。如果要对对未分区表A创建分区,可以用下面的方法:把原表改名为B,然后创建分区表A,再把表B的数据导入A。 阅读全文

(ORACLE)查看分区表的相关信息

2011-07-03 12:16 by 潇湘隐者, 23688 阅读, 收藏, 编辑
摘要:ORACLE数据库如何查看分区表的相关信息呢?不知道你有没有总结过这方面的知识。下面我们先创建两个表TEST、GPRS_CELLTOPVOL_WK来做实验,脚本如下:CREATETABLEGPRS_CELLTOPVOL_WK(DATE_CDNUMBER(8)NOTNULL ,WK_CDNUMBER(2)NOTNULL ,CITY_IDNUMBER(10) ,CELL_EN_NAM VARCHAR2(64)NOTNULL,CELL_CN_NAM VARCHAR2(64)NOTNULL,CELL_VOL NUMBER ,CELL_VOL_PCT NUMBER ,AVG_RATNUMBER ,CON 阅读全文

ORACLE MERGE 介绍

2011-06-23 23:45 by 潇湘隐者, 11237 阅读, 收藏, 编辑
摘要:MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或多表联合查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。通过这个MERGE你能够在一个SQL语句中对一个表同时执行INSERT和UPDATE操作. 在 Oracle 10g中MERGE有一些新特性,后面我会介绍这些新特征。先看看MERGE语法如下:MERGEINTODM.TM_WGG_SYSVLRUSER_HRDMUSING(SELECTDAT 阅读全文

ORACLE SQL*PLUS 命令大全

2011-06-09 23:00 by 潇湘隐者, 17643 阅读, 收藏, 编辑
摘要:其实网上已经有SQL*PLUS命令大全这方面的资料了,不过大都不完整,只覆盖了一些常用的命令,本着学习、实践的原则,也为了梳理、总结SQL*PLUS方面的知识,自己也整理了一份这方面的文档资料,不足之处还请大家多多指教。---1:HELPINDEXHELP命令查询相关命令的信息。你可以从下面看到大概有54个SQL*PLUS命令。每个命令都有大量的参数选项,你不可能清楚的记得每个命令以及它相关的参数细节,所以当你遗忘时,就可以用HELP命令来查看相关命令的命令信息SQL&gt;HELPINDEXEnterHelp[topic]forhelp.@COPYPAUSESHUTDOWN@@DEFINEP 阅读全文

ORALC的STDDEV、STDDEV_POP、STDDEV_SAMP等函数

2011-06-03 23:28 by 潇湘隐者, 10116 阅读, 收藏, 编辑
摘要:今天一个同事碰到一个问题:用SQL求一个指标的计算公式:其中Xi即指标,X—指标均值,N是指标个数,看到这样的计算公式确实比较发愁。在处理问题前,先去恶补了下数理统计方面的知识(数理统计的知识基本上都还给老师了):方差、标准差、平均值.....随机变量是指变量的值无法预先确定仅以一定的可能性(概率)取值的量。它是由于随机而获得的非确定值,是概率中的一个基本概念。样本方差 :样本中各数据与样本平均数的差的平方和的平均数叫样本方差。样本标准差:样本方差的算术平方根叫做样本标准差。样本方差和样本标准差都是衡量一个样本波动大小的量,样本方差或样本标准差越大,样本数据的波动就越大。 数学上一般用E{[X 阅读全文

ORA-01033: ORACLE initialization or shutdown in progress

2011-05-25 23:47 by 潇湘隐者, 2693 阅读, 收藏, 编辑
摘要:这阵子折腾ORACLE数据库,今天还真给我“折腾”出问题来了,清理磁盘里面文件时,把D:\KERRY.MDF这个数据库文件删除了(呵呵,事后才想起来的,当时以为是SQL SERVER 05 数据库实验时创建的),结果今天启动ORACLE服务后,PL/SQL连接过去时报错:ORA-01033: ORACLE initialization or shutdown in progress。查看D:\oracle\product\10.2.0\admin\orcl\bdump下告警日志,发现了下面一些错误,仅仅贴出部分日志信息(太多了,不好贴)OSD-04002: 无法打开文件O/S-Error: ( 阅读全文

邪恶的PLS-00103错误提示

2011-05-23 20:48 by 潇湘隐者, 39808 阅读, 收藏, 编辑
摘要:今天碰到一个存储过程编译错误,提示PLS-00103错误,关于这个错误网上能搜到一大把,原因很多,我碰到的错误提示如下:Compilation errors for PROCEDURE ETL.PRO_TM_WG_NETSEV_PVError: PLS-00103: 出现符号 &quot;EXCEPTION&quot;在需要下列之一时: begin case declare end exit for goto if loop mod null pragma raise return select update while with &lt;an identifier&gt; &lt;a dou 阅读全文

计算机改名引发的ORA-12541: TNS无监听程序错误

2011-05-21 20:27 by 潇湘隐者, 2282 阅读, 收藏, 编辑
摘要:近期上班时,由于开机时老是提示“ 局域网出现计算机重名冲突”,于是把计算机名字给改了,从PC2010081312zeo改为了CXBIKKKKKKK,结果第二天来的时候,用PL/SQL连接我本地机子的ORACLE实例时,弹出ORA-12541:TNS无监听程序错误的提示,当时也没想到是计算机改名引起的问题,以为是相关服务没有启动缘故,于是我打开服务面板,如图所示,发现OracleOraDb10g_home1TNSListener服务没有启动,于是启动这个服务,结果等我启动后,出现下面的错误提示我又启动一次,结果还是上面错误错误提示,于是去ORACLE实例所在的安装目录%\10.2.0\db_1\ 阅读全文

ORACLE SQL脚本能否修改字段名称?

2011-05-18 20:47 by 潇湘隐者, 3852 阅读, 收藏, 编辑
摘要:在看到标题时,你先想想:在ORACLE中能否修改一个表的某个字段名呢?如果能的话,你是否还记得SQL脚本如何写的呢,呵呵,写这个的目的是因为在论坛上看见许多信誓旦旦的说ORACLE中不能修改字段名称,只能先删除、后添加字段或是其它方法来处理。当然我不知道他们是在ORACLE那个版本下测试。我在ORACLE 9.0 ,10上是都可以执行的。http://topic.csdn.net/t/20020605/16/780826.htmlhttp://topic.csdn.net/u/20090306/14/c3fe94e2-ce50-4c0f-a205-f8f19a3f17a2.htmlhttp:/ 阅读全文

ORACLE对象大小写问题

2011-05-05 22:26 by 潇湘隐者, 6955 阅读, 收藏, 编辑
摘要:在数据库新建一个测试表(数据库版本为ORACLE10.2.0.1.0),表名为小写的test。脚本如下所示:CREATETABLEtest(idNUMBER(10),NameVARCHAR2(20),SexVARCHAR(2))--查找不到对应数据SELECT*FROMUSER_TABLESWHERETABLE_NAME=&#39;test&#39;--改用大写才可以查到对应的数据SELECT*FROMUSER_TABLESWHERETABLE_NAME=&#39;TEST&#39;--查找不到对应数据SELECT*FROMALL_TAB_COLUMNSWHERETABLE_NAME=&#39 阅读全文

ORACLE用户管理

2011-05-04 21:37 by 潇湘隐者, 1172 阅读, 收藏, 编辑
摘要:ORACLE用户管理包括: 创建用户、修改用户、删除用户 创建用户的脚本命令是CREATE USER语句,创建用户一般要由DBA或拥有该系统权限的用户来执行。那么我们首先来创建一个名为:kerry的用户(账号)CREATEUSERkerryIDENTIFIEDBYK123456DEFAULTTABLESPACEUSERSQUOTA10MONUSERSTEMPORARYTABLESPACETEMP 创建用户以后,我们可以通过下面的脚本来查看用户信息SELECTUSERNAME,PASSWORD,ACCOUNT_STATUS,DEFAULT_TABLESPACE, TEMPORARY_TABLES 阅读全文

ORACLE 常用函数——转换函数

2011-04-28 00:34 by 潇湘隐者, 9778 阅读, 收藏, 编辑
摘要:------------------------------------------类型转换函数------------------------------------------------自动类型转换,ORACLE可以自动根据具体情况进行如下转换:*字符串到数值*字符串到日期*数值到字符串*日期到字符串EX:--*字符串到数值SELECT&#39;3.14159&#39;+20FROMDUAL;SELECT&#39;3.1T&#39;+20FROMDUAL;--报错:无效数字,即字符串必须能转换为数值类型才能进行操作--*数值到字符串SELECT&#39;100&#39;||124FROM 阅读全文

ORACLE 常用函数——字符函数

2011-04-27 00:51 by 潇湘隐者, 10182 阅读, 收藏, 编辑
摘要:-----------------------------------------------字符函数-----------------------------------------------1:ASCII返回字符串的ASCII值 SELECTASCII(&#39;A&#39;)FROMDUAL;SELECTASCII(&#39;a&#39;)FROMDUAL;--2:CHR返回整数所对应的ASCII字符SELECTCHR(&#39;65&#39;)FROMDUAL;SELECTCHR(400)FROMDUAL;--如果超出ACII值,则返回空--3:CONCAT函数连接字符串A和字符串B 阅读全文

ORACLE 常用函数——日期/时间函数

2011-04-27 00:06 by 潇湘隐者, 35420 阅读, 收藏, 编辑
摘要:---------------------------------------------日期/时间函数-------------------------------------------------1:SYSDATE用来得到系统的当前日期SELECTSYSDATEFROMDUAL;--2:ADD_MONTHS增加或减去月份SELECTTO_CHAR(ADD_MONTHS(TO_DATE(&#39;20080818&#39;,&#39;YYYYMMDD&#39;),2),&#39;YYYY-MM-DD&#39;)FROMDUAL;SELECTTO_CHAR(ADD_MONTHS(SYSDAT 阅读全文

ORACLE 常用函数——聚合函数

2011-04-26 23:06 by 潇湘隐者, 30684 阅读, 收藏, 编辑
摘要:/************************************************************************************************************************** ORACLE 常用函数 这个系列我将整理一些日常我们经常使用到的ORACLE函数,鉴于篇幅太长,我大体会按下面分类来整理、汇总这些常用的ORACLE函数,如果有些常用函数没有被整理进来,也希望大家指点一二。1: 聚合函数2: 日期函数3: 字符串函数4: 格式化函数5: 类型转换函数6: 加密函数7: 控制流函数8: 数学函数9: 系统信息函数*** 阅读全文

Oracle ORA-06550:错误

2010-02-06 08:41 by 潇湘隐者, 7114 阅读, 收藏, 编辑
摘要:Oracle ORA-06550:错误网上说该异常产生的原因是临时表空间不足导致的检查数据库后发现 真正的原因是用户权限不够 导致没有临时表空间的操作权限 导致该异常 阅读全文

Windows Xp Oracle 10g的卸载

2009-11-18 22:45 by 潇湘隐者, 448 阅读, 收藏, 编辑
摘要:(转载)1:先在开始&#8212;&gt;控制面板&#8212;&gt;管理工具&#8212;&gt;服务 把里面orale相关的服务全部停掉。这样做是避免删除出错。2:打开Oracle程序下的Universal Installer卸载程序(如下图所示),但是Universal Installer本身不能被卸载。 3: 运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE... 阅读全文

Windows Xp Oracle 10g的安装

2009-11-18 22:31 by 潇湘隐者, 2821 阅读, 收藏, 编辑
摘要:首先你应该下载Oralce 10g的安装文件(版本比较多,大家可以选择自己需要的),你可以去Oracle官方网站也可以去任何其它网站下载,官方网站http://www.oracle.com/technology/global/cn/software/products/database/index.html,不过你下载前应该仔细看清楚你下载的版本,因为Oracle的版本比较多,免得你下载了Linux... 阅读全文

PLSQL 调试触发器

2009-10-15 19:59 by 潇湘隐者, 20402 阅读, 收藏, 编辑
摘要:在PLSQL里是可以调试触发器的,相信有一部分人可能不清楚这个。以前我一直使用SQl Server,哈哈,养成了一个根深蒂固的观念,以为Oracle里触发器也是不能调试的,其实SQLServer里面也是可以调试的(写这个的时候特意在网上查找了下资料)。好了,为了形象说明,下面列举个例子,如下图所示,表NVOICE_CLASS里有个触发器INVOICE_CLASS_AFTER其中触发器INVOICE... 阅读全文

Oracle表连接的奇怪问题

2009-09-11 01:05 by 潇湘隐者, 856 阅读, 收藏, 编辑
摘要:今天在做计费报表的时候,由于粗心,拿数据的的脚本给写错了,却让我发现了一个很奇怪的问题,下面来让我介绍我发现的这个问题:数据库有表CHARGE_REF ,CLIENT_INVOICE ,CLIENT_INVHDR。其中CHARGE_REF表是保存的收费类型的数据;CLIENT_INVHDR表保存的是发票头部信息,CLIENT_INVOICE表保存的是发票的详细信息,大体如下图所示我当时拿数据的时候... 阅读全文