您现在的位置:首页
--> Oracle
Oracle 各种删除操作对空间返还的说明。
按照重要程度划分数据库级别
公司搞淘汰Oracle数据库的事情已经搞了好久了,这个事情其实和国内淘宝系搞的去IOE(IBM、Oracle和EMC)是类似的,基本上也是迫不得已,Oracle的维护成本太高,而公司内部基于Oracle数据库的数据仓库,也是问题频出;另一个原因则是scalability。我相信这两个原因许多人都非常清楚。而这个淘汰,也不是简简单单换一个关系数据库,比如把Oracle换成MySQL,或者换到云上(RDS)。而是有明确阶段性地演进,比如替换到DynamoDB这样的NoSQL数据库上面去;或者更彻底地,像我们接触到的某个产品,数据本身换到更廉价的存储S3上去,元数据才存在DynamoDB里,而原本SQL执行的运算的部分用Hadoop或者Spark来完成,这件数据源统一和演进的事情由一个做infrastructure的团队来完成。
Oracle数据库要淘汰,而且还看到了NoSQL数据库作为其中的一个替代方案,那是不是说SQL要慢慢淡出历史舞台了?
一个电信运营商客户的核心交易系统,临时表空间大量被占用,临时表空间被撑到了600GB。这样的问题复杂吗?取决于很多因素,不过今天所要讲的案例,并不复杂,如果我们对临时表空间在何种情况下使用有足够了解。
首先,我们要去检查是什么会话占用了临时表空间,具体占用了多少,临时段的具体类型是什么。正如我们要想知道这个月的花费过大,去分析原因时就要去看是哪些开销过大、开销了多少金额、开销的用途等。
虽然Oracle数据库的故障千奇百怪,甚至让客户有种防不胜防的感觉,但还是有很多故障是比较常见的,这些问题也是我们Oracle服务部门在客户现场经常遇见,也经常处理的问题。
事实上,针对这些常见问题,Oracle公司不仅提供了诊断和解决问题的思路和方式,甚至针对具体问题,提供了专门的官方处理文档。如果我们能在平日的运行维护工作中,提前预读这些文档,甚至自己编写相应的故障处理手册,一旦这些常见故障真正发生时,我们就不会那么手足无措,即便不一定完全胸有成竹,也至少可以做到一定的心中有数了,就像打仗一定要有作战预案、一定要打有准备之战一样。
本章就将介绍这些常见故障的诊断和处理过程。例如ORA-00600、内存不够、数据库空间不够、snapshot too old、UNDO表空间无法扩展等。
虽然Oracle数据库的故障千奇百怪,甚至让客户有种防不胜防的感觉,但还是有很多故障是比较常见的,这些问题也是我们Oracle服务部门在客户现场经常遇见,也经常处理的问题。
事实上,针对这些常见问题,Oracle公司不仅提供了诊断和解决问题的思路和方式,甚至针对具体问题,提供了专门的官方处理文档。如果我们能在平日的运行维护工作中,提前预读这些文档,甚至自己编写相应的故障处理手册,一旦这些常见故障真正发生时,我们就不会那么手足无措,即便不一定完全胸有成竹,也至少可以做到一定的心中有数了,就像打仗一定要有作战预案、一定要打有准备之战一样。
本章就将介绍这些常见故障的诊断和处理过程。例如ORA-00600、内存不够、数据库空间不够、snapshot too old、UNDO表空间无法扩展等。
新上线的系统很多数字类型的字段都是使用varchar2类型存放,要转换成number类型时,和开发人员对number类型的字段在查询时加上单引号走不走索引的问题产生了分歧,大家都知道,如果使用char类型存放数字,在查询时如果不加单引号是不会走索引的,测试信息如下,数据库版本11.2.0.4.0。
oracle数据库从10g开始引入了对正则表达式的支持,正则表达式是一种描述简单和复杂的搜索和处理模式的方法,在与SQL一起使用时,正则表达式可以对Oracle数据库中存储的任何数据执行强大的搜索和处理。oracle数据库引入正则表达式以后一个明显的好处是,可以把匹配逻辑集中在数据库端,避免了在中间层中匹配处理,实现起来更加方便。
在11g如果没有关闭掉审计的功能,默认是可以记录错误密码登陆信息的,很幸运的是,这个功能并没有被禁掉。那么查询AUD$表就能查询到错误密码登陆信息。以下是在没有做过任何设置的11.2.0.4.0版本的数据库中做的测试,先使用错误密码登陆数据库。
本文通过两方面演示怎么将ORACLE数据库中的CHAR类型的字段转换成CLOB类型的字段,一种情况是空列,另一种情况是列中已有数据。
对于某些需要通过数据库与大量数据打交道的软件来说,处理性能相当的重要。为了保证软件能够将所有数据处理完而不至于崩溃,分批处理的思想应运而生。分批处理的具体做法是编写SQL语句,每次返回规定条数的数据给软件处理,待这一批数据处理完之后,再接着处理下一批。 本文通过对具体的数据库表(tb_employeeinfo)的操作过程,展示了ORACLE和SYBASE数据库中分批处理SQL语句的编写方法。
通过测试证明,在RAC环境中,如果要使用IN MEMORY特性,需要设置parallel_degree_policy=AUTO和parallel_force_local=false之后,才能够真正意义上的启动IM特性,不然只是执行计划中的启用,可能是假象。
数据的安全越来越重要,不是说你的生产库安全,你的数据就一定安全了,rman备份也是泄露数据的一个重要地方,如果别人拿到了你的备份集,一样等同入侵了你的生产库。为了rman备份的安全,最简单方式就是使用set encryption方式在rman备份过程中设置密码,需要版本为10.2及其以后企业版版,另外如果需要备份到带库只能使用oracle自己的osb(Oracle Secure Backup),注意rman只有backupset可以加密,copy无法进行加密。
Why call it Apps and not Oracle ERP ?以前就很想知道为什么人们常常把Oracle E-Business Suite称作“Apps”?就因为Apps是Oracle Applications的缩写么?也许是。其实这个问题给了我一个很好地理由来解释APPS schema的进化史。
查看oracle ebs系统的系统版本号以及oracle ebs各个模块的版本号,可以通过下面的SQL来实现:(1)查看oracle ebs系统版本;(2)查看oracle ebs各个模块的版本信息。
昨天处理了一则复杂关联SQL的优化,这类SQL的优化往往考虑以下四点:
第一.查询所返回的结果集,通常查询返回的结果集很少,是有信心进行优化的;
第二.驱动表的选择至关重要,通过查看执行计划,可以看到优化器选择的驱动表,从执行计划中的rows可以大致反映出问题的所在;
第三.理清各表之间的关联关系,注意关联字段上是否有合适的索引;
第四.使用straight_join关键词来强制表之间的关联顺序,可以方便我们验证某些猜想;
执行时间:
mysql> select c.yh_id,
-> c.yh_dm,
-> c.yh_mc,
-> c.mm,
-> c.yh_lx,
-> a.jg_id,
-> a.jg_dm,
-> a.jg_mc,
-> a.jgxz_dm,
-> d.js_dm yh_
对于数据库ORACLE有时操作时,提示的是一串串???,不能起到提示的作用,这是由于语言环境的设置问题,下面是实际操作中要用到的。
Oracle提供了一类命令,可以将Oracle各类内部结构中所包含的信息转储(dump)到跟踪文件中,以便用户能根据文件内容来解决各种故障。设置跟踪事件有两种方法,一种是在init.ora文件中设置事件,这样open数据库后,将影响到所有的会话。
对于优化来讲,查找消耗资源较大的SQL至关重要,下面介绍几个之前用到的SQL。
UNDO异常报错千奇百怪,针对本人遇到的比较常见的undo异常报错进行汇总,仅供参考,数据库恢复过程是千奇百怪的,不能照搬硬套.
近3天十大热文
- [68] Twitter/微博客的学习摘要
- [65] IOS安全–浅谈关于IOS加固的几种方法
- [62] 如何拿下简短的域名
- [61] android 开发入门
- [61] Oracle MTS模式下 进程地址与会话信
- [61] Go Reflect 性能
- [58] 【社会化设计】自我(self)部分――欢迎区
- [57] 图书馆的世界纪录
- [57] 流程管理与用户研究
- [56] find命令的一点注意事项
赞助商广告