《Oracle基本概念的教案》由会员分享,可在线阅读,更多相关《Oracle基本概念的教案(42页珍藏版)》请在金锄头文库上搜索。
1、Oracle Oracle 教教 案案第一讲第一讲主讲内容:主讲内容:OracleOracle系统结构系统结构OracleOracle数据库的物理结构数据库的物理结构 OracleOracle数据库的逻辑结构数据库的逻辑结构STRUCTURESTRUCTURE(内存结构)(内存结构)ORACLEORACLE数据库的后台进程数据库的后台进程Oracle Oracle 总体概括总体概括实例由以下组成实例由以下组成: SGA, Shared pool (: SGA, Shared pool (共享池共享池),Database buffer cache(),Database buffer cache(
2、数据库高速数据库高速 缓存缓存),Redo log buffer cache(),Redo log buffer cache(重做日志缓冲区重做日志缓冲区). ). ORACLE SERVER ORACLE SERVER 由两个部分组成:由两个部分组成:1.1.INSTANCE INSTANCE :由内存结构和后台进程:由内存结构和后台进程 2.2.DATABASEDATABASE:由数据文件:由数据文件, ,日志文件和控制文件组成。日志文件和控制文件组成。广告:下载源码就到广告:下载源码就到源码网源码网,Oracle Oracle 系统结构系统结构与其他数据库产品不同,与其他数据库产品不同,
3、OracleOracle有其自己独特的系统体系结构。有其自己独特的系统体系结构。OracleOracle系统体系系统体系 结构是整个结构是整个OracleOracle服务器系统的框架,是管理和应用服务器系统的框架,是管理和应用OracleOracle数据服务器的基础和核心。数据服务器的基础和核心。OracleOracle系统体系结构由三部分组成:逻辑结构、物理结构和实例。其中,实例是系统体系结构由三部分组成:逻辑结构、物理结构和实例。其中,实例是 维系物理结构和逻辑结构的核心。如图所示:维系物理结构和逻辑结构的核心。如图所示:数据库模式及其物理文件关系示意图数据库模式及其物理文件关系示意图Or
4、acleOracle系统体系结构与功能系统体系结构与功能 不论是不论是OracleOracle的应用开发还是数据库管理都是以实例作为切入点的。只不过的应用开发还是数据库管理都是以实例作为切入点的。只不过 OracleOracle的应用程序开发主要是以数据库的逻辑对象为主的应用程序开发主要是以数据库的逻辑对象为主( (如表、索引和视图等如表、索引和视图等), ),而数据库而数据库 管理则是针对数据库的全部内容。管理则是针对数据库的全部内容。OracleOracle数据库由构成物理结构的各种文件组成,如数据库由构成物理结构的各种文件组成,如 数据文件、控制文件和重做日志文件等;实例是数据文件、控制
5、文件和重做日志文件等;实例是OracleOracle在内存中分配的一段区域在内存中分配的一段区域SGASGA 和服务器后台进程的集合。和服务器后台进程的集合。OracleOracle数据库服务器就是数据库和实例的组合。数据库服务器就是数据库和实例的组合。一、控制文件一、控制文件(Control Files)(Control Files)控制文件控制文件(Control Files)(Control Files)是一个很小的二进制文件,它用于描述数据库的物理结构。数据控制文件一般在安装是一个很小的二进制文件,它用于描述数据库的物理结构。数据控制文件一般在安装OracleOracle系统时自动系统
6、时自动创建,并且其存放路径由服务器参数文件创建,并且其存放路径由服务器参数文件SPFILEsid.oraSPFILEsid.ora的的CONTROL_FILESCONTROL_FILES参数值来确定。参数值来确定。 由于控制文件存放有数据文件和日志文件等信息,因此由于控制文件存放有数据文件和日志文件等信息,因此OracleOracle数据库在启动时,数据库须访问控制文件。在数据库的使用过程数据库在启动时,数据库须访问控制文件。在数据库的使用过程 中,中,OracleOracle将不断更新控制文件。如果由于某些原因导致控件文件被损坏,那么数据库也就不能正常工作了。将不断更新控制文件。如果由于某些
7、原因导致控件文件被损坏,那么数据库也就不能正常工作了。 由于控制文件的重要由于控制文件的重要 性,因此一个数据库至少应该包含一个以上的控制文件,性,因此一个数据库至少应该包含一个以上的控制文件,Oracle 10gOracle 10g默认包含了默认包含了3 3个控制文件,每个控制文件都包含了相同的信息。个控制文件,每个控制文件都包含了相同的信息。 这样可确保在数据库运行时,如果某个控制文件损坏,这样可确保在数据库运行时,如果某个控制文件损坏,OracleOracle会自动使用另一个控制文件,不致于因某个控制文件损坏而无法启动会自动使用另一个控制文件,不致于因某个控制文件损坏而无法启动 数据库。
8、数据库。 为了获取控制文件的信息,可以通过查询为了获取控制文件的信息,可以通过查询V$CONTROLFILEV$CONTROLFILE数据字典获知。查询数据字典数据字典获知。查询数据字典V$CONTROLFILEV$CONTROLFILE获取数据库获取数据库的控制文件信息。的控制文件信息。 如下图:如下图:Oracle-Oracle-物理结构物理结构 OracleOracle数据库由以下驻留在磁盘上的文件构成:控制文件数据库由以下驻留在磁盘上的文件构成:控制文件(Control files)(Control files)、数据文件、数据文件(Datafiles)(Datafiles)和重做日志
9、文件和重做日志文件(Redologs)(Redologs),与数据关联但不是数据构成部分的文件有:,与数据关联但不是数据构成部分的文件有:password file(password file(口令文件口令文件) )、Archived LogArchived Log、Oracle NetOracle Net等。等。控制文件的后缀是控制文件的后缀是ctlctl。控制文件通常非常小,一般在。控制文件通常非常小,一般在1M1M在在5M5M之间,可以修改参数文件中的参数:之间,可以修改参数文件中的参数: controlfile_record_keep_timecontrolfile_record_ke
10、ep_time让控制文件更大些。控制文件在让控制文件更大些。控制文件在OracleOracle数据库管理系统中管理数据库的状态数据库管理系统中管理数据库的状态 ,是,是OracleOracle数据库中重为重要的一个文件,只有数据库中重为重要的一个文件,只有OracleOracle能向控制文件中写入信息,只有能向控制文件中写入信息,只有OracleOracle服务器进服务器进程在数据库操作时能刷新控制文件。一个数据库实例启动时,先找控制文件,然后由控制文件找到数据程在数据库操作时能刷新控制文件。一个数据库实例启动时,先找控制文件,然后由控制文件找到数据 文件和日志文件,加载数据库和打开数据库。文
11、件和日志文件,加载数据库和打开数据库。二、数据文件二、数据文件(Datafiles)(Datafiles)数据文件是存储在磁盘上的插入到表中的数据。这些数据文件与数据库中表的数据相关。查询视图数据文件是存储在磁盘上的插入到表中的数据。这些数据文件与数据库中表的数据相关。查询视图v$datafile,v$datafile,如下图:如下图:通过查询视图通过查询视图v$datafilev$datafile可以看到数据库中的数据文件。它们是以可以看到数据库中的数据文件。它们是以dbf(Database file)dbf(Database file)为后缀。为后缀。数据文件数据文件(Data File)
12、(Data File)用于存储数据库数据的文件,如表中的记录,索引,数据字典信息等都存用于存储数据库数据的文件,如表中的记录,索引,数据字典信息等都存 储于数据文件中。在存取数据时,储于数据文件中。在存取数据时,OracleOracle数据库系统首先从数据文件中读取数据,并存储在内存中数据库系统首先从数据文件中读取数据,并存储在内存中 的数据缓冲区中。当用户查询数据时,如果所要查询的数据不在数据缓冲区中,则这时的数据缓冲区中。当用户查询数据时,如果所要查询的数据不在数据缓冲区中,则这时OracleOracle数据数据库进行启动相应的进程从数据文件中读取数据,并保存到数据缓冲区中。当用户修改数据
13、时,用户库进行启动相应的进程从数据文件中读取数据,并保存到数据缓冲区中。当用户修改数据时,用户 对数据的修改保存在数据缓冲区中,然后由对数据的修改保存在数据缓冲区中,然后由OracleOracle的相应后台进程将数据写入到数据文件中。这样的相应后台进程将数据写入到数据文件中。这样 的存取方式减少了磁盘的的存取方式减少了磁盘的I/OI/O操作,提高了系统的响应性能。操作,提高了系统的响应性能。 一个一个OracleOracle数据库往往有多个数据文件。这里需要注意的是:当向数据库往往有多个数据文件。这里需要注意的是:当向OracleOracle数据库中某个表添加数据库中某个表添加数据时,输入到表
14、中的数据可能包含在一个数据文件中,也可能包含在多个数据文件中。换句说话数据时,输入到表中的数据可能包含在一个数据文件中,也可能包含在多个数据文件中。换句说话 ,当在,当在OracleOracle数据库为中创建一个表时,数据库为中创建一个表时,OracleOracle数据库系统不会为此在磁盘在上创建一个数据文件数据库系统不会为此在磁盘在上创建一个数据文件 。 要了解数据库中数据文件的信息,可以查询数据库字典要了解数据库中数据文件的信息,可以查询数据库字典DBA_DATA_FILESDBA_DATA_FILES及数据字典及数据字典 V$DATAFILEV$DATAFILE。数据字典。数据字典DBA
15、_DATA_FILESDBA_DATA_FILES描述了数据文件的名称、标识、大小以及对应的表空描述了数据文件的名称、标识、大小以及对应的表空 间信息等,而数据字典间信息等,而数据字典V$DATAFILEV$DATAFILE则描述了数据文件的同步信息。则描述了数据文件的同步信息。 为了了解为了了解DBA_DATA_FILESDBA_DATA_FILES数据字典的结构,可以使用命令数据字典的结构,可以使用命令DESCDESC查询该数据字典的结构。查询该数据字典的结构。 通过通过DESCDESC命令查询命令查询DBA_DATA_FILESDBA_DATA_FILES数据字典的结构。其中数据字典的结
16、构。其中FILE_NAMEFILE_NAME为数据文件的名称及存为数据文件的名称及存 放路径;放路径;FILE_IDFILE_ID为该文件在数据库中的为该文件在数据库中的IDID号;号;TABLESPACE_NAMETABLESPACE_NAME为该数据文件对应的表空间为该数据文件对应的表空间 名;名;BYTESBYTES为该数据文件大小;为该数据文件大小;BLOCKSBLOCKS为该数据文件所占用的数据块数。为该数据文件所占用的数据块数。 数据字数据字V$DATAFILEV$DATAFILE 记录了数据文件的动态信息,在不同时间其查询结果是不相同的记录了数据文件的动态信息,在不同时间其查询结果是不相同的 其中,其中,FILE#FILE#列存放为数据文件的列存放为数据文件的 编号;编号;STATUSSTATUS列存放为数据文件所属的表空间;列存放为数据文件所属的表空间;NAMENAME列为数据文件的名称及存放路径。列为数据文件的名