代码改变世界

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

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

2014-10-26 10:39 by 潇湘隐者, 5778 阅读, 收藏,
摘要: 在ORACLE数据中修改会话级临时表时,有可能会遇到ORA-14550错误,那么为什么会话级全局临时表会报ORA-14450错误呢,如下所示,我们先从一个小小案例入手: 案例1: SQL> 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 潇湘隐者, 106278 阅读, 收藏,
摘要: 在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源,有时候你会发现锁定的资源很长时间也不会释放,即使会话状态为“KILLED”,依然会阻塞其它会话。 下面根据Eygel的"Oracle中Kill session的研究",构造一个案例看看kill s... 阅读全文

ORA-01113: file xxxx needs media recovery

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

ORACLE回收站机制介绍

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

ORACLE临时表空间总结

2014-10-05 11:35 by 潇湘隐者, 97421 阅读, 收藏,
摘要: 临时表空间概念 临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当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 潇湘隐者, 6716 阅读, 收藏,
摘要: ORACLE 11g 的数据库体系结构图,非常全面、系统、高屋建瓴的整体介绍了ORACLE 11g 的数据库体系结构。如果能全面了解、清晰梳理、深入掌握这些知识点,相信对你了解学习、深入研究ORACLE不无裨益。如果图片放大展示不够清晰,请参考我上传的PDF附件ORACLE_11g_ARCHITECTURE.pdf 阅读全文

ORACLE 10g 数据库体系结构图

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

ORACLE 9i 数据库体系结构图

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

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

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

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

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

ORACLE告警日志文件

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

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

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

ORACLE外部表总结

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

ORACLE动态采样分析

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

ORACLE优化器RBO与CBO介绍总结

2014-07-14 10:38 by 潇湘隐者, 57795 阅读, 收藏,
摘要: 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 潇湘隐者, 2343 阅读, 收藏,
摘要: 案例环境: 操作系统版本: 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 潇湘隐者, 220234 阅读, 收藏,
摘要: 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 潇湘隐者, 13342 阅读, 收藏,
摘要: 相信不少人遇到过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 潇湘隐者, 58422 阅读, 收藏,
摘要: 今天遇到一个错误提示: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 潇湘隐者, 2532 阅读, 收藏,
摘要: 以前在博客里面介绍了RMAN备份脚本一列分享,通过RMAN备份到本地路径,然后通过FTP将备份文件上传到FTP服务器。 下面简单介绍另外一例RMAN备份解决方案,下面是我简单画的一个图(很少画图,感觉有点粗制滥造)。 首先将数据库备份到本地服务器的一个目录下(目录是按日期格式生成,本地备份保留周期视存储情况而定.一般一天即可)。 然后将备份文件通过Symantec Backup Exec ... 阅读全文