技术头条(投递你的文章)     搜索本站     邮件订阅     微信号:IT技术博客大学习
您现在的位置首页 --> 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异常报错进行汇总,仅供参考,数据库恢复过程是千奇百怪的,不能照搬硬套.
    在Oracle数据库中,SQL解析有几种: 硬解析,过多的硬解析在系统中产生shared pool latch和library cache liatch争用,消耗过多的shared pool,使得系统不具有可伸缩性。 软解析,过多的软解析仍然可能会导致系统问题,特别是如果有少量的SQL高并发地进行软解析,会产生library cache latch或者是share方式的mutex争用。 软软解析,其实这也也属于软解析,与普通的软解析不同的是,软软解析的SQL会在会话的cached cursor中命中。 一次解析,多次执行,这是解析次数最少的方式,也是系统最具有可扩展性的方式。
    在繁忙的系统中,我们总是会期望提高某些Oracle进程的优先级,使其能够更容易的获得CPU资源,执行重要的任务。在Oracle 10g之前,这样的工作要通过操作系统上的设置来实现,在Oracle 10gR2中,一个新的隐含参数被引入到数据库中,用于配置提升Oracle后台进程的优先级。
[共208篇文章][第1页/共11页][1][2][3][4][5][6][7][8][9][10][>|]
© 2009 - 2017 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号