




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、oracle基础知识之-逻辑结构(10g)在最好的粒度层次上,Oracle将数据存储在数据块中。一个数据块对应磁盘上特定数量的物理数据空间。逻辑数据空间的下一层是盘区。盘区是分配用于存储特定类型信息的连续数据块。在盘区上面的逻辑存储层是段。段是盘区的集合,第个段都分配给特定的数据结构,存储在相同的表空间中。 段和它的所有盘区都存储在一个表空间中。 1.表空间 表空间是数据库的逻辑划分,第个数据至少有一个表空间(称作system表空间)。为便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。 2.Oracle数据块 数据块是oracle管理数据文件中存储空间的单位,为数据库使用的
2、I/O的最小单位,其大小可不同于操作系统的标准I/O块大小。 3.盘区 盘区是数据库存储空间分配 的一个逻辑单位,它由连续数据块所组成。每一个段是由一个或多个盘区组成。当一段中间所有空间已完全使用时,oracle为该段分配一个新的范围。 4.段 段包含表空间中一种指定类型的逻辑存储结构,是由一组范围组成的。在oracle数据库中有几种类型的段:数据段、牵引段、回滚段和临时段。 数据段:对于每一个非聚集的表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。 牵引段:每一个索引有一个索引段,存储索引数据。 回滚段:是由dba建立,用于临时存储要撤销的信息,
3、这些信息用于生成读一致性数据库信息、在数据库恢复时使用,回滚未提交的事务。 临时段:当一个sql语句需要临时工作区时,由Oracle建立。当语句执行完毕,临时段的范围退回给系统。数据库体系结构十分重要,应该努力掌握好它。oracle基础知识之-物理数据库结构(10g)oracle的物理数据库结构具体如下: 数据文件 控制文件 重做日志文件 归档日志文件 参数文件 报警和跟踪日志文件 备份文件1.数据文件 数据文件用于存放所有的数据库数据。oracle数据库由一个或多个数据文件组成,数据文件结合在一起形成表空间。在此特别要注意的是,数据库中所有的数据信息都是存放在数据文件中。2.控制文件 每个数
4、据库中必须至少有一个控制文件,oracle极力建议用户使用两个或更多的控制文件。如果只有一个控制文件,出现损坏的情况,则无法访问数据库。 控制文件是非常小的文件,其中存放一些与oracle数据库所有文件相关的关键信息。oracle系统通过控制文件保持数据库的完整性以及决定恢复数据时使用哪些重做日志。3.重做日志文件 第个oracle数据库都有两个以上的重做日志文件。重做日志文件用于记录数据库的活动,能够用于数据库的恢复操作。重做日志文件的最主要的功能是记录数据库的所有修改操作。4.归档日志文件 dba能够自动对日志文件进行归档,当Oracle数据库处于ARCHIVELOG的时候。5.参数文件参
5、数文件包含了实例和数据库的配置参数列表,oracle建议创建一个动态参数文件,作为维护初始化参数的动态方式。6.报警和跟踪日志文件每个服务器进程和后台进程都能向跟踪文件中写入数据,当进程检测到内部错误时,它将错误信息写入跟踪文件中。用于调试应用和实例,帮助DBA发现错误。7.备份文件 备份文件是将数据库的信息保存到单独的文件中,能够在数据库发生故障的时候恢复数据库。Oracle入门基本知识一点通Oracle基本知识轻松学:1. 一个表空间只能属于一个数据库。2. 每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)。3. 每个数据库最少有一个表空间(SYSTEM表空间)。4. 建立S
6、YSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典。5. 每个数据库最少有两个联机日志组,每组最少一个联机日志文件。6. 一个数据文件只能属于一个表空间。7. 一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中。8. 建立新的表空间需要建立新的数据文件。9. 数据文件被Oracle格式化为Oracle块,Oracle9i以前版本中,Oracle块的大小是在第一次创建数据库时设定的。10. 并且以后不能改变,要想改变,只能重建数据库。11. 一个段segment只能属于一个表空间,但可以属于多个数据文件。12. 一个区
7、extent只能属于一个数据文件,即区间(extent)不能跨越数据文件。13. PCTFREE和PCTUSED总和不能大于等于100。14. 单独一个事务不能跨越多个回滚段。15. 索引表不含ROWID值。16. 拥有不同大小的回滚段没有任何益处。17. COMMIT后,数据不一定立即写盘(数据文件)。18. 一个事务即使不被提交,也会被写入到重做日志中。19. Oracle 8.0.4中,在初始安装时建立的缺省数据库,实例名为ORCL 。20. 一个块的最大长度为16KB(有2K、4K、8K、16K)。每个数据库最大文件数(按块大小)2K块20000个文件4K块40000个文件8K块或以上
8、65536个文件21. Oracle server可以同时启动多个数据库 。22. 一套操作系统上可以安装多个版本的Oracle数据库系统(UNIX可以,NT不可以)。23. 一套Oracle数据库系统中可以有多个Oracle数据库及其相对应的实例 。24. 每个Oracle数据库拥有一个数据库实例(INSTANCE)(OPS除外)。25. 所以,一套操作系统上同时可以有多个Oracle数据库实例启动。Oracle入门-Oracle的概念和术语racle数据库系统是一个复杂的软件系统。如果不了解其内部的结构原理及关系,就不可能设计和编写出高质量的应用软件系统,也不可能管理好一个复杂的应用系统。
9、为了给以后章节的打好基础,本章简要给出 ORACLE 8 /ORACLE8i数据库系统结构的描述。 §2.1 术语 数据库块(BLOCK) ORACLE 数据库中的最小存储和处理单位,包含块本身的头信息数据或PL/SQL代码。 ORACLE 块的大小是可以在安装时选择“自定义安装”来指定,也可以在CREATE DATABASE创建数据库实例时指定。其最小为2K,最大可达为64K。 瓶颈(Bottleneck) 指限制系统性能的部件。 面向对象的关系数据库 具有关系数据库的全部功能,同时又支持面向对象的数据库,称作面向对象关系数据库系统。Oracle7是一种功能完备的关系数据库系统;o
10、racle8是一种面向对象的关系数据库系统。 客户/服务器结构(Client/Server) 有客户机、服务器、网络三要素的结构,客户机(PC机)通过网络与服务器相连和工作。 胖客户机(Fat Client) 一般的Client/Server结构中的客户机均为胖客户机。因为这些客户机需要配置较高的设备,如内存、硬盘、主频、CD_ROM等。 瘦客户机(Thin Client) 也称作NC(网络计算机),是一种内存配置小(过去指一般只有4M,现无法定义),无硬盘,只有处理心片的处理机。 数据在线分析处理(OLAP) 是一种能以快速、交互、方便的方式洞察数据情况的技术。如Oracle Express
11、,Cognos(加拿大)的Power Play, Business Objects公司的Business Object 等。 多线程(MTS) 一个用户可以同时运行多个程序对数据库进行访问,比如Visual C/C+可以提供同时启动多个进程,而Visual Basic则不能。 数据仓库(Data Warehouse) 支持大量数据信息存储的叫做支持数据仓储或数据仓库。当把几个小型数据库集成为一个大型数据库,并为一个较广泛的组织服务时,如果该数据库存储历史数据,提供决策支持,提供数据汇总,提供只读数据,并且实质上充当所有向它提供数据的相关成品数据库的数据接收器,那么它通常被叫做数据仓库。 实例(
12、Instance) 是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程。 对象(Objects) 是实现世界实体的软件表示,如表、索引、视图、同义词、过程等。 数据库文件(Datafile) Oracle系统中用于存放数据(应用系统数据)的文件。(<<Oracle8初学者指南>>P14中的例子不准确,容易误导读者)。 控制文件(Control File) Oracle中存放系统用的一些数据的文件。如数据文件的路径及文件名,初始化文件路径及 文件名等都存放在控制文件中。 日志文件(Logs File) 也叫事务记录文件,该文件记录有事物对数据库进行的一切修改
13、操作或事务。 DBA(Database administrator-数据库管理员) 是管理数据库系统的技术工具或人员,在完备的数据库系统中都提供DBA功能。 灰数据块(Dirty data block) 存放在内存中的原始数据已被修改,而修改后的数据还未写入数据库中。 热数据块(Hot data block) 存放着那些经常被修改数据叫热数据块。 LRU(Least Recently Used-最近最少用) Oracle系统使用的一种算法,对于在内存中但最近又不用的数据块(内存块)叫做LRU,Oracle会根据那些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。 表(Table) 存放
14、专门数据而建立和分配的空间。 表空间(Tablespace) 是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。 回滚(Rollback) 将用户(或者说事务)改变的数据恢复到上一次所处的状态。 恢复信息(Undo Information) 记录用于恢复的信息称作恢复信息。回滚就是根据恢复信息内容进行恢复的。 §2.2 Oracle数据库结构 Oracle数据库结构是Oracle数据库系统的主要部分,它是一些可以看得见的软件,包括: Oracle 数据字典 表空间与数据文件 Oracle实例(Instance) §2.2.
15、1 Oracle 数据字典 Oracle数据库的重要部分是数据字典。它存放有Oracle数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括: 数据库中所有模式对象的信息,如表、视图、簇、及索引等。 分配多少空间,当前使用了多少空间等。 列的缺省值。 约束信息的完整性。 Oracle用户的名字。 用户及角色被授予的权限。 用户访问或使用的审计信息。 其它产生的数据库信息。 数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。 数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。 §2.2.2 表空间
16、与数据文件 简单说,表空间就是一个或多个数据文件(物理文件)的集合(逻辑文件)。一般有下面的表空间: 1)系统表空间(System tablespace) 是各种不同版本的Oracle必备的部分,存放Oracle系统的一些信息,一般只有一个SYSTEM表空间。 2)临时表空间(Temporary tablespace ) 由于Oracle工作时经常需要一些临时的磁盘空间,这些空间主要用作查询时带有排序(Group by,Order by等)等算法所用,当用完后就立即释放,对记录在磁盘区的信息不再使用,因此叫临时表空间。一般安装之后只有一个TEMP临时表空间。 3)工具表空间(Tools tab
17、lespace) 用于保存Oracle数据库工具所需的数据库对象,这些工具表空间存放在工作时所用的专用表。旧的Oracle版本无此表空间。安装之后的工具表空间是Tools。 4)用户表空间(Users tablespace) 用于存放一些实验例子用的空间,当然也可以用于存放应用系统的数据。旧版本无Users表空间。现在的用户表空间为 USERS 。 5)数据及索引表空间 存放数据及索引的表空间,Oracle7以后都提倡在应用系统中,特别是具有大量数据的系统,要把数据和索引分开存放在不同的分区中,以便提高查询速度。在安装后索引表空间可能是INDX。数据表空间就是USERS。 6)回滚段表空间(R
18、ollback Segment) Oracle数据库系统在运行Insert、Update、Delete时都需要一个磁盘空间来存放恢复信息(Undo Information),以便在进行恢复时能将原来信息读出来。安装后的回滚段表空间是RBS表空间。数据库管理员也可根据应用的需要建立另外的回滚段表空间。 Oracle 以表空间来存储逻辑数据并 以物理数据相连。如图: Tablespace 1 Tablespace 2 数据库被分成一个或多个逻辑部件称作表空间。而表空间又被分成称作段(segment)的逻辑部件。这些段再细分就叫扩展(extents)。§2.2.3 Oracle实例 Ora
19、cle实例(Instance)是由一组后台进程和内存结构组成。每个运行的数据库系统都与实例有关。所以,有时称Oracle实例为数据库操作系统。下面是Oracle实例的解释。 Oracle 进程 Oracle有两种类型的进程: 服务器进程和后台进程(server processes and background processes)。 服务器进程 Oracle 服务器进程是处理用户与实例连接的事务。任务是: 分析和执行应用所发出的SQL语句。 从数据文件读必要的数据到SGA区的共享数据区。 返回必要信息给应用。 后台进程 Oracle系统使用一些附加的进程来处理系统的必须的工作。这些进程叫后台进
20、程: 数据库写 (DBW0 或DBWn) 日志写 (LGWR) 检测点 (CKPT) 系统监视 (SMON) 进程监视 (PMON) 归档 (ARCn) 恢复 (RECO) 锁(LCK0) 工作队列 (SNPn) 队列监视 (QMNn) 发布(Dispatcher) (Dnnn) 服务器 (Snnn) Oracle 的内存结构(SGA) SGA 结构为: 数据高速缓冲区 重做日志缓冲区 共享池 大的共享池(可选) 数据字典缓冲区 其它数据缓冲区 §2.3 Oracle数据库文件 ORACLE 数据库是一个复杂的数据库操作系统,由一系列部件组成,主要有:1)初始化参数文件、2)数据文件
21、、3)控制文件、4)日志文件等。 §2.3.1 初始化参数文件 初始化参数文件(initialization parameter file) INITsid.ORA,是 ORALE RDBMS 主要的配置点,它是配置参数和数值的集合。每一个参数值都控制或修改数据库和实例的某个方面。 早期的版本把参数都写在 initsid.ora 文件中,但在ORACLE8 之后,多数参数已不在该文件中出现,需修改这些参数时只能在SQL>下用 SET SESSION 或 SET SYSTEM 来进行。 查看系统参数可用。例如: SQL>select * from v$parameter;
22、来列出。 Oracle初始化参数文件是一个可以编辑的文本文件。它是在数据库实例启动时被访问,从而得到数据文件、日志文件、控制文件等的路径,此外,初始化参数文件还提供实例所用的参数等。 初始化参数文件 INITsid.ORA 参见 附录 。 §2.3.2 数据文件 用于存放所有数据库的数据文件,Oracle安装过程中自动建立多个必要的数据文件。这些数据文件用于存放Oracle系统的基本数据。在应用系统开发过程中,我们可根据需要另建立一些数据文件。 如果数据文件按它们存放的数据类型来分的话,可以分为: 用户数据 存放应用系统的数据为用户数据。 系统数据 管理用户数据和数据库系统本身的数据
23、,如数据字典,用户建立的表的名字,类型等都记录在系统数据中。 §2.3.3 控制文件 控制文件是由Oracle数据库实例在启动时被访问的内部二进制文件,它们所存放的路径由参数文件的control_files=参数来确定。 Oracle一般有两个或更多的控制文件,每个控制文件记录有相同的信息,在数据库运行中如果某个控制文件出错时,Oracle会自动使用另外一个控制文件。当所有的控制文件都损坏时系统将不能工作。 Oracle数据库至少有一个控制文件; 一般数据库系统安装完成后,自动创建两个以上控制文件; 为了安全一般建议创建多个控制文件; 控制文件可用下面命令查到: select nam
24、e,value from v$parameter where name like 'control_files' §2.3.4 重做日志文件 重做日志文件是Oracle系统中一个很重要的文件。特点是: 重做日志是Oracle的日记帐,负责记录所有用户对象或系统变更的信息; 安装完成后有多个重做日志文件,它们是几个分为一组,组内的重做日志文件大小要一样; 为了使系统性能更好可以在创建多重做日志文件组; 重做日志文件可以名下面命令查到: select * from v$logfile; §2.3.5 其它支持文件 除了上面的三类文件外,还有: Sqlnet.or
25、a文件; Tnsnames.ora文件; Listener.ora文件等。 §2.4 重做日志和重做日志工作模式 重做日志、日志文件及重做日工作模式是Oracle系统中很重要的概念,管理员要完全理解它们的原理和使用方法。下面只给简单的概念,有关的管理在另外章节给出。 §2.4.1 重做日志 Oracle所作的一切操作都记录在日志文件中,Oracle系统在工作当中并不是每作一条记录的修改就立即存盘(写入数据文件),而是只作修改记录,联机重做日志就保存所有这些改变的信息。当所有的修改最后写入数据文件时,所有的修改仍记录在联机重做日志中,这将有利于对这些事务记录进行恢复操作。但如
26、果不是联机重做日志,则只能恢复部分近期的操作。 §2.4.2 重做日志工作模式 Oracle可以在两种模式之一来工作: 1)ARCHIVELOG模式(可恢复) Oracle 一般至少有两个日志文件。它们轮流交替地被写入所作的一切修改信息。当系统设置为可恢复模式,Oracle自动将每次即将被覆盖(冲掉)的日志信息先作备份,然后再其上记录所修改的信息。这样的方式,就可以利用备份与恢复工作进行某时期的数据恢复。 2)NOARCHIVELOG模式(有限的恢复) 缺省情况下为NOARCHIVELOG,Oracle不保留旧的重做日志信息(可以在原来基础覆盖写入)。因此一般情况下不可恢复的。
27、67;2.5 数据块、区间和段 §2.5.1 数据块(data block) Oracle的数据块也叫Oracle块; Oracle系统在创建表空间时将数据文件格式化成若干个Oracle块; 每个Oracle块是Oracle系统处理的最小单位; 块的大小在安装系统时确定,可以选择“自定义安装”来设置大小; 块的大小一旦确定下来就不能改动; 块的大小可以从2k至64k不等; 块的大小可以用下面命令查到: select name,value from v$parameter where name like 'db_block_size' §2.5.2 区间(ex
28、tent) 分配给对象(如表)的任何连续块叫区间; 区间也叫扩展,因为当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区间(即扩展一些块); 区间的大小由next 决定; 一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象; 一个对象所用去多少区间可用下命令查到: select segment_name,tablespace_name,count(*) from dba_extents having count(*)>1 group by segment_name,tablespace_name; §2.5.3 段(segment) 段是指占用数
29、据文件空间的通称,或数据库对象使用的空间的集合; 段可以有表段、索引段、回滚段、临时段和高速缓存段等; 段使用同表空间中的若干Oracle块(可以位于不同数据文件中)。 例: CREATE TABLE abc ( empno number(4),ename varchar2(20),sal number(9,2) TABLESPACE user_data storage(initial 500k next 256k pctincrease 0); ) 段被分配初始区间500k; ) 当开始的500k用完后就再分配256k; 此时段500k+256k; ) 如果所分配的区间又用完后,就再分配25
30、6k, 段(segment)、区间(extent)及块的关系(seg_ext_block) §2.6 Oracle数据库进程 一般情况,当数据库启动完成后(Instance 启动成功)就至少有六个后台进程在活动,这些进程根据数据库的需要而分工不同。他们分别是: 1)数据库写入器(DBWR) 数据库写入器(Database Writer)的任务是将修改后的(在内存)数据块写回数据库文件中。在某些操作系统中,Oracle可以有两个BDWR进程。 2)校验点(CKPT) 是一个可选进程。在系统运行中当出现查找数据请求时,系统从数据库中找出这些数据并存入内存区,这样用户就可以对这些内存区数据
31、进行修改等。当需要对被修改的数据写回数据文件时就产生重做日志的交替写(Switch),这时就出现校验点。系统要把内存中灰数据(修改过)块中的信息写回磁盘的数据文件中,此外系统还将重做日志通知控制文件。DBA可以改变参数文件中CHECKPOINT_PROCESS TRUE来使能( 使有效或无效)该进程。 3)日志写入器(LGWR) 用于将SGA区中的日志信息写入日志文件的进程。一般是用户所作的修改值先记入日志文件。等到一定时才真正将修改结果写回数据文件。 4)系统监控器(SMON) 系统监控器(System monitor)是在数据库系统启动时执行恢复工作的强制性进程。比如在并行服务器模式下(两
32、台服务器共用一磁盘组),SMON可以恢复另一台处于失败的数据库。使系统切换到另一台正常的服务器上。 5)进程监控器(PMON) 进程监控器(Process Monitor)用于终止那些失败的用户,释放该用户所占用的资源等。 6)归档器(ARCH) 可选进程,当数据库系统处于归档(ARCHIVELOG)模式时使用。 7)锁(LCKn) 可选进程,当在并行服务器模式可出现多个锁定进程以利于数据库通信。 恢复器(RDCO) 分布式数据库(不同地点有不同机器和不同的Oracle系统)模式下使用的可选进程,用于数据不一致时作的恢复工作。在RECO解决恢复前,所作的修改数据的标志均标为“可疑”。 9)调度
33、(Dnnn) 可选进程,在多线程下使用,即对每个在用(D000,.,Dnnn)的通信协议至少创建一个调度进程,每个调度进程负责从所联接的用户进程到可用服务器进程的路由请求。把响应返回给合适的用户进程。 10)快照进程(SNPn) 快照进程处理数据库快照的自动刷新,并通过 DBMS_JOB 包运行预定的数据库过程. INITsid.ORA 参数 JOB_QUEUE_PROCESS 设置快照进程数, 参数 JOB_QUEUE_INTERVAL 决定快照进程在被唤醒以处理挂起的作业或事务之前休眠的秒数。 11)并行查询进程(Pnnn) 可根据数据库的活动并行查询选项的设置,ORACLE服务器起动或停
34、止查询进程.这些进程涉及并行索引的创建,表的创建及查询。 启动的数量与参数 PARALLEL_MIN_SERVERS指定的数量相同,不能超出该参数指定的值。§2.7 Oracle内存结构 前面提到过Oracle的数据库实例是一组后台进程和内存结构组成。而内存结构是包括: 系统全局区(System Global Area) 程序全局区(Program Global Area) §2.7.1 系统全局区 Oracle 系统用于存放系统信息的一块存储区域,用户进程和Oracle后台进程都可以使用SGA。在SGA中含有许多组件(不同的部分)。 数据高速缓冲区(Data Buffer
35、 Cache) 在数据高速缓冲区中存放着Oracle系统最近使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被用访问的数据。如果用户要查的数据不在数据高速缓冲区时,Oracle自动从磁盘中去读取。数据高速缓冲区包括三个类型的区: 1) 脏的区(Dirty Buffers):包含有已经改变过并需要写回数据文件的数据块。 2) 自由区(Free Buffers):没有包含任何数据并可以再写入的区,Oracle可以从数据文件读数据块该区。 3) 保留区(Pinned Buffers):此区包含有正在处理的或者明确保留
36、用作将来用的区。 Oracle8i以后将缓冲池分为三个区(使用多个缓冲池特性时): 1) KEEP 缓冲池(KEEP buffer pool):在内存中保留数据块,它们不会被从内存中挤掉; 2) RECYCLE缓冲池从不需要的内存将数据移掉; 3) DEFAULT缓冲池包含有被分配的块。 重做日志缓冲区(Rado Log Buffer) 任何事务(Transaction)在记录到重做日志(恢复工作需要使用联机重做日志)之前都必须首先放到重做日志缓冲区(Redo Log Buffer)中。然后由日志写入进程(LGWR)定期将此缓冲区的内容写入重做日志中。 共享池(Shared Pool) 共享池
37、是SGA保留的区,用于存储如SQL、PL/SQL存储过程及包、数据字典、锁、字符集信息、安全属性等。共享池包含有: 1) 库高速缓存(Library Cache); 2) 字典高速缓冲区(Dictionary Cache )。 库高速缓存(Library Cache) 该区包含有: 1) 共享SQL区(Shared Pool Area); 2) 私有SQL区(Private SQL Area); 3) PL/SQL存储过程及包(PL/SQL Procedure and Package); 4) 控制结构(Control Structure)。 也就是说该区存放有经过语法分析并且正确的SQL语句
38、,并随时都准备被执行。 字典高速缓冲区(Data Dictionary Cache) 用于存放Oracle系统管理自身需要的所有信息,这些信息是登录到Oracle的用户名,这些用户有那些数据库对象以及这些数据库对象的位置等。 SVRMGR> Show SGA Total System Global Area 35544188 bytes Fixed Size 22208 bytes Variable Size 3376332 bytes Database Buffer 122880 bytes Redo Buffer 32768 bytes 后四项相加等于前一项。 也可以使用 selec
39、t * from v$SGA; 查询当前实例的SGA。 大的池(Large Pool) 在SGA中大池是可选的缓冲区。它可以根据需要有管理权进行配置。它可以提供一个大的区以供象数据库的备份与恢复等操作。 2)程序全局区(PGA) PGA是Oracle使用的内存区域,该区同一时间只能被一单个进程存放数据和控制,用于存放会话变量及内部数组等。 SGA Oracle内存结构(SGA图)§2.7.2 程序全局区 PGA是Oracle使用的内存区域,该区同一时间只能被一单个进程存放数据和控制,用于存放会话变量及内部数组等。 §2.8 Oracle实例 一个Oracle 实例(Inst
40、ance) 是由SGA,后台进程以及数据文件组成,每个数据库有自己的SGA和独立的Oracle进程集。如图所示: Oracle 实例和后台进程(instance图) 在分布情况下,为使不同的数据库系统的名字不致混淆,Oracle使用了一个SID(System Identifer)来标识每个Oracle Server的名字,在UNIX环境中以变量Oracle_Sid来区分。 §2.9 多线程服务器 (MTS) Oracle多线程服务器(Multithreader Server )允许对数据库进行多个连接以充分共享内存和资源,这使得可以用较少的内存来支持较多的用户。 连接到Oracle数
41、据库的进程都需要占用一定的内存空间,这样如果有过多的进程连接到Oracle,则出现了一个性能瓶颈。 Oracle8可以允许一万个以上用户同时连接到Oracle,但并不是所有的用户都使用MTS。目前的一些4GL工具并不支持MTS,象VB,PB等不支持MTS,象VC/C+可以支持MTS。 Oracle多线程服务器有自己的连接池(即共享服务器进程)。由于用户共享开放连接,这比原来的专用方法快的多(消除瓶颈)。 多线程对于一些专用的应用系统来说是非常合适的,比如订单登记系统,顾客提交订单,录入员该订单的数据;另外的录入员在与顾客交涉,并不都在录入数据(专用服务器进程闲着)。单这些终端被迫与系统连着,占
42、据了其他用户的资源。 多线程服务器则消除这些缺点。多线程服务器只维护一个连接池,当某个终端需和系统对话则给其分配一个连接即可。不需要则可以去掉。这样系统的资源被多个用户平摊。 改变参数文件中的相关参数来达到使系统成为多线程服务器配置(重新启动即可有效)。另外,数据库实例必须提供用户数目与所放置的一样才行。 §2.10 Oracle事务处理流程 银行取款业务处理流程: 1 发出查询余款的SQL语句,如: Select account_balance From banktable Where account_number='111222333' And account_t
43、ype='SAVINGS'; SQL语句通过SGA得到服务器进程; 服务器进程检查共享池中有无该条语句,无该条语句则将放置共享池中并准备运行; 执行SQL语句,把存放有余款的数据块从数据文件中读到SGA的数据高速缓冲区; 显示结果,比如余款为$325。 2 取款$25:SQL语句为: Update Bank_table set account_balanct=300 Where account_number='111222333' And account_type='SAVINGS'; 客户进程通过SGA把SQL语句传给服务器进程; 服务器进程查
44、找有无该条语句,有执行(; 分析SQL语句并存入共享池; 执行SQL语句; 要处理的数据在数据高速缓冲区吗?是转7; 从数据文件中读数据块到数据高速缓冲区; 在回滚段中记录原来的数值($325); 在重做日志中生成该事务的一个拷贝; 将数据高速缓冲区中的余额改为$300; 银行柜员机通过SGA发出工作完成信号(提交): 在重做日志中记录已完成事务; 清除回滚段中的恢复信息(Undo Information); 顾客取钱完成。§2.11 ORACLE系统的SYS和SYSTEM模式 SYS和SYSTEM 是每个ORACLE 数据库系统缺省安装的两个帐户。SYS 是所有内部数据库表、结构、过程包、等拥有者,此外它还拥有 V$ 和数据字典视图,并创建所有封装的数据库角色(DBA,CONNECT,RESOURCE)。 Sys是一个唯一能访问特定内部数据字典的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低压电器 课件 单元二 项目二 任务一 刀开关、组合开关的使用
- 内蒙古满洲里市重点中学2024-2025学年初三下学期4月模拟物理试题含解析
- 四川省宜宾市翠屏区中学2024-2025学年中考英语试题:考前冲刺打靶卷含答案
- 邵阳市大祥区2025年三下数学期末学业水平测试试题含解析
- 华中师范大学《药理学》2023-2024学年第一学期期末试卷
- 私立华联学院《人机交互的软件工程方法》2023-2024学年第二学期期末试卷
- 上海市市西中2025年高考物理试题查漏补缺试题含解析
- 汕尾职业技术学院《现代审计学双语》2023-2024学年第二学期期末试卷
- 内蒙古鄂托克旗乌兰镇中学2025届初三生物试题期末试题含解析
- 云南交通职业技术学院《桥梁工程(二)》2023-2024学年第二学期期末试卷
- IATF16949-COP-内部审核检查表+填写记录
- 2024新《公司法》亮点全面解读课件
- 中国工商银行数据中心2023年校园招聘60名人才笔试上岸历年典型考题与考点剖析附带答案详解
- 中华护理学会成人肠内营养支持护理团标解读
- 特种设备检验申请单
- 马渭丽《月光下的中国》
- AQ-T 1009-2021矿山救护队标准化考核规范
- DLT 5175-2021 火力发电厂热工开关量和模拟量控制系统设计规程-PDF解密
- 龋齿完整版本
- Q-GDW 11711-2017 电网运行风险预警管控工作规范
- JTGT F81-01-2004 公路工程基桩动测技术规程
评论
0/150
提交评论