用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
oracle全文索引之About_INDEX_THEMES操作
Oracle的全文索引除了支持文字匹配查询,还支持对文章涵义的查询。这是通过ABOUT操作实现的。[@more@]Oracle默认情况下支持英文和法文的文章涵义支持。其他语言可以添加通过用户自定义的语言库来实现相应的功能。在这之前需要先安装Companion CD 的Oracle Database 10g Products Installation Type,其中包括了Oracle Text Supplied Knowledge Bases,否则在建立含有about的索引时会出错。Companion CD可直接在官网下载,安装也非常简单。下面看看英文环境下简单的ABOUT操作用法:SQL> conn myuser/myuserConnected.SQL> CREATE TABL
oracle全文索引之STOPLIST_ CTXCAT 索引_INDEX SET
这篇文章介绍的是ORACLE CTXCAT索引的INDEX SET,也是CTXCAT索引特有的属性。[@more@]CTXCAT 索引是CONTEXT索引的简化版,CTXCAT索引支持的PREFERENCE包括:LEXER、STOPLIST、WORDLIST和STORAGE 参数。不支持其他的参数如:DATASTORE、FILTER、SECTION GROUP。虽然支持LEXER但不支持THEME查询,而且不支持FORMAT、CHARSET和LANGUAGE列,另外不支持表和索引分区。CTXCAT 索引仅仅包含了CONTEXT索引的部分内容,但是CTXCAT索引有其自身的优点。其中最突出的优点就是支持DML同步。CONTEXT索引由于结构过于复杂,且索引的数据量一般较大,因此
oracle全文索引之STOPLIST_4_MULTI_STOPLIST
这篇文章介绍Oracle全文索引的STOPLIST属性。介绍的是MULTI_STOPLIST。[@more@]上一篇文章中已经提到了,DEFAULT_STOPLIST的语言是由DEFAULT_LEXER决定的。Oracle对于多语言的文档支持MULTI_LEXER,同时也支持MULTI_STOPLIST。在增加同义词的时候,可以为某个停用词指定语言,这个停用词就只对指定的语言生效。而默认不指定语言的情况,则对任何语言都生效。SQL> CREATE TABLE T (ID NUMBER, LANGUAGE VARCHAR2(7), DOCS VARCHAR2(1000));表已创建。SQL> INSERT INTO T VALUES (1, 'ENGLIST', 'THIS IS A MULTI_STOPLIST EXAMPLE.')
oracle全文索引之STOPLIST_3_DEFAULT_STOPLIST
这篇文章介绍Oracle全文索引的STOPLIST属性。介绍的是DEFAULT_STOPLIST。 Oracle 的DEFAULT_STOPLIST和其他属性的DEFAULT值不太一样。一般的属性的DEFAULT值都会指向一个已经存在的属性值,比如 DEFAULT_DATASTORE指向DIRECT_DATASTORE,DEFAULT_FILTER会根据DATASTORE属性和字段类型的不同 指向NULL_FILTER或INSO_FILTER。而DEFAULT_STOPLIST和上述这些属性都有一定的差别。 DEFAULT_STOPLIST指向BASIC_STOPLIST,但是DEFAULT_STOPLIST并不等于BASIC_STOPLIST,在介 绍BASIC_STOPLIST的时候已经发现,创建一个BASIC_STOPLIST后,并
oracle全文索引之STOPLIST_2_EMPTY_STOPLIST
这篇文章介绍Oracle全文索引的STOPLIST属性。介绍的是EMPTY_STOPLIST。 [@more@]如果索引的文章比较短小,或者认为文章中所有的内容都是关键性的,那么可以选择EMPTY_STOPLIST。使用EMPTY_STOPLIST表示系统中不包含任何的停用词,只要文章中出现的单词,都是可以索引到的。下面看个简单的例子,对于默认停用词‘THIS’和‘A’,使用默认的停用词无法查询到这些信息,只有使用EMPTY_STOPLIST才行。SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(100));表已创建。SQL> INSERT INTO T VALUES (1, 'This is a simple stoplist examp
oracle全文索引之STOPLIST_1_BASIC_STOPLIST
这篇文章开始介绍Oracle全文索引的STOPLIST属性。首先介绍的是BASIC_STOPLIST。[@more@]Oracle的全文索引允许用户建立停用词,来屏蔽那些包含信息量比较小且出现概率比较高的词语。比如英文中的a、this、are、the等词语,几乎每篇文章中都会包含这些常用词,因此对这些词语进行索引的意义不大。SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));表已创建。SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));Table created.SQL> INSERT INTO T VALUES (1, 'THIS IS A STOPLIST EXAMPLE.');1 row created.SQL> COMM