不错的关于Oracle 全文索引的文章(zt)
Oracle从7.3开始支持全文检索,即用户可以使用Oracle服务器的上下文(ConText)选项完成基于文本的查询。具体可以采用通配符查找、模糊匹配、相关分类、近似查找、条件加权和词意扩充等方法。在Oracle8.0.x中称为ConText ;在Oracle8i中称为interMedia Text ; Oracle9i中称为Oracle Text。http://blog.csdn.net/fengzhu1008/archive/2009/01/15/3784853.aspx[@more@]Oracle 全文索引前言:Oracle从7.3开始支持全文检索,即用户可以使用Oracle服务器的上下文(ConText)选项完成基于文本的查询。具体可以采用通配符查找、模糊匹配、相关分
How to set up Software raid1 configuration on a running system
This guide explains how to set up software RAID1 on an already running RHEL 4 system. The GRUB bootloader will be configured in such a way that the system will still be able to boot if one of the hard drives fails (no matter which one).[@more@]Introduce my environment:In my test environment I'm using a RHEL 4 U 5 system with two hard drives, /dev/sda and /dev/sdb which are identical in size. /dev/sdb is currently unused, and /dev/sda has the following partitions:/dev/sda1: /boot partition, ex
bad block表上坏块的处理
今天一台数据库出现块块,日志文件如下:04:38:44 2009Corrupt Block Found TSN = 8, TSNAME = DEALSPACE RFN = 4, BLK = 39387, RDBA = 16816603 OBJN = 82751, OBJD = 82751, OBJECT = P_100_111049_PDETAIL, SUBOBJECT = SEGMENT OWNER = RAD_MBK, SEGMENT TYPE = Table Segment由于没有备份通过eygle的方法恢复了大部分的数据,记录一下eygle的方法http://www.itpub.net/viewthread.php?tid=201766&extra=&page=1大概的步骤如下:ALTER SYSTEM SET EVENTS='10231 trace name context forever
用dbms_streams_tablespace_adm表空间的迁移(4)
上一篇文章中已经介绍了通过CLONE_TABLESPACES过程表空间,这一篇继续描述如何通过ATTACH_TABLESPACES过程,将表空间加载到目标数据库中。[@more@]首先需要将源库的datafile和元文件通过scp都copy过来。[oracle@rhel131 transfer]$ pwd/u01/transfer[oracle@rhel131 transfer]$ lsNADSPACE001.dbf NADSPACE003.dbf NADSPACE_091027.dpNADSPACE002.dbf NADSPACE004.dbf NADSPACE_091027.log建立这个目录的directorySQL> create directory D_TRANS_3 as '/u01/transfer';Directory created.SQL> grant read,write on directory D_
用dbms_streams_tablespace_adm表空间的迁移(3)
这次迁移的表空间由于保存在异地,因此无法通过PULL过程来实现,比如分成CLONE和ATTACH两个阶段。且由于当前的表空间包含多个数据文件,因此不能使用SIMPLE方法,只能通过CLONE_TABLESPACES或DETACH_TABLESPACES过程来实现。又因为源数据库表空间不打算删除,因此使用CLONE_TABLESPACES过程来实现迁移。[@more@]数据库版本、数据块大小、以及字符集和自包含的检查都跳过源数据库:需先建立存放dump file的目录SQL> CREATE OR REPLACE DIRECTORY D_TRANS AS '/u01/trans';Directory created.SQL> grant read,write on directory D_TR
用dbms_streams_tablespace_adm来表空间的迁移(2)
由于PULL_SIMPLE_TABLESPACE只能迁移一个数据文件的表空间,多于一个数据文件的表空间需要用PULL_TABLESPACES来完成。 其中PULL过程实际上包含了CLONE以及ATTACH两个过程,其中还包括了DBMS_FILE_TRANSFER包的调用,使得在目标数据库执行一个命令就完成表空间迁移的所有的操作。[@more@] PULL_TABLESPACES过程完成以下动作 1. Makes any read/write tablespace in the specified tablespace set at the remote database read-only 2. Uses Data Pump to export the metadata for the tablespaces in the tablespace set 3. Uses a
用dbms_streams_tablespace_adm来表空间的迁移(1)
http://yangtingkun.itpub.net/post/468/484859在9i的时候,表空间的迁移使用EXP/IMP来实现。在10g中,除了使用EXP/IMP之外,还可以使用数据泵EXPDP/IMPDP,以及RMAN的命令TRANSPORT TABLESPACE命令,除此之外,还可以通过PL/SQL包DBMS_STREAMS_TABLESPACE_ADM来实现。这一篇介绍PULL_SIMPLE_TABLESPACE过程。Oracle的DBMS_STREAMS_TABLESPACE_ADM包提供了8个过程:ATTACH_TABLESPACES、ATTACH_SIMPLE_TABLESPACE、CLONE_TABLESPACES、CLONE_SIMPLE_TABLESPACE、DETACH_TABLESPACES、DETACH_SIMPLE_TABLESPACE、PULL_TABLESPACES、PULL_SI
buffer cache size的学习笔记
读深入解析ORACLE的buffer cache原理一篇的学习笔记[@more@]SQL> show parameter db_cache_sizeNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_cache_size big integer 16MSQL> @gethidparEnter value for par: lru_latchesold 4: AND x.ksppinm LIKE '%&par%'new 4: AND x.ksppinm LIKE '%lru_latches%'NAME VALUE DESCRIB------------------------------
Latch及latch冲突 (zt)
引言 Oracle Rdbms应用了各种不同类型的锁定机制,latch即是其中的一种,本文将集中介绍latch(闩)的概念,理解latch的实现方法并说明引起latch冲突的原因。[@more@]什么是latch Latch是用于保护SGA区中共享数据结构的一种串行化锁定机制。Latch的实现是与操作系统相关的,尤其和一个进程是否需要等待一个latch、需要等待多长时间有关。 Latch是一种能够极快地被获取和释放的锁,它通常用于保护描述buffer cache中block的数据结构。与每个latch相联系的还有一个清除过程,当持有latch的进程成为死进程时,该清除过程就会被调用。
10g中同时设置了SGA_TARGET和SHARED_POOL_SIZE的问题
我一直认为同时调置了SGA_TARGET和SHARED_POOL_SIZE两个参数时,SHARED_POOL_SIZE的值会忽略,其实是不对的。来纠正一下:同时设置了SGA_TARGET和SHARED_POOL_SIZE或其它参数(如Database buffer cache,Streams pool,Java pool,Large pool),这些参数的设置并不会忽略掉,而是指定其相应pool的最小值。[@more@] 一道OCP的题说明:You are working in Automatic Shared Memory Management mode, and some of the parameters are set as shown below: SGA_MAX_SIZE = 12GSGA_TARGET = 10gDB_RECYCLE_CACHE_SIZE = 1GSHARED_POOL =
安装9204 for rhel4出现的问题总结
最近由于需要测试的原因,安装了9204 for rhel4 u4,太长时间没有装这个版本的了,搞了两天时间,哎。 期间出现很多问题,把出现的问题列一下: [@more@]1:一开始就不顺利,执行 runInstaller时出错:Error occurred during initialization of VMUnable to load native library: /tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386/libjava.so: symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference解决方法:需要安装 patch p3006854_9204_LINUX.zip也同时安装了p3119415_9204_LINUX.zip
Howto add an disk to Solaris 10
An common task is to connect another SATA disk to the system. When you're used on running Linux, you will find it logic that Linux just sees the disk, and you can fdisk it right away. Solaris is just another story.[@more@]To let solaris know a new disk is added I run the cmd :devfsadm -vCIt scans the system and will add and remove new and old devices. When the cmd completes, time for another cmd : formatThis cmd let you choose a disk to format, and create an Solaris label on the disk. After
测试ODU的DROP掉的表恢复
继续测试一下drop表用ODU是怎么恢复的,http://www.laoxiong.net/odu_recover_drop_table.html[@more@]SQL> conn myuser/myuser Connected.SQL> create table odu_test2 as select * from all_tables;Table created.SQL> desc odu_test2; Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) TABLE_NAME NOT NULL VARCHAR2(30) TABL
测试ODU的truncate表恢复
测试ODU的truncate表恢复老熊的ODU主页地址:http://www.laoxiong.net/category/odu测试平台是linux 32bit+oracle10.2.0.1 [@more@]测试ODU的truncate表恢复老熊的ODU主页地址:http://www.laoxiong.net/category/odu测试平台是linux 32bit+oracle10.2.0.1SQL> conn myuser/myuserConnected.SQL> create table ODU_TEST as 2 select * From all_objects;Table created.SQL> select count(*) from ODU_TEST; COUNT(*)---------- 40726SQL> truncate table ODU_TEST;Table truncated.先查看此表所在的表空间,将其offlin
inux下静默安装,升级和删除Oracle客户端
有的时候不方便登陆Linux的图形界面安装oracle客户端,我们完全可以采用静默模式安装,升级和删除oracle客户端(代替OUI)。 平台:RHEL4.5,oracle10.2.0.1[@more@] 一、静默方式安装oracle客户端 1、上传oracle软件,假如放在/orahome/soft/目录下 a # mkdir -p /orahome/soft/ # cd /orahome/soft/ # rz (SecureCRT里通过rz命令上传oracle10g安装文件10201_client_linux32.zip) 2、设置安装oracle软件必须的操作系统信息,如组、用户、目录、用户初始化参数等 --增加组和用户 # groupadd oinstall # useradd -g o
CONTEXT索引对COMMIT操作的影响 (ZT)
ORACLE的CONTEXT索引不是实时同步的,Oracle为了保证索引的碎片程度以及普通DML的执行效率,并没有在进行DML操作的同时进行索引的维护。而是选择了定期或根据需要时进行维护的方法。 但是Oracle在处理INSERT操作和处理DELETE操作上又有所差异。[@more@]今天在论坛上看到了有人遇到了这个问题:http://www.itpub.net/670998.html。这里就简单分析一下。看下面的例子:SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));表已创建。SQL> INSERT INTO T SELECT ROWNUM, OBJECT_NAME || ' ' || OBJECT_TYPE FROM USER_OBJECTS;已创
怎样得到准确的执行计划
我们知道autotrace和explain plan以及dbms_xplan.display包都是通过对plan_table的查询和格式化后输出执行计划的结果,有时会不准确。 准确的执行计划需要从V$sql_plan视图中抓取,下面通过几种方法从V$SQL_PLAN中得到执行计划。[@more@]最好的方法是通过dbms_xplan.display_cursor包,执行这个包需要知道sql的sql_id以及child_numberSQL> select t.* from v$sql s,table(dbms_xplan.display_cursor(s.sql_id,s.child_number)) twhere s.sql_text like '%where b=5%' and s.parsing_user_id <> 0; 2 3 4PLAN_TABLE_OUTP
oracle统计信息和直方图
oracle统计信息和直方图的理解[@more@]以前一直对统计信息的理解就是对行的数据分布的,提供改CBO来选择高效的执行计划。这段时间看了不少资料,对统计有了一个更清晰的认识 统计信息: 1,表中的统计信息 2,索引列的统计信息 3,一般列的统计信息 表的统计信息:1,表行数,使用的块数,空的块数,块的使用率,行迁移和链接的数量,pctfree,pctused的数据,行的平均大小 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->se
Oracle直方图详解(ZT)
当系统中的某些表存在高度不均匀的数据分布时,使用柱状图能够产生更好的选择性评估,从而产生更加优化的执行计划。柱状图提供一种有效和简捷的方法来呈现数据的分布情况。[@more@]下面通过一个具体的例子解释柱状图的使用。SQL> create table tab (a number, b number);Table created.SQL> begin for i in 1..10000 loop insert into tab values (i, i); end loop; commit; end; /PL/SQL procedure successfully completed.SQL> update tab set b=5 where b between 6 and 9995;99
oracle全文索引之停用词的通配符功能
全文索引停用词的设置在前面的文章中已经介绍过了,这里简单说明记录一下停用词在查询时候需要注意的地方。[@more@]Oracle10g中,如果安装语言为中文,默认的LEXER为CHINESE_VGRAM_LEXER,默认的停用词语言也为中文。这篇通过对比中文环境和英文环境来说明停用词查询的一些特点。SQL> show userUSER is "MYUSER"SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));Table created.SQL> INSERT INTO T VALUES (1, 'This example test stopword.');1 row created.SQL> INSERT INTO T VALUES (2, 'Oracle9i chinese