zoukankan      html  css  js  c++  java
  • Oracle 11g 体系结构概述

    3个重要概念:

    实例(Instance):指一组Oracle后台进程以及在服务器中分配的共同内存区域

    数据库(Database):基于磁盘的数据文件、控制文件、日志文件、参数文件和归档日志文件等组成的物理文件集合

    数据库服务器(DatabaseServer):管理数据库的各种软件工具(sqlplus),实例以及数据库3个部门

    数据库存储数据的方式称为存储结构

    逻辑存储结构

      面向用户的

    不同粒度级别(由小到大):

    数据块(Data Block):Oracle逻辑存储结构中最小的逻辑单位,也是执行数据库输入输出操作的最小存储单位。

       数据块的大小写入到初始化参数--DB_BLOCK_SIZE(8192,默认)。可以存放表数据,索引数据和簇数据

    数据块的组成部分:

      块头:存放数据块的基本信息,如块的物理地址,块所属的段的类型

      表目录:存放表的相关信息。

      行目录:如果块中有行数据存在,则这些行的信息将被记录在行目录中。

      空余空间:是一个块中未使用的区域,这片区域用于新行的插入和已经存在行的更新

      行数据:用于存放表数据和索引数据的地方,这部分空间已经被数据行所占用

    通常把块头、表目录、行目录合称为头部信息区,该区不存放数据,它存放整个块的引导信息,起到引导系统读取数据的作用。所以,头部信息区若遭到破坏,则Oracle系统将无法读取这部分数据。另外,空余空间和行数据共同构成块的存储区,用于存放真正的数据记录。

    数据区(Extent):也称作数据扩展区是由一组连续的Oracle数据块所构成的Oracle存储结构,一个或多个数据块组成一个数据区,一个或多个数据区组成一个段。数据区是Oracle存储分配的最小单位。使用数据区的目的是用来保存特定数据类型的数据

    段(Segment):一个独立的逻辑存储结构用于存储表、索引或簇等占用空间的数据对象。段是为特定的数据对象(表,索引,回滚)分配的一系列数据区。一般有以下四中类型的段:

      数据段:保存的是表中的数据记录。当创建一个表时,系统自动创建一个以该表的名字命名的数据段。

      索引段:索引段包含了用于提高系统性能的索引。一旦建立索引,系统自动创建一个以该索引的名字命名的索引段。

      回滚段:也叫撤销段,保存了回滚条目,也就是保存修改前的值。当一个事务开始处理时,系统为之分配回滚段。Oracle 11g有个默认的回滚段。

      临时段:当执行创建索引、查询等操作时,用于存放临时数据。一般在CREATE INDEX;SELECT ORDER BY;SELECT DISTINCT;SELECT GROUP BY等SQL语句中,Oracle系统就会在临时表空间为这些语句的操作分配一个临时段。在需要经常执行上述语句时,可以调整SORT_AREA_SIZE的大小。

    表空间(TableSpace):数据库中最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象,任何数据对象在创建时必须被指定存储在某个表空间中。表空间(属逻辑存储结构)和数据文件(属物理存储结构)相对应,一个表空间由一个或多个数据文件组成,而一个数据文件只属于一个表空间。在创建数据库时,Oracle系统会自动创建多个默认的表空间,以下是几个常见的:

      SYSTEM表空间:用于存放Oracle系统内部表和数据字典的数据。比如,表名、列名、用户名等。

        可以通过v$fixed_view_definition查看数据库中内部系统表的信息

      SYSAUX表空间: 11g新增加的表空间。主要存储除数据字典以外的其他数据对象。由系统内部自动维护。

      UNDO表空间:撤销表空间。一般在创建Oracle实例后,Oracle系统自动创建一个名字为“UNDOTBS1”的撤销表空间,该表空间对应的数据文件是“UNDOTBS01.DBF”

      USER表空间:用户表空间。用户可以自己创建表空间,此外不同应用系统的数据应存放在不同的表空间,而不同的表空间的数据文件应该存放在不同的磁盘上,从而减少I/O冲突,提高应用系统的操作性能。

    物理存储结构

      由多种物理文件组成。

      数据文件:保存用户应用程序数据和Oracle系统内部数据的文件。在表空间中创建数据对象时,用户是无法指定使用哪一个数据文件来进行存储的,只能由Oracle系统负责为数据对象选择具体的数据文件,并在其中分配物理存储空间。 可以通过查询dba_data_files(file_name,tablespace_name)或v$datafile(name)来了解Oracle系统的数据文件信息。主要有以下几种:

        系统数据文件:用于存放“特殊”的用户数据和Oracle系统本身的数据。

        撤销数据文件:修改数据时,撤销段会临时保存修改前的数据。

        用户数据文件:用于存放用户应用系统的数据。

    注意:临时表空间所包括的数据文件在9i以后,就与一般数据文件分开,可以使用dba_temp_files或者v$tempfile

      控制文件:是一个二进制文件,记录了数据库的物理结构,包括数据库名、数据文件与日志文件的名字和位置、数据库建立日期等信息。控制文件所存放的路径由服务器参数文件spfileorcl.ora的control_files参数值指定。 若控制文件不正常,实例是无法正常加载的。 Oracle正常启动时,系统首先访问的是初始化参数文件spfile,然后Oracle为系统全局区(SGA)分配内存。这时,Oracle实例处于安装状态,并且控制文件处于打开状态;接下来Oracle会自动读出“控制文件"的所有数据文件和日志文件的信息,并打开当前数据库中所有的数据文件和所有的日志文件以供用户访问。

      注意:出于安全考虑,在安装Oracle数据库或创建数据库时,Oracle系统会自动创建两个或三个控制文件,每个控制文件记录相同的信息。以备后患。可以通过v$contorlfile(name)来查询控制文件的信息。当数据库的物理组成更改时,Oracle自动更改该数据库的控制文件。数据恢复时,也要使用控制文件。

      日志文件:记录对数据所作的修改,对数据库所做的修改几乎都记录在日志文件中。包括以下两种:

        重做日志文件(Redo Log File):用来记录数据库所有发生过的更改信息以及Oracle内部行为而引起的数据库变化信息。

              在数据库恢复时,可以从该日志文件中读取原始记录。在数据库运行期间,当用户执行COMMIT命令时,数据库首先将每笔操作的原始记录写入到日志文件中,写入日志文件成功后,才把新的记录传递给应用程序。所以,在日志文件上可以随时读取原始记录以恢复某些数据。可以使用v$logfile(member)来查询日志文件信息。

          归档日志文件(Archive Log File): 两种模式:归档模式;非归档模式。 在日志已经写满时,会出现重新覆写,这样就会导致一部分较早的日志信息被覆盖掉,但Oracle通过归档日志文件解决这个问题。新的日志(LGWR),要在ARCH(归档)进程完成后,才能开始覆写日志文件,这样会延迟系统的响应时间,同时会占用大量的磁盘空间,所以默认情况下,系统不采用归档模式。可以通过v$database(name,log_mode)查看数据库系统是否采用归档模式。 若在归档模式下,则可通过服务器参数文件spfile的log_archive_dest(show parameter log_archivie_dest)参数来确定归档日志文件的所在路径。

      服务器参数文件:(Server Parameter File SPFile)是二进制文件,用来记录Oracle数据库的基本参数信息。尽量避免直接修改SPFilesid.ora文件,而是通过OEM或ALTER SYSTEM来修改,这样修改过的参数会自动写到SPFile文件中

      1.查看服务器参数

    v$parameter(name,value,ismodified)动态性能视图来确定是否被修改过

    show parameter +服务器参数名(可缺省)

      2.修改服务器参数

    OEM图形化修改(system登陆)

    alter system set db_block_size=4096

        

      密码文件、警告文件和跟踪文件

      密码文件:用于验证sysdba权限的二进制文件,当远程用户以sysdba或sysoper连接到数据库时,一般用密码文件验证。

    创建密码文件:ORAPWD file=<filename> password=<password> entries=<max_user>

    max_user:表示密码文件可以存放的最大用户数,也就是说,可以以sysdba/sysoper权限登陆数据库的最大用户数。

    创建了密码文件后,需要设置初始化参数remote_login_passwordfile来控制密码文件的使用状态

    值为:none--表示只要通过操作系统验证,就不用通过Oracle密码文件验证;

      shared:表示多个数据库实例都可以使用此密码文件验证;

      exclusive:表示只有一个数据库实例可以使用此密码文件验证

    例如:ORAPWD FILE ="E:appAdminproduct11.2.0dbhome_1databasePWDorcl.ora password=012345 entries=40

      警告文件:存储在Oracle系统下的文本文件(alert_orcl.log),记录运行信息和错误信息。通过background_dump_dest(v$parameter)参数查看警告文件路径

      跟踪文件:包括后台进程跟踪文件(就是警告文件)和用户进程跟踪文件(user_dump_dest)。每个后台进程都有对应的后台进程跟踪文件

      

      

  • 相关阅读:
    HDU-6534-Chika and Friendly Pairs (莫队算法,树状数组,离散化)
    SPOJ-DQUERY-D-query
    视频上云/网络穿透/拉转推工具EasyNTS设备IP地址返回数据与实际IP匹配的筛选机制优化
    视频上云/网络穿透/拉转推工具EasyNTS新增获取windows所有盘符信息功能的实现
    【解决方案】热门景区实现智慧旅游,城市道路/风景区视频公众号分享该如何实现?
    TSINGSEE青犀视频开发webrtc使用ffmpeg编译报ffmpeg version: N-94448-G3CEA9CD219提示是什么原因
    TSINGSEE青犀视频开发webrtc浏览器使用video标签播放webrtc本地录音音频实现过程
    【解决方案】智慧农业自动化的浪潮下,大棚实时视频监控系统应该如何搭建?
    【解决方案】房地产行业施工现场搭建视频4G无线远程视频监管信息化行业应用方案建议书
    【解决方案】国标GB28181协议视频智能分析平台EasyCVR搭建智慧养殖平台,让畜牧业实现“万物互联”
  • 原文地址:https://www.cnblogs.com/xcnblog3035/p/5217504.html
Copyright © 2011-2022 走看看