Oracle 数据库管理与应用:第2章 Oracle数据库的体系结构_第1页
Oracle 数据库管理与应用:第2章 Oracle数据库的体系结构_第2页
Oracle 数据库管理与应用:第2章 Oracle数据库的体系结构_第3页
Oracle 数据库管理与应用:第2章 Oracle数据库的体系结构_第4页
Oracle 数据库管理与应用:第2章 Oracle数据库的体系结构_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 Oracle数据库的体系结构 本章要点数据库的物理存储结构 12数据库的实例结构 33Oracle网络配置44数据库的逻辑存储结构 常用SQL*PLUS命令:Set linesize 120 设置行宽Set pagesize 40 设置每页的行数Show linesize 查看参数linesize的值Clear screen 清屏幕Desc 表名 查看表的结构Column file_name format A70 设置列宽70个字符 注:退出SQL*PLUS后,参数值还原环境变量设置 见教材P1092.1 物理存储结构 物理存储结构 是Oracle数据库的外部存储结构。 Oracle数

2、据库主要包括4种类型的文件:数据文件日志文件控制文件初始化参数文件2.1.1 数据文件 数据文件是Oracle数据库用来存储各种数据的地方,如表中的记录、索引数据、系统数据和临时数据等。 一个数据库有一个或多个数据文件,但一个数据文件只能属于一个数据库。 数据文件中存储了各种系统和用户的数据,但它和数据库中的表没有一对一的关系。 数据文件的扩展名是.dbf,主要包括永久数据文件和临时数据文件。 可以通过以下方式查看: ( column file_name format A70 )静态数据字典视图: DBA_DATA_FILES 和 DBA_TEMP_FILES动态数据字典视图 v$dbfile

3、 和 v$tempfileOEM工具 中的“管理”选项卡在“存储”选项组中点击“数据文件” 数据文件又可以分为以下几种:系统数据文件:system*.dbf(存放系统表和数据字典)回滚数据文件:undotbs*.dbf临时数据文件:temp*.dbf用户数据文件:users*.dbf系统辅助数据文件:sysaux*.dbf示例数据文件:example*.dbf2.1.2 日志文件 日志文件记录用户对数据库的修改信息,名字通常为REDO*.LOG格式。 日志文件也叫重做日志文件 (Redo Log Files)。 日志组是日志文件的逻辑组织单元,每个日志组中有一个或多个日志文件。 同一个日志组中

4、的多个日志文件具有相同的信息,它们是镜像关系 2.1.2 日志文件 重做日志组每个日志组中有一个或多个重做日志文件,这些文件称为成员。一个重做日志组中的所有成员是完全相同的,它们互为镜像。两种日志模式在Oracle中,数据库有两种工作模式:归档日志模式(archivelog):适用于系统投入使用后 当日志组写满后,将日志信息保存到归档日志文件中,然后再循环使用。非归档日志模式(noarchivelog):适用于开发环境和测试环境中 日志组写满后不会归档到归档日志文件中,直接被新的日志信息覆盖。查看数据库当前的日志模式以SYSDBA身份登录到SQL*Plus工具执行 ARCHIVE LOG LI

5、ST 命令 ,查看数据库当前的日志模式如图2-3所示。修改数据库的日志模式执行ALTER DATABASE ARCHIVELOG | NOARCHIVELOG命令 修改数据库的日志模式。具体步骤如下:1)关闭运行的数据库实例 2)备份数据库(可选 )3)启动数据库实例到mount状态(不打开数据库 )4)修改数据库的日志模式 5)打开数据库 6)查看数据库当前的日志模式 修改数据库的日志模式修改数据库的日志模式:以sysdba身份登录SQL*Plus。具体步骤(命令)如下:1)shutdown immediate2)备份数据库(可选 )3)startup mount4)ALTER DATABA

6、SE ARCHIVELOG; 5)ALTER DATABASE open;6)ARCHIVE LOG LIST查看日志组的相关信息:在SQL*Plus工具中查询数据字典视图: select group#,members,bytes,status from V$LOG;查看日志文件信息使用v$logfile在OEM工具的重做日志组中查看 : OEM工具点击“管理”选项卡在“存储”选项组中点击“重做日志组” 2.1.3 控制文件 控制文件(Control File)是Oracle数据库的物理文件之一,是一个很小的二进制文件,它记录了:数据库的名称数据文件和联机日志文件的名称及位置当前的日志序列号(

7、Log Sequence Number)表空间等信息 对于Oracle数据库来说:数据文件就像一个仓库;重作日志文件就像该仓库的货物进出账;控制文件就像该仓库的管理中心,记录着整个数据库的结构。所以,当数据库的物理结构改变时,Oracle会自动更新控制文件。 数据库启动时,各个物理文件使用的顺序:首先从初始化参数文件中获得控制文件的名称及位置,然后打开控制文件。再从控制文件中读取数据文件和联机日志文件的信息及其他相关信息。最后打开数据库 。如果控制文件损坏,数据库无法启动。因此,一般采用多路镜像控制文件。查看控制文件的信息:查询数据字典视图: select name from v$contro

8、lfile;OEM工具点击“管理”选项卡在“存储”选项组中点击“控制文件” 2.1.4 参数文件 参数文件中记录着:数据库名称控制文件的路径SGA的内存结构可选的Oracle特性和后台进程的配置参数等信息。 启动数据库实例时需要读取参数文件中的信息,因此它是第一个被访问的物理文件。参数文件分为:文本参数文件(pfile)服务器参数文件(spfile)有以下几点区别: 名称及路径不同 编辑方式不同 修改后的生效时限不同 启动次序spfile优先于pfile查看初始化参数文件:Show parameter spfile; 文本格式,重启才能生效二进制格式,可以指定立即生效文本格式,重启才能生效二进

9、制格式,可以指定立即生效文本格式,重启才能生效二进制格式,可以指定立即生效2.2 逻辑存储结构 逻辑存储单元依次为:表空间、段、盘区和数据块。 表空间是最大的逻辑存储单元,一个数据库从逻辑结构上划分就包括多个表空间;一个表空间继续划分为多个段;一个段又被划分为多个盘区,盘区是最小的磁盘空间分配单元;一个盘区又被划分为多个数据块,数据块是Oracle最小的数据读写单元。 2.2 逻辑存储结构 2.2.1 表空间 表空间(tablespace)是Oracle数据库中最大的逻辑存储结构 。逻辑结构上的表空间与物理结构上的数据文件是有关联的:数据库中的一个表空间至少包含一个或多个数据文件,而一个数据文

10、件只能属于一个表空间。 一个表空间的大小就等于它包含的所有数据文件大小之和。 表空间、数据文件和方案对象的存储结构 表空间数据文件数据文件用户表(方案对象)索引用户表用户表索引对于新建的数据库,系统自动添加了:system表空间:默认包括system01.dbf数据文件sysaux表空间:系统辅助表空间temp表空间users表空间undotbs1表空间 默认包括对应数据文件。可以通过三种方式增加数据库的容量: 为表空间创建新的数据文件。为数据库创建新的表空间。 增大现有数据文件的容量。 OEM工具:管理-存储-表空间-(列表右上方)创建-填写名称,添加数据文件2.2.2 段 一个表空间可以被

11、划分为若干个段(segment),一个段又可以被划分为若干个盘区。段虽然不是存储空间的分配单位,但系统会为每一个被存储的方案对象分配一个段。(段和方案对象一一对应) 一个表空间中有几个表就有几个数据段,而且数据段的名字和表名相同。段(segment)是以盘区为单位获得磁盘空间的一个段内的盘区在磁盘上不一定是连续的。 段可以分为以下几种类型: 数据段 索引段 临时段 回滚段 LOB段 2.2.3 盘区 盘区(extent)是逻辑存储结构中的一个重要概念,因为它是Oracle最小的磁盘空间分配单元。 当用户创建新表时,Oracle会为此表的数据段分配一个初始盘区。 创建表时可以指定为其数据段分配多

12、少初始空间、最多包含多少盘区、盘区的增长量等(CREATE TABLE 语句的STORGE选项) 2.2.4 数据块 数据块是Oracle最小的逻辑存储单元,是最基本的数据存取单位。Oracle从数据文件中存取数据时以数据块为单位进行输入输出操作。 一个数据块包括数据库中多个字节的物理空间,其默认大小由该数据库的参数文件中的db_block_size值指定 。数据块中可以存储表(table)、索引(index)或簇表(clustered data),但其内部结构都是类似的,如图2-11所示,主要包括:数据块头表目录区行目录区可用空间区行数据区2.3 数据库实例结构 一个完整的Oracle数据库

13、包括两个部分:数据库和数据库实例。数据库是存储数据的多个物理文件的集合 ,它是静态的、永久的。数据库实例是用户访问数据库的中间层,是使用数据库的手段,它为用户访问数据库提供了必要的内存空间和多个Oracle进程,它是动态的、临时的。 因此,Oracle实例是由内存空间和Oracle 进程两部分组成。 DatabaseInstanceSGARedo logbufferData buffercacheShared poolData dict.cacheLibrarycache PMON DBW0SMON LGWRCKPTOthersUserprocessServerprocessPGAContro

14、l filesData files Redo logfilesArchived log filesParameterfilePasswordfileOracle构架2.3.1 进程结构 进程是操作系统的基本执行单元,它是具有独立数据处理功能的正在执行的程序,是一系列操作的集合,有时也被称为作业(job)或任务(task)。Oracle系统的进程包括三种类型:用户进程服务进程后台进程1用户进程(user process)用户在客户端运行一个应用程序或 Oracle 工具(如OEM或 SQL*Plus)时,系统将为该用户创建一个用户进程。 用户进程负责与Oracle服务器建立连接和会话并向服务器发

15、出数据处理请求,得到处理结果后再输出给用户。 Oracle允许为一个用户同时创建多个会话 。2服务进程(server process) Oracle为用户进程创建一个服务进程或分配一个空闲的服务进程。 服务进程负责在用户进程和Oracle实例之间调度请求和响应,主要完成:解析与运行应用程序提交的SQL语句;数据处理时用到的数据如果不在SGA 中,负责将所需的数据块从磁盘上的数据文件读入SGA 的数据缓存区;以用户进程能理解的形式返回SQL 语句的执行结果。 用户进程和服务进程之间的对应关系是由Oracle数据库的工作模式决定的。数据库通常有两种工作模式:专用服务器模式共享服务器模式 3后台进程

16、(background process) Oracle实例启动时,为了保证该实例的正常使用,系统将为该实例启动一些后台进程。这些后台进程是操作数据库的基础,不管有没有用户连接数据库,这些进程都会被启动。 常见的后台进程包括(8种):数据写进程:DBWn ,将数据缓冲区内修改过的数据(脏数据)写入数据文件。 日志写进程 :LGWR,将重做日志缓冲区内的日志信息写入磁盘上的日志文件。 检查点进程 :CKPT,负责更新所有控制文件和数据文件的文件头来记录检查点事件的详细信息。 系统监控进程 :SMON,负责在数据库实例启动时进行数据库的恢复操作。 常见的后台进程包括(续) :进程监控进程: PMON

17、,负责监视用户进程,当发现某个用户进程失败后,负责释放该用户进程占用的资源。 归档进程 :ARCn,在发生日志切换时将重做日志文件中的日志条目复制到指定的归档日志设备中。 恢复进程 :RECO,是在分布式数据库系统中自动解决分布式事务错误的后台进程。只有数据库实例允许分布式事务时才会启动该进程。 调度进程 :Dnnn,是当数据库运行在共享服务器模式下需要的一个后台进程 。DatabaseInstanceSGARedo logbufferData buffercacheShared poolData dict.cacheLibrarycache PMON DBW0SMON LGWRCKPTOth

18、ersUserprocessServerprocessPGAControl filesData files Redo logfilesArchived log filesParameterfilePasswordfileOracle构架2.3.2 内存结构 数据库实例被启动后,系统将分配若干个内存区域来存储运行时需要的各种信息:如程序代码、连接的会话信息、进程间共享的通信信息、常用数据和日志的缓存等。Oracle 中的基本内存结构包括:系统全局区(System Global Area,SGA)程序全局区(Program Global Areas,PGA)1系统全局区SGA数据缓存区(datab

19、ase buffer cache) :最近使用过的数据 。待写列表、最近最少使用列表LRU重做日志缓冲区(redo log buffer) :记录了用户对数据库执行的操作,被循环使用 。共享池(shared pool) :包含了库缓存区(library cache)、数据字典缓存区(dictionary cache)、并行执行消息缓冲区(buffers for parallel execution messages),以及用于系统控制的各种内存结构。 Java 池(Java pool) :用来存储会话中执行的Java代码和JVM内的数据 。大型池(large pool) :供一次性分配大量内存

20、空间时使用。 Oracle实例Background process structuresMemory structuresInstanceSGARedo LogBufferShared PoolData DictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersDatabaseBuffer CacheJava PoolLarge Pool2程序全局区PGA 每个服务进程存储自己的数据,包括:私有 SQL 区 :包含了SQL语句的绑定信息及运行时的内存结构等数据。 游标及 SQL 区 会话内存 :存储连接数据库用户的当前会话信息 Oracle实例结

21、构图 2.4 Oracle网络配置 Oracle客户端对远程数据库服务器进行网络连接时:在客户端需要指定验证方式、连接字符串的解析方式、连接字符串的定义等;在服务器端需要配置监听程序,确保能够接收客户端的连接请求 。完成以上网络连接主要使用三个文件:服务器端:listener.ora文件客户端:tnsnames.ora文件和sqlnet.ora 位于%ORACLE_HOME%networkadmin目录%ORACLE_HOME% = D:oracleproduct10.2.0db_12.4.1 客户端配置 1sqlnet.ora文件 用于指定数据库连接账号的验证方式以及连接字符串的解析方式 。该文件中的主要内容包括以下两个语句: SQLNET.AUTHENTICATION_SERVICES = (NONE , NTS) 该语句表示用户连接服务器时使用哪种验证方式:NONE表示Or

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论