【问题处理】9i客户端无法“直接”使用purge recyclebin命令清理10g数据库回收站信息
偶遇9i客户端在连接10g数据库时,无法直接使用“purgerecyclebin”命令清理回收站信息的问题。现将问题现象、处理方法及其原因总结在此,供参考。1.创建测试表T,模拟生成T表DROP后的回收站信息。sec@ora10g>createtablet(xint);Tablecreated
【位图索引】在位图索引列上进行更新操作的锁代价研究
位图索引的特点是不支持行级锁定,锁代价很高,请参见文章《【实验】【BitmapIndex】位图索引的锁代价研究》(http://space.itpub.net/519536/viewspace-611296)。提问:若将具有位图索引列的一类值更新为其他已有值信息,是否会锁定两类值的全部记录?回答:会
【INDEX】11g中利用不可见索引降低索引维护时对系统的冲击
11gR1中推出了“不可见索引”(InvisibleIndexes)技术,这个新技术为DBA进行索引维护带来了非常大的便利。在11gR1版本之前提供的是“不可用索引”(Unusableindexes)技术,这个技术的不便之处就是,一旦设置了索引为“不可用索引”,所有后续的DML操作将不会在索引上得到
【SYNONYM】ORA-00980错误处理暨删除无效同名的SQL生成脚本
我在此通过一个具体的实验来给大家展示一种常见的导致“ORA-00980”错误发生的情况,然后给出一些其他可能导致这个错误发生的原因,最后给出一个可以自动化获得删除所有无效同名的SQL脚本。一、先来模拟一下这个“ORA-00980:synonymtranslationisnolongervalid”错
【maxmem】利用Oracle的maxmem小工具得到系统可用内存大小
在ORACLE_HOME/bin目录下有很多有意义的工具,如耳熟能详的exp(expdp)、imp(impdp)、rman等等。其中有一个工具叫做“maxmem”,要知道这个可不是操作系统上的命令,这个命令是Oracle提供的,使用这个命令可以简单快速地得到还有多少内存可用,以避免因可用内存不足1M
【ASH】使用ASH得到Oracle活动会话的历史信息
1.什么是ASHASH英文全程是:ActiveSessionHistory;中文名字可以叫做:活动会话历史信息记录。ASH是以V$SESSION视图为基础,每秒采样一次,目的是记录活动会话的等待事件。这样,就给我们这些DBA一种“找后账”的途径。ASH是快速诊断数据库问题的一种参考途径,与AWR功效
【视图】使用V$SQL_PLAN视图获取曾经执行过的SQL语句执行计划
通常我们查看SQL语句的执行计划都是通过EXPLAINPLAN或者AUTOTRACE来完成。但是这些查看方法有一个限制,它们都是人为触发而产生的,无法获得数据库系统中曾经执行过的SQL语句执行计划。V$SQL_PLAN视图弥补了这个这个功能缺陷。使用这个视图可以获得当前数据库实例librarycac
【SCRIPTS】快速清理Schema中所有表和序列的PL/SQL脚本
如果想要快速的删除一个Schema下的所有数据库对象,您会使用什么样的手段来完成呢?如果您是DBA,可能更倾向于先删除用户然后再重新创建用户。优点:删除的彻底,不留任何痕迹(这是DBA伟大和危险的真实体现)。缺点:要求的操作权限比较高,往往需要DBA亲力亲为;有一定误操作的风险;不便于书写到自动化脚
【IMPDP】当导入数据时遭遇表已存时的应对手段——TABLE_EXISTS_ACTION参数
当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:a.忽略(SKIP,默认行为);b.在原有数据基础上继续增加(APPEND);c.先DROP表,然后创建表,最后完成数据插入(REPLACE);d.先TRUNCATE,再完成数据插入(TRUNCATE)。真实
【LISTENER】修改 LISTENER的监听端口为1526(动态注册)
曾经在下面文章中使用“静态注册”的方法完成监听端口的修改,本文将使用修改数据库修改初始化参数local_listener的方法来完成监听端口的调整。《【LISTENER】修改LISTENER的监听端口为1526(静态注册)》http://space.itpub.net/519536/viewspac
【IMPDP】同一数据库实例不同用户间数据迁移复制——NETWORK_LINK参数
如何快速的复制一个用户的数据到另外一个用户(这个用户可能在不同的数据库中)?一般答案:使用EXP(EXPDP)与IMP(IMPDP)相结合完成用户数据的导入和导出高级方法:IMPDP工具提供的NETWORK_LINK参数可以一步到位的完成此项艰巨的任务。这种方法非常类似于使用CTAS方法在表复制中的
【问题处理】使用trim和 replace处理字符串中的换行符号
如果查询ASCII码表,10代表的是换行符(^J),13代表的是回车符(^M),据此再结合Oracle的trim函数或replace函数便可达到删除字符串中的换行或回车字符的目的。1.创建表T,初始化四条数据1)创建表Tsec@ora10g>createtablet(xvarchar2(10)
【KSDWRT】自发在ALERT文件或TRACE文件中留“脚印”
使用sys.dbms_system.ksdwrt存储过程可以实现主动向alert或trace文件中记录信息的功能。简单记录一下,供参考。1.先看一下向alert文件中写信息的功能1)使用参数“2”实现向alert文件中记录信息sys@ora10g>executesys.dbms_system.
【执行计划】格式化EXPLAIN PLAN的输出结果
在9iR2及以前的Oracle版本中,可以使用列格式化命令对EXPLAINPLAN的输出结果进行格式化。这个方法在10g中已经无效,实验参考如下。1.与AUTOTRACE相关的列名大体有6个,关于AUTOTRACE和这6列的描述信息,可以参考官方文档1)参考链接:Oracle官方文档将这部分的解释放
【Shell】cp -r -f 强制覆盖拷贝时仍需一一确认问题的处理方法
今天同事遇到了如题的问题,现把问题的出处和处理方法记录到这里:问题现象:使用cp-r-f强制覆盖拷贝命令时,每一个文件都需要认为的键入“Y”进行确认,甚是烦扰,难道要我点击一万下不成?问题原因:不知道哪位可爱的同事为了防止“特别”选手不正当的使用cp命令,设置了cp的同名aliascp='cp-i'
【层次查询】Hierarchical Queries之CONNECT_BY_ISLEAF伪列
有关层次查询之前的文章参考如下。【层次查询】HierarchicalQueries之LEVEL应用http://space.itpub.net/519536/viewspace-623916【层次查询】HierarchicalQueries之“树的遍历”http://space.itpub.net/
2009年中国云计算大会
应邀参加了2009.5.22在中国大饭店举行的中国首届云计算大会。大会上聆听了众多领域内的云前沿大师们关于“云计算”下的定义。从最开始提出的Grid(网格计算)到现在的Cloud(网格计算),我一直没有很好的概念上的理解,在这次会议上李德毅院士从非常学术的high-level角度上介绍了他们之间的关
【RAC】删除RAC数据库节点(三)——删除监听
本文介绍删除数据库节点的第三个步骤,删除监听。在进行此步删除操作之前,请确保以下删除动作已经完成。《【RAC】删除RAC数据库节点(一)——删除数据库实例》(http://space.itpub.net/519536/viewspace-676893)《【RAC】删除RAC数据库节点(二)——删除A
【实验】分析函数之魅力展示
众所周知,Oracle的分析函数在BI类的分析数据库中起到了非常大的作用,不仅仅是因为它能做的事情非常的丰富,同时,分析函数作为Oracle的内部实现,较之其他的实现形式(例如使用groupby实现)效率也是出奇的高。通过这个例子展示一下分析函数的一点点魅力。1.样本数据如下sec@ora10g&g
【HINT】使用“NO_INDEX ”Hint提示避免SQL使用特定索引
在生产环境的SQL调优测试过程中经常遇到如下场景:一张表上创建了非常多的索引(不推荐),每一个索引都是针对特定业务查询而增加的。这极易导致SQL由于个别索引的引入出现性能问题,在这种情况下不能简简单单的将索引删除在解决问题。如何避免SQL不使用特定索引这个问题便摆在了我们面前。这里给出通过使用Hin