在这里,我们将给大家分享关于Oracle11gR2新特性:DeferredSegmentGeneration的知识,让您更了解oraclexe112的本质,同时也会涉及到如何更有效地(PLSQL+Or
在这里,我们将给大家分享关于Oracle 11g R2 新特性:Deferred Segment Generation的知识,让您更了解oraclexe112的本质,同时也会涉及到如何更有效地(PLSQL + Oracle 11g 64bit + 32位oci.dll文件) 访问Oracle 11g、11g compression 新特性(1)、11g 新特性 Member Kill Escalation 简介、IAR 编译错误 Error [e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At le...的内容。
本文目录一览:- Oracle 11g R2 新特性:Deferred Segment Generation(oraclexe112)
- (PLSQL + Oracle 11g 64bit + 32位oci.dll文件) 访问Oracle 11g
- 11g compression 新特性(1)
- 11g 新特性 Member Kill Escalation 简介
- IAR 编译错误 Error [e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At le...
Oracle 11g R2 新特性:Deferred Segment Generation(oraclexe112)
当你安装一个包含成千上万的表和索引的应用时,如果每个表和索引都初始分配一个 10MB 的初始 extent 。你很快会意识到如果每个对象在创建时都要分配 10 MB 的磁盘空间,则部署 DDL 需要花费大量的时间。你可能会想到让 Oracle 延迟每个对象的初始 extent 分
当你安装一个包含成千上万的表和索引的应用时,如果每个表和索引都初始分配一个 10MB的初始 extent。你很快会意识到如果每个对象在创建时都要分配 10 MB的磁盘空间,则部署DDL需要花费大量的时间。你可能会想到让 Oracle延迟每个对象的初始extent分配直到该表中实际插入记录为止。
要延迟对象初始 segment的生成,唯一的方式就是使用 Oracle Database 11g R2。从 Oracle Database 11g R2以后,默认情况下,表(及其关联的索引)的物理 extent分配会延迟到该表插入首条记录时。
下面我们以一个简单的小例子来说明这一新特性:
首先,我们新建一张表(不插入任何记录):
SQL> create tabletest as select * from emp where 1=2;
Table created.
然后,我们查询 USER_SEGMENTS和 USER_EXTENTS来验证该表是否分配了物理的存储空间:
SQL> selectcount(*) from user_segments where segment_name=''TEST'';
COUNT(*)
----------
0
SQL> selectcount(*) from user_extents where segment_name =''TEST'';
COUNT(*)
----------
0
接下来我们往新建的 TEST表中插入一条记录,验证记录插入后是否为该表分配存储空间:
SQL> insert intotest select * from emp where rownum
1 row created.
SQL> selectcount(*) from user_extents where segment_name =''TEST'';
COUNT(*)
----------
1
SQL> selectcount(*) from user_segments where segment_name=''TEST'';
COUNT(*)
----------
1
上面的行为与之前的 Oracle版本有很大区别。在之前的Oracle版本中,只要创建一个对象,就会为该对象分配初始化 segment及相应的 extent。Deferred segment generation同样适用于分区表和分区索引。表在其初始记录插入之前不会分配初始 extent空间。
从 Oracle Database 11g R2以后,对于在 local managed的表空间中创建的非分区堆表,其初始 segment会延迟到该表中的第一条记录插入时创建。
Oracle 11g R2 的新特性deferred segment creation:
在创建表对象时不会分配任何物理存储空间,直至该表插入首条记录时才会分配初始 segment空间。这使得与之前的Oracle版本相比,在表中插入第一条记录时的速度要稍显得慢点,对于大多数场景,这种性能上的影响基本可以忽略。
将DEFERRED_SEGMENT_CREATION初始化参数设置为 FALSE可以禁用deferred segment creation特性。此参数的默认值为 TRUE。我们还可以在创建表时指定如下子句(新特性)来控制deferredsegment creation的
行为:
SEGMENT CREATION IMMEDIATE and SEGMENT CREATION DEFERRED
示例如下:
create table f_regs(
reg_id number
,reg_namevarchar2(2000))
segment creationimmediate;
注意要使用SEGMENTCREATION DEFERRED子句,必须将 COMPATIBLE参数设置为11.2.0.0.0及以上版本。
作者:xiangsir
9063657
QQ:444367417
MSN:xiangsir@hotmail.com
(PLSQL + Oracle 11g 64bit + 32位oci.dll文件) 访问Oracle 11g
(PLsql Developer + Oracle 11g 64位客户端 + 32位oci.dll文件) 访问Oracle 11g 数据库服务器的方法及说明:
PLsql Developer 连接 64位Oracle 数据库需要找到两个东东:
1、32位的 oci.dll 文件
因为PLsql Developer 为32位软件,故在访问 Oracle 11g 64位数据库时,需首先经过32位的oci.dll这个中间人再与64位oracle 数据库通信。故在PLsql Developer访问 64位oracle 数据库时,必须要能能找到 32位的 oci.dll文件位置。
2、ORACLE_HOME 目录(即 Oracle主目录)
找 ORACLE_HOME 是为了找到 tnsnames.ora .tnsnames.ora存储数据库连接信息。tnsnames.ora可通过”Net Configuration Assistant”配置,或直接从别的计算机上复制一个该文件放置到 Oracle客户端主目录\network\admin 中即可
解决方法多种多样,但要实现的目标也就上面两个。
具体操作步骤:
安装完 Oracle 64位客户端后,进行以下两步设置:
1 环境变量
新增: ORACLE_HOME,指定值为Oracle 64位客户端主目录,如 D:\app\database\product\11.2.0\client_1
使环境变量生效:注销计算机或在CMD命令中执行:C:> set ORACLE_HOME=D:\app\database\product\11.2.0\client_1
2 打开 PLsql Developer,选择“Cancel(或取消)”进入主界面。
选择 tool(工具)-> options(首选项)-> Oracle:指定以下两项
Oracle 主目录:(注:此处不设置ORACLE_HOME,环境变量中已设定)
Oci库:选择 32位oci.dll文件所在目录及文件名,如 :d:\app\oraclient\oci.dll
说明: 1、测试不在Windows 环境变量中指定ORACLE_HOME,而是直接在 PLsql Developer 中指定 “Oracle 主目录”与 “OCI库文件”,连接不成功。 2、32位 oci.dll的获取有两种方式,一是再安装一个32位Oracle 11g 客户端;二是直接从网络下载一个包含32位 oci.dll 的简易安装包。
11g compression 新特性(1)
总结
以上是小编为你收集整理的11g compression 新特性(1)全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
11g 新特性 Member Kill Escalation 简介
首先我们介绍一下历史。在oracle 9i/10g 中,如果一个数据库实例需要驱逐(evict,alert 文件中会出现ora-29740错误)另一个实例时,需要通过LMON进程在控制文件(以下简称CF)中写入相应信息,当目标实例的LMON进程读取到相应的信息后,该实例shudown。但是,如果目标实例的LMON进程挂起而无法完成CF I/O的话,eviction将无法成功,这种情况有可能导致整个数据库挂起,需要dba手工干预。
所以,从oracle 11gR1 开始,Member Kill Escalation的出现成功的解决了前面提到的情况。当实例eviction在指定的时间内(默认20秒)不能成功完成时,oracle会在css层面上(因为lmon进程会作为成员注册到css上,相应的内容会在今后的文章中介绍)产生一个新的进程 Kill Daemon(以下简称KD),终止目标实例的LMON进程以保证eviction 能够成功结束。如果情况更糟,KD进程也无法在指定的时间内(默认30秒)终止LMON进程,css 会把member kill升级为node kill,目标节点的css会重新启动本节点,以确保数据库的一致性。当然,如果您的版本是11.2.0.2或更高,由于新特性Rebootless restart的引入,node kill首先会尝试重新启动GI stack,如果不能够完成,才会重新启动节点。
接下来我们用下面的例子说明Member Kill Escalation是如何工作的。
1.实例2发现实例1的LMS1进程出现问题,并发出member kill request.
实例2 Alert log:
Sat Jul 24 10:37:37 2010
LMS1 (ospid: 22636) has detected no messaging activity from instance 1
LMS1 (ospid: 22636) issues an IMR to resolve the situation
Please check LMS1 trace file for more detail.
Sat Jul 24 10:37:37 2010 <======= 实例2发出reconfiguration请求
Communications reconfiguration: instance_number 1
Sat Jul 24 10:38:25 2010
evicting instance 1 from cluster
Waiting for instances to leave:
1
Sat Jul 24 10:38:45 2010 <===== 在reconfiguration请求发出20秒之后实例1仍然没有离开集群,实例2发出了member kill的请求。
Remote instance kill is issued with system inc 10
Remote instance kill map (size 1) : 1
Sat Jul 24 10:38:55 2010
Waiting for instances to leave:
1
2. 节点2的ocssd.bin收到member kill请求之后,向节点1的KD发出了请求,要求终止节点1的lmon进程。
节点2 ocssd.log:
2010-07-24 10:38:45.112: [ CSSD][1091119424]clssgmExecuteClientRequest: Member kill request from client (0x2aaab4178470)
2010-07-24 10:38:45.113: [ CSSD][1091119424]clssgmReqMemberKill: Kill requested map 0x00000001 flags 0x2 escalate 0xffffffff <========= member kill escalation还没有发生。
2010-07-24 10:38:45.113: [ CSSD][1281349952]clssgmMbrKillThread: Kill requested map 0x00000001 id 2 Group name DBOR08P flags 0x00000001 start time 0x98117058 end time 0x9811e77c time out 30500 req node 2 <======= member kill 需要在30秒内完成。
如果节点1能够在指定的时间内(30秒)终止本地lmon进程,member kill 就不会被escalation 成为node kill。
3.由于member kill 没有在指定的时间内完成,被escalate 为node kill,即节点1 重启。
节点2 ocssd.log:
2010-07-24 10:39:15.619: [ CSSD][1281349952]clssgmMbrKillThread: Time up: Start time -1743687592 End time -1743657092 Current time -1743657092 timeout 30500
2010-07-24 10:39:15.619: [ CSSD][1281349952]clssgmMbrKillThread: Member kill request complete.
2010-07-24 10:39:15.619: [ CSSD][1281349952]clssgmMbrKillSendEvent: Missing answers or immediate escalation: Req member 1 Req node 2 Number of answers expected 0 Number of answers outstanding 1
2010-07-24 10:39:15.620: [ CSSD][1281349952]clssgmMbrKillEsc: Escalating node 1 Member request 0x00000001 Member success 0x00000000 Member failure 0x00000000 Number left to kill 1
2010-07-24 10:39:15.620: [ CSSD][1281349952]clssnmKillNode: node 1 (ghlx062ptlge) kill initiated <====== 节点1被重启
注意:member kill escalation不仅适用于database 实例,同时也适用于ASM实例。
IAR 编译错误 Error [e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At le...
问题:个人使用的是 IARV9.10 编译 CC2541 的工程,没有做任何修改,直接编译出现如下错误
Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0x8 more bytes needed. The problem occurred while processing the segment
出现问题后经过百度查找,导致这个错误的原因是编译器配置问题,解决办法如下:
依次打开 Project -> Options -> General Option -> Target,在 Target 标签中找到 “Number of virtual”,原来默认为 16,修改为 8。
修改完之后点 OK,再次编译之前的错误已经没有了。
到此问题解决!
关于Oracle 11g R2 新特性:Deferred Segment Generation和oraclexe112的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于(PLSQL + Oracle 11g 64bit + 32位oci.dll文件) 访问Oracle 11g、11g compression 新特性(1)、11g 新特性 Member Kill Escalation 简介、IAR 编译错误 Error [e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At le...的相关信息,请在本站寻找。
本文标签: