Oracle体系结构教学内容.ppt
《Oracle体系结构教学内容.ppt》由会员分享,可在线阅读,更多相关《Oracle体系结构教学内容.ppt(111页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Oracle体系结构 本章要点本章要点Oracle服务器体系结构服务器体系结构Oracle 实例实例 Oracle内存结构内存结构 Oracle进程结构进程结构 Oracle 数据库逻辑存储结构数据库逻辑存储结构 Oracle 数据库物理存储结构数据库物理存储结构 Oracle构架构架实 例内存结构内存结构后台进程后台进程PMONSMONDBWRLGWRCKPT其他数据库数据库数据文件数据文件数据文件控制文件控制文件日志文件日志文件参数文件归档日志文件归档日志文件口令文件SGA用户进程服务器进程PGA共享池数据缓冲区日志缓冲区3.1Oracle服务器体系结构概述服务器体系结构概述lOracle
2、 服务器服务器 1、Oracle数据库数据库 Oracle数据库是一个存储数据的容器,由一些操作系统文件组成,它的基本功能是存储数据库全部的数据,数据的种类主要包括用户数据、控制数据以及操作信息等。数据库文件可分为数据数据文件、控制文件文件、控制文件和重做日志文件重做日志文件三类。Oracle数据库文件PasswordfileParameterfileArchivedlogfilesControlfilesDatafilesRedologfilesDatabase3.1Oracle服务器体系结构概述服务器体系结构概述lOracle 服务器服务器 2、Oracle实例实例 Oracle实例是运行
3、在内存中的Oracle软件,主要包括Oracle内存结构和一些Oracle进程。在启动Oracle服务器时,实际上是在内存中创建一个Oracle实例,然后由这个实例访问和控制数据库文件的存取。Oracle实例实例BackgroundprocessstructuresMemorystructuresInstanceSGARedoLogBufferSharedPoolDataDictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersDatabaseBufferCacheJavaPoolLargePool3.1Oracle服务器体系结构概述服务器体系结
4、构概述lOracle 服务器服务器 3、用户进程用户进程和其它进程和其它进程 用户进程是当用户执行一个Oracle应用程序(如Pro*C/C+),或启动一个Oracle工具(如SQL*Plus)时,Oracle所创建的用于管理这些应用程序或Oracle工具与Oracle实例通信的进程。用户进程不是实例的一部分。用户进程不是实例的一部分。是一些试图连接数据是一些试图连接数据库的软件库的软件ServerUserClientClientUserServerOracleserverOracleserverServerServerUserServerApplicationserverApplicatio
5、nserverBrowserBrowser用户进程连接用户进程连接Oracle实例实例3.1Oracle服务器体系结构概述服务器体系结构概述lOracle 服务器工作过程服务器工作过程 以取款过程为例,跟踪Oracle对这一事务的执行过程,了解Oracle各组成部分的功能和Oracle服务器的工作过程。1)首先通过银行柜员机查询银行卡上存款情况。柜员机接受请求后,向远程服务器发出SQL语句:SELECT USER,ACCOUNT FROM BANK_ACCOUNT WHERE PASEWORD 123456 AND ACCOUNT_ID 1938743228;3.1Oracle服务器体系结构概
6、述服务器体系结构概述lOracle 服务器工作过程服务器工作过程 SQL语句通过网络传送到服务器端,服务器进程接收到SQL语句后,检查共享池中是否保存有该SQL语句解析后的程序代码。如果SQL不在共享池中,服务器进程将解析SQL语句,然后执行此程序,否则从共享池中取出SQL语句直接执行。服务器将保存有存款数量的数据块从数据文件中读出并放到SGA的数据高速缓存中。一旦存款数据放进数据高速缓冲区中,客户进程即可读出此数据并将其返回至柜员机。3.1Oracle服务器体系结构概述服务器体系结构概述lOracle 服务器工作过程服务器工作过程 (3)根据存款情况从银行卡上取出一部分现金。柜员机接收取款数
7、量后,形成下列SQL语句并发送到服务器:UPDATE BANK_ACCOUNT SET ACCOUNT_BALANCE=100 WHERE PASEWORD 123456 AND ACCOUNT_ID 1938743228;3.1Oracle服务器体系结构概述服务器体系结构概述lOracle 服务器工作过程服务器工作过程 Oracle按下列步骤执行UPDATE语句:(1)用户进程通过服务器进程把该语句传给Oracle实例;(2)服务器进程在共享池中查找该SQL的可执行版本。如果找到,则转向第(4)步,否则执行第(3)步;(3)解析这条SQL语句,并将其可执行版本送入共享池;(4)执行此SQL语
8、句;(5)服务器进程在数据高速缓存中查找该语句处理的数据,如果有,则转向第(7)步;否则,执行第(6)步;(6)从数据库文件中把数据读入数据高速缓冲区;(7)在回退段中记录原来的存款数量;(8)在重做日志中生成该事务的一个重做日志项;(9)将数据高速缓冲区中的存款数据改为取款后的数据;(10)LGWR进程在重做日志文件中记录已完成事务;(11)DBWn进程在数据文件中记录取款后的数据;3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 1.数据字典的概念 数据字典是Oracle数据库中最重要的逻辑结构之一,它是由一些只读的基础表和视图组成。在这些基础表中,保存着Oracl
9、e服务器所有的信息。3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 1.数据字典的概念数据字典中的信息主要包括:数据库物理结构和逻辑结构的定义数据的完整性约束信息数据库的安全信息审计信息数据库运行时的性能和统计信息其它关于数据库的基本信息3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 2.数据字典的结构基础表基础表 数据字典中的数据都是保存在基础表中的。用户视图用户视图 大多数用户通过从视图而不是从基表进行选择来检查数据字典。它们将基表数据解码为有用的信息,使用连接和WHERE子句来简化基表信息。3.1Oracle服务器体系结构概述服务器体系
10、结构概述l数据字典数据字典3.数据字典的作用获取有关用户、模式对象和存储结构的信息,从而控制和管理服务器工作。任何数据库用户都可从DD中读取关于数据库的信息,从而实现对数据库进行相关的开发、修改和维护等操作。DBA可以从数据字典中获取数据库的各种参数信息和运行状态信息,从而进行有效的数据库管理。Oracle服务器在执行DDL语句时对其进行修改3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 4.用户视图 用户视图也叫静态数据字典视图,内容是基本表中的数据,只有基本表改变后,视图的内容才随之改变。名称前缀视图中的数据内容使用者USER_该数据库用户所拥有的模式对象信息一般
11、用户或DBAALL_该数据库用户所能访问的所有模式对象信息一般用户或DBADBA_所有数据库对象信息DBA3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 4.数据字典视图类别 DBA_xxxUSER_xxxALL_xxx当前用当前用户拥有的有的对象象当前用当前用户可以可以访问的的对象象数据数据库中的所有中的所有对象象3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 4.用户视图 (1)“USER_”为前缀的用户视图通常包含执行查询的用户所拥有的对象的信息,这类视图可以被一般用户使用。例如,用户SCOTT想知道自己拥有那些表。SQLSELECT
12、TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES;结果将会显示用户SCOTT所拥有的全部表的表名和表空间情况。TABLE_NAME TABLESPACE_NAME-BONUS SYSTEMDEPT SYSTEMEMP SYSTEM3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 4.用户视图 (2)ALL_为前缀的用户视图通常包含包括执行查询的用户所拥有的对象信息及授权给该用户所拥有的对象信息,这类视图可以被一般用户使用。例如,用户SCOTT想知道自己能够访问那些表。SQLSELECT TABLE_NAME,TABLESPACE_N
13、AME FROM ALL_TABLES;结果将会显示用户SCOTT所能访问的全部表的表名和表空间情况。TABLE_NAME TABLESPACE_NAME-DUAL SYSTEMSYSTEM_PRIVILEGE_MAP SYSTEMTABLE_PRIVILEGE_MAP SYSTEMSTMT_AUDIT_OPTION_MAP SYSTEM3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 4.用户视图 (3)DBA_为前缀的用户视图则包含所有数据库对象的信息,而不管其所有者是谁,这类视图只能被具有DBA权限的用户或被授予了SELECT ANY TABLE 权限的用户使用。
14、如:以用户SCOTT登录Oracle服务器,执行下述语句:SQLSELECT TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES;结果将会显示如下提示信息:ERROR 位于第 1 行:ORA-00942:表或视图不存在3.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 4.用户视图 现在以用户SYSTEM登录Oracle服务器,查询数据库用户信息。SQLSELECT TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES;结果将会显示系统中所有表的表名和表空间情况。TABLE_NAME TABLESPACE_
15、NAME -SEG$SYSTEM CLU$SYSTEM OBJ$SYSTEM 常用数据字典用户视图常用数据字典用户视图常用数据字典用户视图常用数据字典用户视图 说明:每个视图都对应着一个“DBA_”、一个“ALL_”和一个“USER_”视图。视图家族家族描描 述述TABLES 表信息,比如表空表信息,比如表空间、存、存储参数和数据行的数量参数和数据行的数量 VIEWS 视图信息,包括信息,包括视图定定义 EXTENTS 数据范数据范围信息,比如数据文件、数据段名和大小信息,比如数据文件、数据段名和大小 INDEXES 索引信息,比如索引信息,比如类型、唯一性和被涉及的表型、唯一性和被涉及的表
16、OBJECTS 对象信息,比如状象信息,比如状态和和DDL时间SOURCE 除触除触发器之外的所有内置器之外的所有内置过程、函数、包的源代程、函数、包的源代码 SYNONYMS 别名信息,比如引用的名信息,比如引用的对象和数据象和数据库链接接db_link SYS_PRIVS 系系统权限,比如限,比如grantee、privilege、admin选项 5privilidVTAB_COLUMNS 表和表和视图的列信息,包括列的数据的列信息,包括列的数据类型型 TAB_PRIVS 表表权限,比如授予者、被授予者和限,比如授予者、被授予者和权限限 TRIGGERS 触触发器信息,比如器信息,比如类型
17、、事件、触型、事件、触发体体USERS 用用户信息,比如信息,比如临时的和缺省的表空的和缺省的表空间 Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 5、动态性能表-V$视图视图 Oracle服务器在运行过程中,会将当前服务器的运行状态记录在内存中的一些“虚拟”表中,这些“虚拟”表称之为动态性能表。Oracle在动态性能表的基础上建立了动态性能视图,这些动态性能视图由前缀V_$标示,其公共同义词具有前缀V$或GV$,因此,动态性能视图一般又称为V$视图。常用的动态性能视图常用的动态性能视图常用的动态性能视图常用的动态性能视图动态性能性能视图名称名称内容内容V$CONTROL
18、FILE数据库控制文件信息V$DATABASE控制文件中数据库信息V$DATAFILE控制文件中数据文件信息V$INSTANCE当前实例信息V$PARAMETER初始化参数信息V$SESSION当前每一个会话的会话信息V$SGASGA的信息的信息V$SPPARAMETERSPFILE文件的内容V$TABLESPACE控制文件中表空间信息V$VERSIONOracle服务器核心组件的版本信息Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典例如,使用V$SGA视图查询SGA情况。首先用SYS帐户,以SYSDBA连接身份登录SQL*Plus,执行下列命令:SQLSELECT*FRO
19、M V$SGA;结果显示为:NAME VALUE-Fixed Size 453492Variable Size 109051904Database Buffers 25165824Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典例如,使用V$FIXED_TABLE视图可看所有动态性能表和动态性能视图的信息。SQLSELECT*FROM V$FIXED_TABLE;结果显示为:NAME OBJECT_ID TYPE TABLE_NUM-X$KQFTA 4294950912 TABLE 0X$KQFVI 4294950913 TABLE 1X$KQFVT 4294951149 T
20、ABLE 23.1Oracle服务器体系结构概述服务器体系结构概述l数据字典数据字典 6.其它视图例如,下面的代码以另一种方式显示当前用户(如:scott)已创建的所有表Select*from tab;TNAME TABTYPE CLUSTERID-ACCOUNT TABLEBONUS TABLEDEPT TABLEEMP TABLERECEIPT TABLESALGRADE TABLE已选择6行。3.2Oracle实例实例 Oracle实例是运行在内存中的Oracle软件,主要包括Oracle内存结构和一些Oracle进程。在启动Oracle服务器时,实际上是在内存中创建一个Oracle实例
21、,然后由这个实例访问和控制数据库文件的存取。3.2Oracle实例实例l实例的概念实例的概念 1.实例 实例就是运行状态下的Oracle软件,主要是由内存结构和一些进程组成。在Oracle中,每一个数据库至少有一个与之对应的实例,但一个实例只能打开和使用一个数据库。DatabaseInstanceSGARedologbufferDatabuffercacheSharedpoolDatadict.cacheLibrarycachePMONDBW0SMONLGWRCKPTOthersUserprocessServerprocessPGAControlfilesDatafilesRedologfil
22、esArchivedlogfilesParameterfilePasswordfileOracle体系结构体系结构OSRAMDISKNetOracle实例实例BackgroundprocessstructuresMemorystructuresInstanceSGARedoLogBufferSharedPoolDataDictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersDatabaseBufferCacheJavaPoolLargePool3.2Oracle实例实例l实例的概念实例的概念 2.实例的组成系统全局区SGA。后台进程。3.2Or
23、acle实例实例l实例的概念实例的概念 实例可以实现数据库的访问和控制功能。单节点服务器多节点服务器 3.2Oracle实例实例l实例的概念实例的概念例如:假定有一台计算机上有两个数据库,分别称作ORCL和TEACH,如果这两个数据库分别有自己的SGA和独立的Oracle服务器进程集,那么就有了两个数据库实例。为了不致使这两个数据库混淆,每个实例都实例都要用称为要用称为SID(System Identifier,系统标识符,系统标识符)的符的符号来标识号来标识。3.3Oracle内存结构内存结构 内存结构是Oracle服务器体系结构中最重要的组成部分之一,是决定Oracle服务器整体性能的关键
24、因素。3.3Oracle内存结构内存结构l内存结构的组成内存结构的组成系统全局区(SGA):在实例启动的时候分配,是Oracle实例中的一个基本部分程序全局区(PGA):服务器进程启动时分配,与SGA区不同的是,PGA不是一个共享全局区,而是一个私有区。3.2Oracle内存结构内存结构l内存结构的组成内存结构的组成Oracle内存结构保存有以下信息:解析后的SQL语句和PL/SQL程序代码连接数据库的所有会话信息缓存数据,包括用户执行SQL语句和PL/SQL程序生成的数据和重做日志数据Oracle运行所需要的信息,如数据字典信息等Oracle进程共享和通信所需要的信息,例如锁信息。3.2Or
25、acle内存结构内存结构l系统全局区系统全局区(1)SGA的结构 数据库高速缓存(Database Buffer Cache)重做日志缓存(Redo Log Buffer)共享池(Shared Pool)Java池(Java Pool)大型池(Large Pool)数据字典高速缓存(Data Dictionary Cache)其它信息存储结构 SGARedologbufferDatabuffercacheSharedpoolDatadict.cacheLibrarycacheLargePoolJavaPoolSGASGA结构图结构图结构图结构图 3.2.1系统全局区系统全局区(SGA)l数据库
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 体系结构 教学内容
限制150内