下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1 Oracle数据库简 §1.1Oracle数据库架 Oracle网格架构纵 应用架构纵 物理数据库结构纵 逻辑数据库结构纵 模式和通用模式对象纵 Oracle数据字典纵 Oracle实例纵 数据库纵 Oracle工具纵 §1.2Oracle数据库特 §1.3Oracle数据库应用开 第2 数据块、扩展和 §2.1数据块、扩展和段简 §2.2数据块纵 §2.3扩展纵 §2.4段纵 第3 表空间、数据文件和控制文 §3.1表空间、数据文件和控制文件简 §3.2表空间纵 §3.3数据文件纵 §3.4控制文件纵 第4 事务管 §4.1事务简 §4.2事务管理纵 §4.3自治事务纵 第5 模式对 §5.1模式对象简 §5.2表纵 §5.3视图纵 §5.4物化视图纵 §5.5维纵 §5.6序列纵 §5.7同义词纵 §5.8索引纵 §5.9IOT纵 应用域索引纵 集群纵 Hash集群纵 第6 模式对象之间的依赖 §6.1依赖简 §6.2模式对象依赖分 §6.3对象名称分 §6.4共享SQL依赖管 §6.5本地和依赖管 第7 数据字 §7.1数据字典简 §7.2如何使用数据字 §7.3动态性能 §7.4数据库对象元数 第8 内存架 §8.1Oracle内存结构简 §8.2SGA纵 §8.3PGA纵 §8.4和共享服务 §8.5软件代码 第9 进程架 §9.1进程简 §9.2用户进程纵 §9.3Oracle进程纵 §9.4共享服务器架 §9.5服务器配 §9.6程序接 第10 应用程序架 C/S架构简 多层架构纵 Oracle网络服务纵 第11 Oracle工 Oracle工具简 数据泵导入和导 数据泵 元数据 外部 DBVERIFY工 DBNEWID工 第12 数据库和实例启动和关 数据库实例简 实例和数据库启 数据库和实例关 第13 数据并发性和一致 多用户环境下数据并发性和一致性简 Oracle管理数据并发性和一致性原 Oracle锁数据原 Oracle闪回查 第14 管理 安装 智能基础构 性能诊断和故障解 应用程序和sql调 内存管 空间管 管 备份和恢 配置管 工作负载管 自动管 作业调度程 第15 备份和恢 备份简 恢复简 使用何种恢复技 闪恢复区 第16 商业智 数据仓库和业务智能简 数据仓库中的物化视 数据仓库中的位图索 并行执 解析的 OLAP性 数据挖 第17 高可用 高可用性简 非计划停工期纵 计划停工期纵 第18 分区表和分区索 分区简 分区方法纵 分区索引纵 分区以提升性 第19 内容管 内容管理纵 XMLin Oracle Oracle Oracle Oracle 第20 数据库安 数据库安全简 认证方法纵 纵 表、视图、同义词或行上的限 安全策 数据库审 第21 数据完整 数据完整性简 完整性约束纵 完整性约束类 约束检查机 延迟约束检 约束状 第22 触发 触发器简 触发器的各部 触发器类 触发器执 第23 信息集 Oracle信息集成简 联合(Federated)..................................................... 信息共 与非Oracle系统集 第24 SQL,PL/SQL和 过程语 第25 应用程序开发语言纵 Oracle应用程序开发语言简 C/C++编程语言纵 微软编程语言纵 遗留语言纵 第26 本地数据类 Oracle数据类型简 字符型数据类 数值型数据类 RAW和LONGRAW数据类 ROWID/UROWID数据类 ANSI,DB2和SQL/DS数据类 XML数据类 URI数据类 数据转 第27 对象数据类型和对象视 对象数据类型纵 对象数据类 纵 类型继承纵 用户定义函数纵 数据类型演变纵 对象视图简 第1Oracle§1.1.1Oracle多个集群,在不同的应用和用户间共享动态资源。从独立的系统宿Oracle拥有不同的关键技术――RACStreamsOracle提供以下特性支持信息供应:传送表空间、OracleStreams、虚拟私有数据库、Oracle安C/S数据文件中的数据在正常数据库操作中被并缓存到Oracle内存缓更改或新的数据不需要马上写到数据文件中。为了减少磁盘提供性创建到表空间中并实际表空间中所以逻辑结构的数据。数据文件大OracleDB_BLOCK_SIZE定。可以指定最大5个块大小。扩展数据块,在单个分配中获得用于特定的信息类型。段执行系统事务时使用系统回在数据库创建时自动创建SYSTEM回滚段。之间没有任何关系,在同一模式中的对象可以在不同的表空间,而管理并由oracle使用。并被经常使用。因为相关的行被物理,磁盘时间会提高。§1.1.6Oracle§1.1.7Oracle和PGA。SGA是实例中保存数据和控制信息的共享内存区域。每个实例拥有自身的SGA。连接到数据库的用户共享SGA中的数据。SGA中的信息拆分为多实例中的数据库缓冲集合称为数据库缓冲cache。动时Oracle创建PGA。Oracle进进程:用户进程和Oracle进程。在模式下,服务器进程管理单个用户进程的请求;MTS下,多个用在某些系统中,用户进程和服务器进程是单独的。C/S模式的系统分开§1.1.8数据库纵OracleNet是Oracle网络服务的一个组件,使客户应用程序连接到Oracle数据库服务器成为可能。网络会话建立后,OracleNet作为客户应服务器进程获得语句并检查共享池中是否有相近的sql语句,如果找到共享sql区域,服务器进程检查用户的权限;否则分配新的共享sql区域以使语句可以分析和执行服务器进程在SGA中更新数据,DBWn进程在一定条件下写更改的块到磁盘中。因为事务已提交,LGWR进程马上在重做日志文件中记录事在整个过程中,其他的进程在需要的情况下运行§1.1.9OracleEXPDP/IMPDP/EXP/IMP/SQL*LOADER/LOGMINER保证语句级一致性保证写入者只在其他写入者在并发事务中更新同样的行时需要等当更新发生时,原始的数据值在数据库撤消空间中记录。Oracle用SGA中的当前信息和撤消空间中的信息构造表数据的一致性交后运行的语句才会看到提交事务改变的数据。事务是Oracle提供读取一致性策略的关键。提交SQL语句的单元:为者而产生的一致性视图指示开始点控制更新的数据何时能被其他数据库或更新事务Oracle的或整个表锁不同,Oracle通常只会锁定正在Oracle通常在实际的行自身中包含锁信息,Oracle可以锁定的行数Oracle自动管 DROPTABLE等环境下,另外的实例进行恢复(参考RAC管理)库数据的一组文件集合,重做日志包括重做日志和归档日志。控制文文件包含数据库文件结构的信息和正在由LGWR写入的日志组件包括快速开始错误恢复,RAC,RMAN,备份和恢复解决,Oracle 抽取、转换和载入OLAP性能 Oracle中的XMLOracleOracleUltraSearchOracleInterMediaOracleSpatial系统安全包括在系统级别上控制数据库的和使用机制。例如,系统安全包括:有效的用户名、;用户模式对象的磁盘空间;用户的资同的工具管理数据库安全:认证以使网络、数据库以及应用有效; 约束定义后,如果DML语句与约束,语句会回滚并返回错误;Oracle提供以下的完整性约束:NOTNULL/UNIQUEKEY/PRIMARYKEY/FOREIGN键许应用程序在本地和系统之间和交换数据。OracleMessageQueueing:DataOracle透明和通用连会话控制语句:ALTERSESSION/SETROLE系统控制语句:ALTERPL/SQL事务是由单个用户执行的一个或多个sql语句组成的逻辑工作单元。符合ANSI/ISOSQL标准的,事务从用户第一个执行的SQL语句开始,当显式提撤消事务取消事务中sql语句产生的结果;LOBRAWLONGRAW数据块是数据库使用的最小数据单元,称为Oracle块。每一操作系统均有自标准的块尺寸由DB_BLOCK_SIZE5I/O,osHeader(通用和可变:包含通常的块信息,比如块地址和段类TableDirectory(表:数据块的一部分包含块中的表的行信RowDirectory(行:块中实际行的信息(包括行数据区域中每个行片的地址;在数据块的overhead内行中分配空间后,该拥有过50行数据的块在行的header分配有100个字节。Oracle只在新行插入的时候重用这些空间。OverHead:数据块头、表和行通称为overhead。某些块的来说,固定和可变部分总共84107个字节。RowData(行数据Space(空闲空间外的空间时分配的。空闲空间保持事务,事务在每一INSTERT,UPDATE,DELETESELECT…FORUPDATE等语句需要 的空间需求时os相有两种语句可以提高一个或多个数据块的空闲空间:DELETE/UPDATE句。释放的空间在以下情况下为后续的INSERT语句可用:情况下进行数据块空闲空间碎片整理:INSERT/UPDATE语句尝试使用有块链的形式行数据。行经常出现在大行插入时,如LONG/LONGRAW。行在这种情况下是不可避免的。rowid不变。PCT,PCTUSED和对于手工管理的表空间两个空间管理参数PCT,PCTUSED使你可以在插入指定这些参数。在创建或更新索引时可以指定PCT参数。PCT参指定该参数为20,意味着表数据段中的每个数据块必须保留有20%的空间。置该参数为40:overhead并且空闲空间大于PCT的空闲列表。执行INSERT语句时,Oracle是否小于PCTUSED,如果是的话,块会重新回到事务空闲列表的起点成为该事务第一个可用的块。事务提交后,块中的空闲空间为其他 以扩展的形式描述的参数定义了每个段。参数应用于所有类型的段。如果没有指定表参数的话,用表空间的默认参数。非系对于统一的扩展,指定扩展大小或默认的大小(1M。保证每个扩展保存5个数据块。本地管理的临时表空间只能用这种分配类型;对象drop掉。不过例外的情况有:DELETEANYTRUNCATE…DROPSTORAGEDBA使用下面语句回收无用的扩展:ALTERTABLE<table_name>DEALLOCATEUNUSED;集群表在为集群创建的数据段中信息。因此,如果在集群中把某个表drop了,数据段仍然为集群中的其他表而保留,没有扩展被回 当Oracle执行完需要临时段的语句后,自动drop临时段并回收分配在事务或会话完毕后drop临时段,并回收已分配的扩展到相关的表空CREATEINDEXSELECT…ORDERBYSELECTDISTINCT…SELECT…GROUPBYSELECT…UNIONSELECT…INTERSECTSELECT…MINUS被称为’undo’。Oracle使用undo做以下工作:提供撤消段的空间分配。UNDO_POOL参数V$TRANSACTION/V$ROLLSTATV$ROLLSTAT分配的空8exabytesOMF,大文件表空间使数据文件对用户完全透明。系统默认创建小文件表空间,SYSTEM/SYSAUX表空间类型通常是系统默认类型的表空间。调整参数减少需要管理数据文件信息和控制文件大小的SGA空间;PL/SQL程序单元描述认的数据位置。在数据库创建或升级时自动创建。SYSAUX表空间提供不驻留在系统表空间的数据库元数据的集中位置。在正常的数据库操作中,数据库服务器不允许DROP/RENAMESYSAUX表空间。不支持SYSAUX表空间的传送。事务中第一个DML操作运行时,事务与某个当前撤消表空间中撤消段绑定。CREATEUNDOCREATEDATABASEDEFAULTTEMPORARY 进行的方法管理表空间自身的扩展。位图中的每个位对应一个块或标准块大小用于系统表空间。通过设置参数DB_BLOCK_SIZE指定标准块大小,从2K到32K。多块大小主要用于从OLTP数据库传送表空间到企业数。表空间离线后,Oracle不允许后续的SQL语句参考表空间中的对象。涉及系统表空间的延迟回滚段中保存相应的回滚数据。当表空间后,Oracle在需要的时候应用回滚数据到表空间上。配而使排序操作更有效。单个sql操作可以使用超过一个临时表空间用于CREATETABLESPACE/CREATETEMPORARY必须使表空间只读,拷贝这些表空间的数据文件,使用exp/imp移动数据在COMPATIBLE初始化参数设置为10或更高的数据库中第一次打开表空间Oracle通过分配指定的磁盘空间加上文件头的overhead创建表空间中的数据文件。数据文件创建后,Oracle运行所在的os在分配数据文件到Oracle之清文件旧息如文件大的,个过会耗长一段时间数据库中的第一个表空间通常是SYSTEM表空间。数据库创建时Oracle自动分配SYSTEM 个或多个数据文件,除非使用表条带化,dba和终端用户不能控制那个文件文件模式对象。ALTERDATABASEDATAFILE‘’RESIZE(tempfiles临时文件信息在数据字典视图DBA_TEMP_FILES和动态性能视图V$TEMPFILE上重做日志组中数据恢复不需要的所有重做记录,因为它们已经全在不同的物理磁盘中拷贝;的SQL语句要么全部提交要么回滚。滚或隐式DDL的提交。COMMIT,DDLSETTRANSACTION…NAME命名事务。Oracle法。只有在客户端显式用ALTERSESSION语句使恢复有效才能令语句运行在个恢复当错误条件后,挂起的语句自动恢复执行括DML和DDL语句。单独的语句事务上运行和提交DDL语句; SCN在应用中与事务ID一起查看事务名称;在数据字典中,如V$TRANSACTION使用事务名称搜寻特定的事务;SETTRANSACTION…NAME务时,用事务ID与事务名称关联。事务名称可以不唯一。两段提交机制保证所有的数据库服务器在一起参与的分布式事务中要么全部提交要么全部撤消。两段提交机制包含隐含完整性约束的DML操作、RPC和触发RECO进程自动解决未决的分布式事务,故障修复通讯重新建立后哦每个本地Oracle数据库的RECO进程自动提交或回滚所有相关节点上的未决分布式用事务的上下文执行SQL操作或回滚其他操作并返回到调用事务的上下文然PrPL/SQL块为自治的:顶层块;如 索引类型、java类和java资源以及java源代码、物化视图和物化视图日志、对象表对象类型和对象视图、操作符、序列号、函数过程包、同义词、表和 表是数据库的基本数据单元。数据在行和列中表数据的原每个行片可以最大256列。如果整个行可以插入到单个数据块中,会产生行。一个数据块通常一个行的一个行片。行片,不管还是非,都会有行头和所有或部分列的数据。完全保存在单个块中的行头至少占用3个字节。行头信息后,每个行保有列长(对于250个字节以内的列数据:1个字节;大于250字节:3个rowid定义行片的位置或地址。除非删除或导出导入,不然不会改变rowid。对于集群表,如果集群关键值改变,行仍然保存相同的rowid但有额外的指针rowid指向新的值上。LONGOracle直接路径SQL*LOADER;CREATETABLEASSELECTCREATEGLOBALTEMPORARYTABLE创建事务或会话特定的临时表。对于使用临时段。临时表、索引不会在创建时创建段而是在第一个INSERT语句执行时INSERT语句执行后会话更临时表绑定绑定前可以执行DDL语句。 MIT/ROLLBACK取消绑定。外部表的并行时,Oracle会:分析共享SQL区域的合并语句;连接视图是From子句中有超过一个或多个表、视图,但没有用上DISTINCE、聚合、GROUPBY、STARTWITH、CONNECTBY、ROWNUM可更新的连接视图包括两个或多个基表或视图,并且UPDATE/INSERT/DELETE可以允许执行。数据字典视图ALL_UPDATABLE_COLUMNS,DBA_UPDATABLE_COLUMNS,USER_UPDATABLE_COLUMNS有相关的信息。中,一段时间后从中心服务器刷新并把更新到中心服务器上;消耗空间;只有逻辑意思是只是申明性的但Oracle没有强制性的约束可以定义在视图上。这些约束的目的不是强制业务规则而是定义数据。以下对于给定的申明性视图约束,DISABLE,NOVALIDATE是唯一的状态。但RELY/NORELY状态同样可允许,因为视图上的约束可以用于查询重写有维中的列从相同的表或多个表而来。定义基于多个表列的维需要用HIERARCHYJOIN唯一的连续数字而无需增加磁盘I/O或事务锁负担。同义词是表、视图、物化视图、序列、过程、函数、包、类型、Java简化sql语句;不同的列集合。Oracle提供多种索引类型:列顺序是很重要的,通常最常或最常查询的列应该面。UNIQE索引中的列可以有NULL值。对于所有列值都为NULL的时候,不会创建索引,位图索引或集群键列为NULL时例外。函数可以是算术表达式或含有PL/SQL函数、包函数、C调用或SQL函数的表达式。表达式不能保存集合函数并且必须是确定性的。不能在LOBCREATEINDEXIDX_FUNC_1ON确定性函数:任何用在函数索引的用户函数必须用DETERMINISTIC关键字定义函数的权限:索引的所有者需要函数的EXECUTE权限。如果权限收回,索引会变成DISABLE。DISABLEDISABLEDDML会出错直到索引标识为UNUSABLE并且参数SKIP_UNUSABLE_INDEXES为TRUE。设置PCT参数控制数据块的空闲空间;索引表空间要么是拥有者默认表空间或在CREATEINDEX中指定的表空间。索引放在相关表的相同表空间中,因为Oracle可以并行查询索rowid和每个被索引值的一个长度字节。索引值。然后Oracle从低向高载入索引。B树结构的优点索引搜片,Oracle把rowid附加到组片上的方式提供一个唯一片。键值压缩是把键值压缩把索引键值分为前缀entry(组片)和后缀entry(唯一片。通过在block中的后缀共享前缀entries实现压缩。只有在叶子块中的键值前缀保存除最后一个的索引键列。如果(1,2,3),(1,2,4),(1,3,4),因为每个前缀entry有4个字节。在形为(item,timestamp)在有VARRAY/NESTEDTABLE数据类型的IOT中,每个数据类型的元素的对象ID是重复的,可以压缩OID;通过反向每个索引列的字节可以避免RAC中更新集中到一小部分叶子块中用REVERSE关键字:CREATEINDEXIont(a,b,c)REVERSE;ALTERINDEXIREBUILDNOREVERSE;通常情况下,索引对应于行的每个键值的一系列rowid。而位图索引使用的是位图而不是一系列的rowid。位图中的每一位对应于可能的rowid。如果位被设置,意味着对应的rowidrowid位图索引在融合对应于WHERE语句中多个条件时很有效。那些只满足部有效的并行DML和载入;位图索引通常与Oracle优化器和查询机制集成。例如,优化器会在两个表之间在一个表上使用位图索引,另外一个表上使用b树索引进行hash连中行数的1%,或者列值重复100次以上,可以建立位图索引。SELECTCOUNT(*)FROMCUSTOMERWHEREMARITAL_STATUS=ANDREGIONIN图连接索 一个或以上的表上的对应行的rowid。在数据仓库环§5.9IOT与通常的(堆组织)在未排序集合(堆)中的表不同的是IOT的数据式存储在主键排序的B树索引结构中。除了IOT行的主键外,每个B树的索引entry非键列。每个B树索引的entry保存有:<primary_key_value,non_OrdinaryIndex-Organized键引不能OrdinaryIndex-Organized键引不能在集群OrdinaryIndex-Organized可以有LOB的列,但不能有LONG通过使用行溢出选项使不太频繁的非主键列从B树叶子块中移到溢出区域中。有溢出行区域的IOTBetry与OVERFLOW一起,使用PCTTHRESHOLD/INCLUDING语句控制Oracle如何决定行是否以及在那个非键值列上在两个部分中。使用PCTTHRESHOLD,以块第二个索引提 非主键列或主键的前戳的列的有 。Oracle使对于IOT,第二个索引的依赖于物理guess的使用和精确度:对应IOT表行中的逻辑rowid。分区IOT 索引中一次。只需要较少的。 Hash用的hash函数。Oracle自动数据库中特定的变化并在数据字典中记录相关对象的特定如果每个参考对象都是有效的,Oraclesql如果有参考的视图或PL/SQL程序单元无效,Oracle自动编译对象,假如全部编译通过,Oracle运行sql语句;如果有无效对象不能编译,Oracle返回错误并Oracle尝试证明SQL语句中的参考的第一个名字片,例如,hr.employees,hrA)在当前模式中,oracle象的名称与上述对象名称的第一个片相符,如果没有找到,跳到B)C)Oracle搜寻与名称的第一个相符的模式名称,如果找到的话,返回到B,使用名称的第二个片作为对象在已证明有效的模式中搜寻。如果第二个片不对应或不存在,Oracle返回对象;如果没有模式在C)中找到,模式对象被证明有效,余下的名称片必须与发现对象的有效部分相匹配。除了管理模式对象之间的依Oracle也会管理每个共享池中的共享SQL区。如果表、视图、同义词或序列创建、改变或dropped,所有的共享sql区域会变无效。需要重新分析sql语句以产生共享sql区。本地和数据库过程之间的依赖REMOTE_DEPENDENCIES_MODE时间点检查:在数据字典中记录过程编译或重编译的时间点。已编译版本的过程包含每个过程的信息,包括过程模式、包名称、过程名称和时间点。当依赖过程使用时,Oracle比较在编译时间记录的时间点和参考过程的当前时间点。依赖于比较的结果,有两种情况信号检查:过程的信号包含以下的信息,包、过程和函数名称、参数基本类型、参数的模式(IN/OUT/INOUT)其他模式对象之间的依赖性和视图均在SYSTEM表空间中。 Oracle在DDL语句执行的时候更新数据字典;Oracle用户使用数据字典获得数据库的信息;Oracle如何使用数据字典在数据库操作中,Oracle数据字典确认模式对象确实存在,而且用户有正确的权限。Oracle在数据库结构、审计、和数据变化时更新数据返回ALL视图的一个子集;前缀为ALL的视图前缀为DBA的视图07_DICTIONARY_ACCESSIBILITYfalseDUAL在数据库执行期间,Oracle虚拟表的集合记录当前数据库的活动,这动态性能表并不是真正的表,不会给大多数的用户。但DBA可以在其上查图(fixedviews。程序执行期间需要的信息(如当前查询有多少行提取等信息与Oracle相关的内存结构:§8.2SGAOracleOracleSGA。在执行期间由多个进程写入到SGA中。DatabasebufferredologsharedJavajavalargestreamsdatadictionarySGA(fixedSGA)。SGA包含进程间的通讯信息,比如锁信息。SGA包含一系列的内存组件,比如共享池、Java池等,所有的内存组件以granules为单位分配和回收。Oracle数据库以每个SGA组件的granule内部数目SGA的内存使用。Granule的大小由全部SGA的大小决定,在大多数平台上,如果SGA的大小小于1G,granule的大小为4M,否则为16M。SGA_MAX_SIZE的值来达到使用内存的目标。如果SGA_MAX_SIZE的据库忽略SGA_MAX_SIZE的设置。10g提供了自动内存管理,通过使用SGA_TARGET参数,Oracle在多个子组件之间自动分配内存以保证最有效的内存使用。不同的SGA组件无需额使用SGA自动管理,只需简单的设置参数SGA_TARGET为1G,如果应用需 javabufferbufferbufferSGA_TARGET包含了SGA的整个内存大小。如果SGA_TARGET在数据库启动的时候的设置值大于SGA_MAX_SIZE,会先满足SGA_TARGET的需求。启动后,SGA_TARGET可以动态减少或增加,但过SGA_MAX_SIZE的自动管理SGA组件buffer(db_keep_cache_sizedb_recycle_cache_size通过ALTERSYSTEM修改这些值。Oracle通过round新指定的值到16M的倍数并增加或减少granules以满足目标大小。数据库必须有足够的空闲granules满足请求。只要当前的SGA内存数量比SGA_MAX_SIZE小,数据库分配的granules直到通过V$SGAINFO查看每个组件使用的granule大小。每个组件的大小以及其他信息可以用V$ PONENTS查询。在视图V$SGA_RESIZE_OPS中查询循环的缓冲。buffer(保留已经修改但还没有写到磁盘上的数据。LRU列表保存空闲缓存、数据,pinned缓存是当前正在的缓存。搜寻数据。如果进程在缓冲中找到数据的时候(acachehit)直接从内存中数据。如果进程不能在缓冲中发现数据(acachemiss),进程必在数据块到缓冲前,进程必须首先找到共享的缓存。从列表的假如用户进程在搜寻LRU列表时找到脏缓存,会把脏缓存移动到写列表上继续搜寻。当进程找到空闲缓存后,从磁盘上数据块到缓冲中并移动缓存到LRU列表的MRU末尾。LRUDBW0把脏缓存写道磁盘上。执行全表扫描的时候,进程表的数据块到缓存中并把它们放到LRU列表的LRU末尾。这是因为全表扫描通常只是暂时使用,这些数据块应该数据库buffercache的大小块大小(2K-32K。使用ALTERSYSTEM在无需关闭数据库的情况下改变数据库缓冲缓存的大小。使用视图V$BUFFER_POOL不同缓冲组件的大小。重做日志缓存是SGA中保存数据库变化的循环缓存。信息保存在重做entriesentries重做entries从用户内存空间中拷贝到SGAentries占据缓存中一段连续的顺序的空间。进程LGWR写重做日志缓初始化参数LOG_BUFFER指定重做日志缓存的大小,通常,比较大的参数值可以在大型事务中减少重做文件I/O。默认设置为512K或者PL/SQ共享sql区域:保存给定sql语句的分析树和执行计划。Sql语句分析的时候Oracle从共享池中分配内存保存共享sql大小取决与语句的复杂程度。如果共享池已满的话,Oracle使用LRU算法回收某些内存以使有足够的空闲空间保存新语句的sql区域。域由全部用户使用,而每个用户保存自身会话的值的sql区域单独检查共享池是否有共享sql区域已经存在,是的话,共享sql区域用于后续语句实例的操作;否则的话,Oracle分配新的共享sql区域。Oracle分配私sqlsql区域的位置取决于会话连接的 手工清除:ALTERSYSTEMFLUSHJava通过在SGA分配称为流池的新型池指定流内存。使用初始化参数参数指定过4G的物理内存。§8.3PGAPGAaggregatedPGA PGA的内容私有sql区域包括绑定信息和运行时内存结构。执行sql语句的每个会话均有私有sql区域,每个提交相同sql语句的用户有自身的私有sql区域。因此,多个私用sql区域可以与相同的共享sql区域相关。Oracle在执行请求的第一步创建运行时区域,对于INSERT/UPDATE/DELETE语句,Oracle在语句执行万完毕后释放运行时区域。对于查询,Oracle在所有行提取或查询取消后释放运行时区域。游标和sql区域:用户进程可以分配的私有sql区域由初始化参数私有sql区域在对应的游标关闭或语句句柄释放后虽然Oracle在语保存会话的变量(登陆信息等)和其他与会话相关的信息,对于MTS,排序操作、Hash连接、位图融合、位图创建。可以自动和全局的管理sql工作区域的大小,只需要设置初始化参数PGA_AGGREGATE_TARGET指定于数据库实例PGA内存的总共大小。指定Oracle,Oracle器进程的PGA内存不超过该目标。采用PGA_AGGREGATE_TARGET参数所有会话的工作区域大小自动分配,所有的*_AREA_SIZE参数会忽略。在任意的给定时间,可用于活动工作区域的PGA内存自动从参数PGA_AGGREGATE_TARGET中获得PGA_AGGREGATE_TARGET减去系统其他组件分配的PGA内存。在以下视图中可以查看工作区域内存的分配和使用统计:应用程序或Oracle工具、Oracle数据库服务器代码。DBWn置DBW1到DBW9和DBWa到DBWj进程以额外DBWn当数据库缓冲缓存中的缓存修改后会标记为脏。冷缓存时使用算法没有最近使用的缓存。DBWn程可以找到冷、干净的缓存把新数据块拷贝到缓冲中。用户进低,需要数据块到缓存中得用户进程不能找到共享缓存,DBWn缓存,服务器进程会发出写信号到DBWn。DBWn在执行其他进程的DBWn(在重做线程中实例恢复的在所有的情况下,DBWnLGWR中。LGWR自最后一次写缓存后写已经拷贝到缓存中的所有重做entries到磁盘上。entries为新entries可用。1/3,DBWnLGWR损坏,LGWR继续写到组中的其他文件,并在LGWR文件和警告日志中记录错误。如果整个组的文件损坏,LGWR不能继续工作。当用户执行提交语句,LGWRentries做日志entry原子写时决定事务是否提交的单个。Oracle在没有SCN(Oracle录事务重entries时同时记录该SCN。SCN在重做日志中记录以使恢复操作可以在RAC或分布式数据库中同步。当检查点发生时,Oracle节信息。该工作由CKPT完成。RECO是在分布式数据库配置中使用的进程,自动解决与分布式事务相关的故障。一个节点上的RECO进程自动连接到另外一个与可疑连接。RECO只在实例运行分布式事务的情况下出现。JobQueueQueueProcessesCJQ分配一般:QMNn(QueueMonitor台进程。可以配置最多10个监视进程。其他进程MMNL执行频繁的轻量级管理任务;MMAN用于内部数据库任务;RBALASMOSMB在ASM实例中通讯;略用户进程和服务器进程之间有11提供一个安全性的屏障以防止客户端用户进程对SGA的破坏性;多个Oracle网络服务驱动;Oracle通常从软件供应商或第软件供应商提供第10章应用程序架构 C/S网络环境中,共享数据在服务器 的法;用程序的Oracle用户进程之间的接口。器初始化参数SERVICE_NAMES标识实例属于那个数据库服务。在启动时,每个实实例传送CPU使用信息和相同服务的所有器当前连接计数来达到动态负载第11Oracle 据。使用包DBMS_DATAPUMP执行这些操作。 程序包DBMS_METADATA。 在相同的会话期间数据到多个表 DBVERIFY DBNEWID 第12章数据库和实例启动和关闭 的集合称为Oracle实例。实例启动后,Oracle把实例与特定的数据库相关,称为mounted 启动实例时,spfile或者初始化参数文件取得初始化参数值。然后分配SGA并创建进程。在这点上,没有数据库与这些内存结构和进程相启动实例到受限模式,只有RESTRICTEDSESSION系统权限的用户才能登陆startup并打开。控制文件在参数CONTROL_FILES中指定。Oracle控制文件取在该点上,数据库仍然关闭只能由dba如果CLUSTER_DATABASE为false,只能由第一个挂载数据库的实例挂载数据库。如果第一个实例的CLUSTER_DATABASE设置为true例也可以在CLUSTER_DATABASEtrue的情况下挂载数据库。些不存在,Oracle会返回错误。数据库关闭的时候会由一个或多个分布式事务处在可疑状态。数 略了写SGA的缓冲到数据文件和重做日志文件的操作。数据库重新打开的shutdown第13章数据并发性和一致性 四 脏 ReadRepeatable式。默认的等级是Readcommitted。 间点上得来(语句级的一致性。Oracle同样提供事务中所有查询的一致性。交或最近提交的改变的数据的旧值。持有变化了的数据(更新的SCN)的数据块在回滚段中被重新构建并返SCNOracle提供强迫事务级别上的一致性选项。当事务运行在级别上的一致性提供可重复但不查询到幻影上。RAC使用缓冲到缓冲的数据块传送机制(称为缓存融合)在实例之间传送数据块的一致性影像。RAC通过高速、低反映的内部连接满足数Oracle级Read前已提交的数据。Oracle查询不会脏(未提交)的数据。查询的数据可以在查询期间被其他事务更Serializable事务只能看到那些在事务开始时的已提交的变化以及那些本事务内通过事务不能体验非重复和幻影。Read-并且不允许INSERT/UPDATE/DELETE语句。设置事务级SETTRANSACTIONISOLATIONLEVELREADCOMMITED;SETTRANSACTIONISOLATIONLEVELSERIALIZABLE;SETTRANSACTIONREADONLY;ReadCommittedSerializable 一事务提供Serializable模式达到事务集一致性。DirtyNotNotDirtyNotNotNonrepeatableNotNotCompliantwithANSI/ISOSQLReadmaterializedviewTransactionsetRow-levelReadersblockWritersblockDifferent-rowwritersblockSubjectto"cannotserialize transactionterminates transactioncommits提交机制保证所有的节点提交或全部回滚。在这样的环境中,不管是Oracle还是非Oracle,参与到串行事务的所有的服务器需要支持串行7.等级的选ReadCommittedSerializableALTERSYSTEMQUIESCERESTRICTED数据库。只有SYS/SYSTEM用户可以执行该语句。该语句会:指示数据库资源管理器所有非活动会话变为活动事务。除Oracle等待除SYS/SYSTEM的查询、提取和PL/SQL过程。所有这些操作完成后,数据库进入静默 Oracle允许手工锁定数据。独占锁模式相关的资源共享。该锁模式用于更新数据。只有第读、丢失更新和破坏DDL等操作。数据锁变换VS锁延展Oracle不会延展锁。锁延展会极大的增大死锁的机 锁DDL内部锁和包含内部数据库结构比如数据文件等。内部锁和DMLDML锁的目的是保证正在并发的数据完整性。比如,DML锁保证表中特表不能drop。表锁INSERT/UPDATE/DELETE/SELECT…FORUPDATE/LOCK语句务获得表锁。这些DML操作获得表锁有两个目的:保留表上的DML并DDL操作。所有的表锁表上的独占DDL锁因此(RS(RX(S,共享行独占(SRX)和独占(X。表锁模式的限制决定了表上其他表锁能允许的锁模式SXYYYYYINSERTINTOtableYYNNNUPDATEtableNNNDELETEFROMtableNNNSELECT...FROMFORUPDATEOFNLOCKTABLEtableINROWSHAREMODEYYYYNLOCKTABLEtableINROWEXCLUSIVEMODEYYNNNLOCKTABLEtableINSHAREMODESYNYNNLOCKTABLEtableINSHAREROWEXCLUSIVEMODEYNNNNLOCKTABLEtableINEXCLUSIVEMODEXNNNNN行共享表锁句获得RS:SELECT…FROM…FORUPDATEOF…;LOCKTABLE…INROWSHAREMODE;LOCKTABLE…INEXCLUSIVE行独占表锁INSERTINTO…;UPDATE…;DELETEFROM…;LOCKTABLE…INROWEXCLUSIVELOCKTABLE…INSHAREDLOCKTABLE…INSHAREEXCLUSIVEMODE;LOCKTABLE…INEXCLUSIVEMODE;LOCKTABLE…INSHAREMODE;允许的操作:允许其他事务查询表,用FORUPDATE锁定特定的行或者执行LOCKTABLE…INSHAREMODE语句。但其他事务不能进行update操作。LOCKTABLE…INSHAREROWEXCLUSIVEMODE;LOCKTABLE…INEXCLUSIVEMODE;LOCKTABLE…INROWEXCLUSIVELOCKTABLE…INSHAREROWEXCLUSIVEMODE;其他事务查询或使用FORUPDATE语句获得特定行的锁。但不能更新不允许的操作:其他事务获得行独占表锁和更新相同的表。阻LOCKTABLE…INSHARELOCKTABLE…INSHAREROWEXCLUSIVEMODE;LOCKTABLE…INROWEXCLUSIVEMODE;LOCKTABLE…INEXCLUSIVELOCKTABLE…INEXCLUSIVEMODEDMLSELECT...FROMINSERTINTOtableXUPDATEtableXDELETEFROMtableXSELECT...FROMtable FORUPDATEOFXLOCKTABLEtableINROWSHAREROWEXCLUSIVESHARESSHAREEXCLUSIVEEXCLUSIVEXINSERT…SELECTUPDATE…;DELETESELECT…FORUPDATEOFINSERT/UPDATE/DELETE/SELECT…FORUPDATEDML除了必要的独占行锁外,DML语句所在的事务至少需要获取行独占行锁。如果事务已经获取了共享、共享行独占、独占行锁,行独占表锁不再需要获取。如果事务已经获取了行共享表锁,Oracle自动转换该DDL例如,用户创建了一个过程,DDLOracle自动在DDL事务中需要的时候获取数据字典锁。DDL操作中只有单显示请求DDL锁。DDL锁分为三种类型:的DDL锁释放。在相近的DDL操作中允许数据并发性。比如当创建过程时,事务获取所有参考表的共享DDL锁。其他事务可以并发创建参考相同表的过程并在相同的表上获取共享DDL锁,但不能在参考表上获取独占DDL锁。sql区域以使参考对象更改或drop后变无效。 SETTRANSACTIONISOLATIONLEVELLOCKTABLESELECT…FORUPDATEDBMS_LOCK包锁管理服务。 第14章管理性 简便的客户端是分发整个Oracle客户端程序的最简单方法。提供必需的PATH个Oracle客户端安装时产生的大量代码喝数据文件。 AWR是数据库自带的资料库。在通常的间隔下,Oracle数据库会构造重要统计信息和负载信息的快照并到AWR中。默认的,快照每30分钟一次。快照在自动清除前会在AWR中保存一段时间(默认7天。通过分析AWR中的信息,数据库可以定义执行常规管理任务,比如优化器默认的,管理窗口每晚10点开始持续到第二天的早上6点。管理窗口的对于不能自动解决而需要管理员解决的问题,比如超出运行空间等,Oracle数据库提供服务器端产生Oracle数据库会减少自身并以有为保证顾问程序以一种一致性和统一性的方式工作和更少的交互, ADDMOracleADDM过高的sql载入RAC相关的问题 SQL调整与称为SQL调整顾问在一起。SQL调整顾问把一个或多个sql语句 缓存缓冲顾问决定缓存缓冲的优化大小。视图:V$DB_CACHE_ADVICE数PGA_AGGREGATE_TARGET: 通过服务器端产生的警告进行通知 ASM:自动管理 RMANTOP20FEATURESFORDBA日志文件顾问、MTTR顾问(视图V$MTTR_TARGET_ADVICE。 §14.10CPU定的计划和在消费组之间分区资源的法。系统镜像并允许每个workload作为单个单元管理。RACRACClusterReadyServices高可用性框架紧密集成。§14.11自动管无需关闭数据库的情况下增大数据库大小以调整分配来管理动态的数据库ASM创建一个池,管理文件名称并在上放置数据库文件。通过下面的语句改变分配:CREATEDISKGROUP,ALTERDISKGROUP,DROPDISKGROUP磁盘组是作为逻辑单元管理的一个或多个ASM磁盘的集合。磁盘组中的数据结构自我包含并消费磁盘组中的某些磁盘空间。ASM磁盘可以在数据任意单个ASM文件保存在单个磁盘组中,但是,磁盘组可以包含属于多个数据库的文件,单个数据库可以从多个磁盘组中使用。一个或多个ASM当文件创建后,某些文件属性是永久性的设置了。ASM不能为操作系统或os工具所见,当可以给数据库实例、rman或其他oracle支持工具访ASMASMASM实例进§14.12需求。这些函数称为调度程序,可以从任何的PL/SQL过程中调用。调度程序简化了作业的调度和管理。调度程序支持多种作业类型,比如PL/SQL过程、块、C函数、Java过程和os。同样,调度程序诸如作业状态、何时完成任务等信息会很容易的进行。这些信使用DBMS_SCHEDULER包在单个数据库和数据库之间自动传送文件。第的文件传送同样被支持。通过视图V$SESSION_LOGOPS监视长时间第15章备份和恢复 份保存用Oracle工具萃取的以二进制文件方式的逻辑数据。一致性备份是包含的变化均是相同的SCN的文件备份。这意味着备份中的数据库或部分数据库的一致性备份是用相同的SCNCheckpoint的所有读写数据文件和控制文件的备份。进行一致性全库备份的唯一途径是用OraclecheckpointSCNSCN 如果是纠正逻辑数据损坏或用户错误,可以使用Oracle闪回。下面是基本的库的数据文件备份、应用或归档日志;应用或归档日志。必须使用RESETLOGS选项打开数据库。RESETLOGSreadonly模式打开数据库检查数据。如果发现有数据丢失,再次执行recovery到指定的时间点上。Time-basedCancel-basedChange-basedLogsequence可以使用归档日志和日志;如果数据文件需要介质恢复时数据库不能打开,只能在需要介质恢复的数据文件重新后才可以。下面的场景是介质恢复所必RMAN还原和恢复 使用(cacherecovery)前滚和使用回滚或(transaction重做日志是记录不管是否提交的改变数据库块的所有变化包括数的os实例或磁盘故障的第一步恢复称为cacherecovery或前滚,重用记录在重TransactionRecovery时,撤消块回滚先前前滚时应用的未提交事务的effects。实例和Crash恢复纵览Crash和实例恢复包括两个不同的操作:通过应用重做记录中的提Crash和实例恢复有如下特征:使用当前 CREATETABLEASSELECTcreatetableold_empasselect*fromemployeesasof‘2002-02-05 闪恢复区域时Oracle管理的 复文件时使用的集中式的磁盘位置。Oracle在闪恢复区域创建归档日志。 第16章商业智能 略 略 略 略 sql 略 OLAP略 略第17章高可用性 快速启动恢复的基础是快速启动检查点架构。与传统的驱动批量写的检查点不同,快速启动检查点是增量发生的。每次DBWn一个周期写缓冲果用户进程遇到事务的行锁,进程会回滚该行。回滚请求行的影响快速启动错误恢复是非常快的,因为撤消数据在数据库而不是日志件可以通过LogMiner搜寻从而恢复记录在日志文件中的事务透明应用切换影响的元素:C/S数据库连接、用户数据库会话、用于提透明应用切换用户还原C/S数据库连接、用户数据库会话和活动查询。如DataGuardDataGuard可以不超过9个的备用数据库,每个备用数据库是生产DataGuard数据库。对于逻辑备用数据库,通过归档日志中的sql应用变化。block-for-block开的话,物理备用数据库会有不同的rowid,使持续的恢复不可能。逻辑备用数据库提取标准的Oraclesql数据库表有不同的索引和物理特征,但必须从应用角度的逻辑OracleDataGuard自动化复杂的创建和任务并提供引人注目的扩展监视、警告和控制机制。OracleDataGuardBrokerOracle进程并与每个DataGuard站点相关以提供整个DataGuard配置统一的监视和管理基础架构。有两个用户接口:命令行接口DGMGRL和图形用户接口DataGuardManager。OracleInternetDirectory(OID)可以管理用户的安全属性权限包括 硬件和OS的Data索引创建并同时分 第18章分区表和分区索引 或多个列。Oracle可以包含LEVEL,ROWIDMLSLABLEpseudocolumnrowid分区IOT VALUESLESSCREATETABLEsales_range(salesman_idNUMBER(5),salesman_nameVARCHAR2(30),sales_amountNUMBER(10), PARTITIONBYRANGE(sales_date)PARTITIONsales_jan2000VALUESLESSPARTITIONsales_feb2000VALUESLESSPARTITIONsales_mar2000VALUESLESSPARTITIONsales_apr2000VALUESLESSCREATETABLEsales_list(salesman_idNUMBER(5),salesman_nameVARCHAR2(30), sales_amountNUMBER(10), PARTITIONBYLIST(sales_state)PARTITIONsales_westVALUES('California',PARTITIONsales_eastVALUES('NewYork','Virginia','Florida'),PARTITIONsales_centralVALUES('Texas','Illinois'),PARTITIONsales_otherCREATETABLEsales_hash(salesman_idNUMBER(5),salesman_nameVARCHAR2(30),sales_amountNUMBER(10), PARTITIONBYHASH(salesman_id)PARTITIONS4STOREIN(ts1,ts2,ts3,CREATETABLE (salesman_idNUMBER(5),salesman_nameVARCHAR2(30),sales_amountNUMBER(10), PARTITIONBYRANGE(sales_date)SUBPARTITIONBYHASH(salesman_id)TEMTE(SUBPARTITIONsp1TABLESPACEts1,SUBPARTITIONsp2TABLESPACEts2,SUBPARTITIONsp3TABLESPACEts3,SUBPARTITIONsp4TABLESPACEts4)(PARTITIONsales_jan2000VALUESLESSPARTITIONsales_feb2000VALUESLESSPARTITIONsales_mar2000VALUESLESSPARTITIONsales_apr2000VALUESLESSPARTITIONsales_may2000VALUESLESSCREATETABLEbimonthly_regional_sales(deptnoNUMBER,item_noVARCHAR2(20),txn_dateDATE,txn_amountNUMBER,stateVARCHAR2(2))PARTITIONBYRANGE(txn_date)SUBPARTITIONBYLIST(state)SUBPARTITIONTEMTE(SUBPARTITIONeastVALUES('NY','VA','FL')TABLESPACEts1,SUBPARTITIONwestVALUES('CA','OR','HI')TABLESPACEts2,SUBPARTITIONcentralVALUES('IL','TX','MO')TABLESPACEts3)PARTITIONjanfeb_2000VALUESLESSTHANPARTITIONmarapr_2000VALUESLESSTHAN 局索引)或者自动连接到表分区方法上(本地索引。通常来说,应该为OLTP应用使用全局索引,为数据仓库或DSS应用使用本地索引。在可能的情况下,尽量使用是DSS,需要更大的吞吐量,使用本地索引。MAXVALUEALTERINDEXSPLITPARTITIONADD(HASH)COALESCE(HASH) 分区或子分区并消除这些sql语句对无关分区或子分区的。第19章内容管理 数据库包括控制所有丰富的Internet内容比如关系数据、对象相关数据、text、声音、、和空间等类型的所有数据类型。这些数据类型在数据库中作为本地类型。它们可以使用sql进行查询。该章探讨支持非结构化数据的技术。 XMLinOracleXMLDeveloper’sKits包括基本的、管理、转换和查看XML文 OracleOracleText在文档或原文类型上建立索引加入快速、精确的信息搜寻,包 OracleTextIndex OracleText提供makeup信息OracleTextQueryPackageOracleTextAdvanced Oracle Oracle Oracle程序和GIS。第20章数据库安全 相关权限名组。用户会话以及通sql语句Oracle进行的单个调用CPU处理时间用户会话以及通sql语句Oracle进行的单个调用的逻辑I/O数量 Oracle允许单个数据库实例使用所有或全部方法。OracleDBA虽然仍然在数据库中用户名os如果网络认证服务可用(比如DCE、Kerberos或者SESAME,Oracl可Public-Key-Infrastruture-Based认证系统基于认证用户客户端的共匙系统,该系统认证直接指向到企业中的服务器而不是认证服务器。Oracle提供PKI使用共匙和认证,包使用信任的数据签名验证第的信任作为用户认证的标保存用户私匙、用户和用户信任点集合的OracleOracleInternetOracleEnterpriseSecurity供的。Oracle以加密的形式用户到数据库字典中。连接时的加密送前加密。时间间隔后自动帐户。可以指定的生命期使在一段时间后无效而必须改变。历史选项可以检查新指定的以保证在指定的时间或使用次数后 据库以及在单个客户端上管理多个不同数据库。数据库使用文件保持对赋予SYSDBA/SYSOPER权限的数据库用户CREATEDATABASE 通过用户的概要文件管理用户的资源限制和。通常来说,可以在会话等级、调用等级上控制包括CPU时间、逻辑读等在会话级别:用户超过会话级别上的资源限制,Oracle中止当前的语句返回前语句不只能执行COMMIT/ROLLBACK或者断开连接(这种情况下是COMMIT)操作。其他操作会产生错误。调用级别:如果用户超过了调用级别的资源限制,Oracle中止语句的处理,CPU时间:为了避免CPU时间的不受控制,必须为每个Oracle调用和会话中的Oracle调用消耗的CPU时间限制在调用或会话使用的以CPU时间0.01秒为单位进行设置。内存和磁盘数据块。以调用或会话中的块数目为单位设置和度其他资源:SGA何时使用概要文件:在数据库安全策略需要资源限制的时候才需要创建通过角色使管理和控制权限变得容易。角色是相关权限名组用于作减少权限动态权限权限的选应用程序应用程序通过保护角色。应用程序可以特定的创建以用于在提供正确的时使角色有效。用户在不知道的情况下不能在某些环境中,可以通过使用os管理数据库权限。可以使用os管理数据Oracle提供只能通过的PL/SQL包才使角色有效的安全应用程序角在不与应用程序源代码绑定或者到表上时安全性得以扩展。相反,创建安全应用程序角色指定那个PL/SQL包使角色有效。在使角色 Fine-Grained控Fine-Grained控制可以使用函数实现安全策略并把这些安全策略与 包DBMS_RLS用于管理安全策略。动态谓语(断言略Fine-Grained审计允许基于内容的数据监视。提供小粒度的查询INSERTUPDATEDELETE通常来说,Fine-Grainedsql户定义的审计句柄来执行。 Os数据安全包括在对象级别上面对数据库的和使用控制机制。数据安全策略决定那个用户有指定模式对象的权限以及对象上可以允许的另一个实现的方法是fine-grained控制和相关应用上下文的使 对于所有类型的数据库用户,考虑安全和权限管理如果通过数据库进行用户认证管理,那么需要开发安全策略数据库安全。通用需要考虑所有类型用户的相关权限管理。对于数据保护管理员连接:connusername/passwordasCREATETABLE/CREATEPROCEDURE等等。开发 sqlAUDITCREATE模式对象在特别的模式对象上审计指定的语句比如AUDITSELECTON基于内容审计数据和操作。使用DBMS_FGA,安全管理员在目标表上创建审计策DML语句返回的任何行满足审计条件,那么在审计中会插入一条审计entry。和时间。审计记录可以保存在数据字典表(称为数据库审计追踪)os文件(称为os审计追踪)中。数据库审计追踪:数据库审计追踪是命名为SYS.AUD$的单个表。审计追踪被模式对象的名户的语句。本地节点不能审计数据库的操作。因为连接是通过数据库的用户帐户建立的,通过数据库的连接执行的语句通过数据OS审计:Oracle允许审计追踪直接记录到os审计追踪中Os审计记录:os审计追踪是加密的,但可以为数据字典文件和错误消息。动作代码描述执行或尝试执行的操作。AUDIT_ACTIONS表描述这些代码;完成代码描述尝试操作的结果。成功的操作返回0,不成功的操作返回oracle错误代码;通常os审计追踪中记录审一些数据库相关的动作通常记录在os审计osos 审计记录何时创建:任何数据库用户可以设置本身的审计选项。SYS用户或者以SYSDBA/SYSOPER登陆的用户通过设置第21章数据完整性 NullDM设置为NULL:当参考数据更新或删除后,所有相关的依赖数据设置为(NOTNULLPRIMARYKEY 使用过程完全控制数性Ease 但完整性约束不排除adhoc数管理员只需要改变完整性约束,所有的应用程序自动坚持改变后的约束。的使完整性约束重新生效并自动把与完整性约束的行放到单独的 PRIMARYKEYPRIMARYKEY组合主键约束最多包含32个列。ForeignReferencedDependentorchildNulls种操FOREIGNKEY完整性约束支持的参考动作包括UPDATE/DELETENOACTION/DELETECASCADE。删除无动作:的时候不能更新或删除。删除级联:会被删除。删除设置Null:在包含参考键值的行删除后,子表中依赖外键的行对应与参考动作相关的DMLDML AlwaysAlwaysAlwaysDELETEAlwaysAlways在外键上没有索引:非索引外键会导致主键上的DML在外键表上获得一个共享行独占表锁。这样可以保证表上不能执行DML。在外键上有索引:索引外键会导致行共享表锁。这样可以其他事DML。ONDELETECASCADE,那么删除父表会导致删除子表,这种CHECKLEVEL、ROWNUM多个CHECK约束 可以把约束定义为deferrable或notdefferrable,或者是initiallydeferred或initiallyimmediate。在CONSTRAINT语句中用关键字指定这DEFERRALBE/NOTINITIALLYDEFERRED/INITIALLYSETCONSTRAINTS用该语句为约束列表或者ALL约束设置模式。SETCONSTRAINTS…IMMEDIATE;语句导致指定的约束在每个约束语句中马上检查约束。Oracle将要执行语句的约束,同时所有已检查的约束保持一致性,其他的SET间点上,COMMIT语句会导致整个事务撤消。迟约束。与在会话开始的时候执行SETCONSTRAINTS一致。 ENABLEVALIDATEENABLEDISABLENOVALIDATEDISABLEDISABLEVALIDATE,drop约束列上的任何更改。对于UNIQUE约束,DISABLEVALIDATE状态在通过EXCHANGEPARTITION把区表载入到分区表上时更有效。当唯一或主键从DISABLE状态移动到ENABLE状态,如果没有索引存在,VALIDATENOVALIDATEforgets阻塞、写入或其他DDL语句DEFERRABLE/NOTINITIALLYDEFERRED/INITIALLYUSINGEXCEPTIONS第22章触发器 发器调用,触发器在触发发生时隐式由Oracle启动而不理会当前连接的在表上收集统计信触发器与性完整性约束的比较在要求的参考完整性规则不能通过以下完整性约束强制有效时:NOTNULL/UNIQUEPRIMARYKEY/FOREIGNKEY/CHECK/DELETECASCADE/DELETESETNULL 触发或语触发或语触发可以是以下之一 BEFORE和AFTER只能在表上定义而不能在视图上定义。DDL语句触发的BEFORE和AFTER触发器只能在数据库或模式上定义,而不能在特定的表上AFTERINSTEADOFINSTEADOFINSTEADOF触发器是因为与其他类型的触发器不同,Oracle用执行触发器中的语句GROUPBY,CONNECTBYSTARTWITH 系统和用户上的触发器 服务器错误信息用户包括:系统的触发器可以定义在数据库级或模式级。包DBMS_AQ是使用数据CREATETRIGGERregister_shutdownONDATABASE义。DML语句的触发器可以在表或视图上定义。定义在数据库级上的触发器对所有用户有效,而定义在模式或表级上的触发器只在触发包队列服务器作为对某些有的订阅者的消息库。触发器使用DBMS_AQ包在指定的系统或用户发生时排序消息。在LOGON/LOGOFF上的触发器:这些触发器可以与数据库或模式相关。LOGON触发器在用户成功登陆后触发、LO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省-2024年-社区工作者-下半年笔试真题卷
- 财政局各类经费培训
- 保安管理及安全意识培训考核试卷
- 影视基地开发招投标操作指南
- 机械设备存放冷藏库租赁协议
- 水果店加盟合作协议
- 电缆设备租赁合同样本
- 海上石油钻井平台租赁合同范本
- 护士岗位解除聘用合同记录
- 幼儿园保育员兼职合同
- 配电室运行维护投标方案(技术标)
- 初中化学试卷讲评课件
- 瓶装水项目市场营销方案
- 2024届东北师大附中重庆一中等六校化学高一第一学期期中检测试题含解析
- 【幼儿园语言文字教学的规范化分析3000字(论文)】
- 瓶口分液器校准规范
- (完整版)医疗器械网络交易服务第三方平台质量管理文件
- 信息管理监理实施细则水利水电工程
- (医学课件)DIC患者的护理
- 跨境数据流动的全球治理进展、趋势与中国路径
- 硅pu塑胶施工方案
评论
0/150
提交评论