解析INDEX_DESC

oracle执行计划中有类INDEX_DESC提示,我们知道,一般的索引是根据索引列的字段值升序排列,扫描会根据where条件的值判断entry,然后对索引树进行leaf的扫描,在读取leaf的顺序上,INDEX_DESC是个反向的过程,它从树的最后一个leaf往前读取,对于要求从大批量数据中返回少量top large value这类SQL需求来讲,无疑是比较高效的方式
来看一下/*+ index */和 /*+ index_desc */在读取上的不同。
【 阅读全文 】

9i RAC静默升级至10g RAC

周末帮朋友升级了一个9i rac的数据库,版本是9.2.0.4/操作系统 redflag,数据文件采用裸设备,需要升级到10g rac (10.2.0.4),由于数据量很大且属于同平台同机升级,于是排除掉 exp/imp方案,安装好10.2.0.4的版本的crs和db后,直接升级数据字典.
【 阅读全文 】

下午部署DG,顺手写了几个DG维护脚本

下午给项目搭建了套DG,没啥好说的,顺手写了几个脚本,后面还需完善完善.
1.主备库开机自动启动(自动判断库运行模式,如果为Primary ,则启动到open状态,如果为Standby,则启动到recover managed standby database状态)
【 阅读全文 】

[HA]利于heartbeat构建Oracle高可用

Linux下有很多集群软件,不同程度的在企业的高可用和负载均衡环境中发挥着作用. Heartbeat作为Linux-HA项目组开发出来的一套开源软件,也可以为应用/系统提供高可用服务.官方网站这样描述它:
【 阅读全文 】

SCN之 Block scn/commit scn/delayed block cleanout

    Block的cache header部分,记录着一个block scn,它是当前块最后一次变更的时间戳(确切说,这个更新并不是指itl上的scn的最新更新,在接下来delayed block cleanout下的slot重用情况下,可以看到block scn并不等于itl上的最后一次更新的scn)。可以通过dump获得block scn/last itl scn 和发布ora_rowscn语句获得last itl scn。

1. SQL> select distinct ora_rowscn,dbms_rowid.rowid_block_number(rowid) from test_ind where dbms_rowid.rowid_block_number(rowid)=31501;
ORA_ROWSCN DBMS_ROWID.ROWID_BLOCK_NUMBER(
———- ——————————
617405 31501

2. SQL> alter system dump datafile 4 block 31501;
Start dump data blocks tsn: 4 file#: 4 minblk 31501 maxblk 31501
buffer tsn: 4 rdba: 0x01007b0d (4/31501)
scn: 0×0000.00096bbd seq: 0×01 flg: 0×02 tail: 0x6bbd0601
frmt: 0×02 chkval: 0×0000 type: 0×06=trans data
――――――――――――――――――――――――――――――――――――――
Itl Xid Uba Flag Lck Scn/Fsc
0×01 0x000a.001.00000089 0x008033be.0046.14 C— 0 scn 0×0000.00065b9e
0×02 0×0008.02b.000000ac 0x00802fea.004a.28 –U- 1 fsc 0×0000.00096bbd

【 阅读全文 】

天下没有免费的午餐…

   近期着实运气背了点,让我不得不重新审视自己的生活态度,也渐渐印证了自己的一贯信奉:运气是种因果。

   有点唐突的离职,陡然发现路途并不平坦。舍弃与收获并非彰显分明,生活需要在拿捏之中历练。从现实意义上来讲,需要不断提醒自己,路要往前看。

    早上一觉醒来,发觉blog失效,登陆主机后台管理,方知出了大问题,自己的管理帐号被删掉了。索性发邮件给主机商,石沉大海。这个号称推出免费网站服务的站点竟然改头换面,搞起了免费硬盘服务,真好笑。比这糟的是,没太在意这段时间blog使用的数据库自动备份出了问题,只能找到7月29号的一次备份。还好自己的blog更新频率比较慢,丢失不算太多。在对比考察了N多免费虚拟主机之后,决定还是让blog走付费路线(一个顶级域名+一个php/mysql虚拟主机,全年188元,这个价格让我怦然心动)。

至此,本站域名,从www.easyora.cn 更新为 www.easyora.net.

    也许天下真的没有免费的午餐。建站初,出于稳定考虑,决定青睐于国外的主机运营商,实际发现,外国和尚也是和尚。也许,免费总是一个美好的幌子,之所以免费,使因为选择收费的模式代价太高。

小议Oracle 调度程序作业( dbms_scheduler )

整理scheduler 这一部分,源于最近发现系统上自动采集统计信息的执行时间有些异常,执行时间被定义到了上午 (这并不是一个很合理可靠的时间 ).在重新修改配置的同时,也顺便整理了这一块内容.

首先简单讲一下oracle 10g scheduler,10g引入dbms_scheduler来替代先前的dbms_job,在功能方面,它比dbms_job提供了更强大的功能和更灵活的机制/管理.它主要由以下几大块构成:
【 阅读全文 】

利用prebuild MV快速迁移跨平台数据库实施及其总结

做数据库管理维护过程中,难免会碰到一些数据库的迁移需求,不同的环境也需要根据实际情况采取不同的手段,比如对一个有宕机时间要求的数据库来说,采用逻辑导入导出的方式显而易见并不合适。而对于一个跨平台的迁移系统来说,DG也失去了用武之地。对一个跨平台的数据库系统,采用stream,高级复制都可以在相对较短时间完成迁移需求,尽可能减少停机时间。
本文利于prebuild mv的方式来完成跨平台迁移,在实施过程中,如何尽量减少停机时间,以及如何保证数据的物理逻辑,都是我们需要审慎的方面。
【 阅读全文 】