《第3章 ORACLE数据库结构》由会员分享,可在线阅读,更多相关《第3章 ORACLE数据库结构(74页珍藏版)》请在金锄头文库上搜索。
1、第三章 Oracle数据库结构,Oracle数据库 处理数据文件的若干程序。 Oracle数据库的结构 包括物理结构(文件结构)、存储结构(内存结构)、进程结构和逻辑结构。,总述,Overview of Primary Components,Instance,SGA,Redo logbuffer cache,Shared pool,Data Dict.cache,Librarycache,DBWR,SMON,PMON,CKPT,LGWR,Others,Userprocess,Serverprocess,PGA,Control files,Data files,Archived log file
2、s,Parameterfile,Passwordfile,Redo log files,Database,Databasebuffer cache,主要概念: Oracle Instance,An Oracle instance:Consists of memory and process structures访问DB前必须启动ORACLE INSTANCE,分配内存并启动后台进程.,Background structures,Memory structures,SGA,Redo logbuffer cache,Database buffer cache,Shared pool,DBWR,SM
3、ON,PMON,CKPT,LGWR,Others,Data Dictionarycache,Librarycache,Instance,ORACLE 服务器,An Oracle Server Is a database management system that provides an open, comprehensive, integrated approach to information management Consists of an Oracle instance and an Oracle database,Oracle Server,Connecting to the Da
4、tabase,Connection: Communication between a user process and an instance(通信途径:主机,C/S,B/S)Session: Specific connection of a user to an instance through a user process,SQL Select ,Session,Connection,USER,User,服务器进程,3.1、物理结构(数据库文件),Control files,Data files,Archived log files,Parameterfile,Passwordfile,R
5、edo log files,Oracle Database,构成数据库的操作系统文件,每一个ORACLE数据库主要是由三种类型的文件组成(数据库文件): 数据文件 重做日志文件 控制文件,1、数据文件,存放数据库所有数据的文件,包括逻辑数据库结构的数据也物理地存储在数据库的数据文件中。是数据库最基本、最主要的文件。每一个ORACLE数据库有一个或多个物理的数据文件。,1、数据文件(续),数据文件分为二类:用户数据:应用程序使用的数据系统数据:管理数据库本身和用户数据的数 据(包含DB对象的逻辑结 构数据),1、数据文件(续),ORACLE对象:用户与模式、表、索引、视图、 簇、序列、过程、函数
6、、包、触发器、同义词、权限、角色、段、范围、块、回滚段、列、数据类型等。实验一:课后练习?,1、数据文件(续),数据文件有下列特征: 一个数据文件仅与一个数据库联系。 一个表空间(数据库存储的逻辑单位) 由一个或多个数据文件组成。,1、数据文件(续),数据文件中的数据在需要时可以读取并存储在ORACLE内存区中。 例如:用户要存取一个表中的某些数据,如果请求的信息不在内存,则从相应的数据文件中读取并存储在内存。 当修改和插入新数据时,不必立刻写入数据文件(为了减少磁盘输出的总数,提高性能)。ORACLE后台进程DBWR决定何时将其写入到相应的数据文件。,2、重做日志文件,记录对数据所作的修改(
7、修改前、后的值),以便故障时用于数据恢复。 数据库高速缓冲区的数据数据不是一变就写到数据文件,而是由LGWR先将更改的数据写到重做日志文件(日志先写),万一DBWR写数据文件前宕机,通过重做日志文件恢复这部分数据。重做日志文件记录了数据库高速缓存中的所有数据。,Oracle服务器使用联机重做日志文件组防止数据库中数据的丢失。一个数据库至少有两个联机重做日志文件组,循环使用。组中每一个日志成员都有相同的内容(自动同步每个成员)。,重做日志文件结构,当一个重做日志文件组写满,自动进行日志切换,同时为该日志组设置一个日志序列号。,2、重做日志文件(续),当前的日志序列号也存储在控制文件中以及所有数据
8、文件的头中。在数据文件、控制文件和重做日志文件中,重做日志文件的I/O操作最频繁。为了提高I/O性能,应将重做日志分布到I/O操作相对较少、速度最快的磁盘设备上。为了防止日志文件本身的故障,ORACLE希望镜象日志,既将同一个日志组的不同日志成员尽可能地分布到不同磁盘上,以防止磁盘损坏而导致所有日志成员丢失。,2、重做日志文件(续),日志文件中的信息在系统故障时恢复数据库时使用。任何丢失的数据在下一次数据库打开时,ORACLE自动地应用日志文件中的信息来恢复数据库的数据文件。,2、重做日志文件(续),例:数据库创建时创建重做日志文件的命令:CREATE DATABASE “ORCL” LOGF
9、ILEGROUP 1 F:oracleORADATAORCLREDO01.LOGSIZE 100M, GROUP 2 F:oracleORADATAORCLREDO02.LOGSIZE 100M;,2、重做日志文件(续),可以通过数据字典中的视图V$LOG和V$LOGLFILE来查看日志文件信息:例 SQLselect * from v$logfile ;GROUP# STATUS TYPEMember1 STALE ONLINE F:ORACLEORADATAORCLREDO01.LOG3 STALE ONLINE F:ORACLEORADATAORCLREDO07.LOG ONLINE F
10、:ORACLEORADATAORCLREDO02.LOGSTALE:该文件内容不完整,空白:该日志组正在使用,3、控制文件,记录数据库的物理结构的关键信息,如数据文件、重作日志文件的名和位置,维持内部一致性和OS恢复的引导。当启动数据库时,oracle使用控制文件来辨别数据文件和重做日志文件,然后将其打开。为二进制文件(col name format a50SQLselect * from v$controlfile /STATUSNAME F:ORACLEORADATAORCLCONTROL01.CTL F:ORACLEORADATAORCLCONTROL02.CTL F:ORACLEORA
11、DATAORCLCONTROL03.CTL,控制文件包括的内容:,数据库的名称和标识符;(数据库的名称可由初始化参数DB_NAME指定的,或由CREAT DATABASE语句指定的);数据库的创建日期;数据文件和日志文件的名称和位置;表空间的信息,包括表空间、增加的表空间和删除的表空间等;,控制文件包括的内容: (续),归档日志的位置和状态等信息;数据库的备份信息,如备份的位置和状态等;当前日志的序列号,日志切换时记录记录检查点的信息,检查点事件发生时记录。,3、控制文件(续),可通过下列步骤增加控制文件:(1)关闭数据库 SQLshutdown immediate (2)使用操作系统命令拷贝
12、控制文件到新的位置 COPY当前控制文件到F:ORCLORCL路径下并重命名为CONTROL07.CTL。,3、控制文件(续),(3)编辑初始化参数control-filecontrol_files=(“f:oracleoradataorclcontrol01.ctl”, “F:oracleoradataorclcontrol02.ctl”, “F:oracleoradataorclcontrol03.ctl”, “F:orcl orcl control07.ctl”) (4)启动数据库 SQLstartup,参数文件,决定一个ORACLE实例(INSTANCE)的组成和大小.如SGA中分配空
13、间的参数、控制文件的位置等可以直接用编辑器查看的静态参数文件为PFILE,动态的二进制文件为SPFILEPFILE 默认名为init_.oraSPFILE 默认名为spfile_.ora使用PFILE启动数据库:SQLSATARUP PFILE=init_.ora,密码文件,用于用户启动和关闭数据库实例.判断用户的操作权限.安装数据库后,系统默认的用户名和密码就存在密码文件.,3.2、存储结构(内存结构),用来存储应用程序数据、数据字典信息、SQL、PL/SQL命令以及JAVA程序。内部存储结构主要由两部分构成:系统全局区(System Global Area,SGA) Allocated at instance startup程序全局区(Program Global Area,PGA) Allocated when the server process is started,Oracle Memory Architecture,SGA,Database buffercache,Redo log buffer,Java pool,Streams pool,Shared pool,Large pool,PGA,PGA,PGA,Backgroundprocess,Serverprocess 1,