Oracle数据库概述


  • Oracle数据库简介

       Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

 

  • Oracle数据库11g简介

       Oracle数据库llg具有良好的体系结构、 投大的数据处理能力、丰富实用的功能和许多创新的特性, 并根据用户对象需求的不问,设置了不同的版本。

 

  • Oracle数据库产品结构及组成

  Oracle数据库库11g并拥有4个版本,分别是企业版、标准版、标准版1和个人版

1.企业版

  Oracle数据库11g企业版可以运行在Windows. Linuz和UNIX的集群服务器或单一服务器上,它提供了全面的功能来进行相关的事务处理、商务智能和内容管理,具有业界领先的性能、可伸缩性、安全性和可靠性。

Oracle数据库1lg企业版的主要优点如下:

(1)高可靠性:能够尽可能地防止服务器故障、站点故障和人为错误的发生,并减少计划内的宕机时间;

(2)高安全性:可以利用行级安全性、细粒度审计、透明的数据加密和数据的全面回忆确保数据安全和遵守法规;

(3)更好的数据管理:轻松管理最大型数据库信息的整个生命周期;

(4)领先一步的商务智能:高性能数据仓库、在线分析处理和数据挖掘。

  Oracle数据库11g企业版提供了许多选件以帮助企业发展业务,并达到用户期望的性能。其中,选件包括真正应用集群、活动数据卫士、OLAP、内存数据库缓存、数据挖掘、可管理性、分区、空间管理、Database Vault、高级压缩、内容数据库、真正应用测试、全面恢复、高级安全性和标签安全性。

 

2.标准版

  Oracle数据库11g标准版功能全面。可适用于多达四个插糟的服务器。它通过应用集群服务实现了高可用性,提供了企业级性能和安全性,易于管理并可随需求的增长轻松扩展.标准版可向上兼容企业版,并随企业的发展而扩展,从而保护企业的初期投资。

标准版的主要优点如下:

(1)多平台自动管理:可基于Windows, Linux和UNIX操作系统运行,自动化的自管理功能使其易于管理;

(2)丰富的开发功能:借助Oracle Application Express, Oracle SQL开发工具和Oracle面向Windows的数据访问组件简化应用开发;

(3)灵活的订制服务:用户可以仅购买现在所需要的功能,并在以后通过真正应用集群轻松进行扩展。

 

3.标准版1

  Oracle数据库11g标准版功能全面,可适用于两个插槽的服务器。它提供了企业级性能和安全性,易于管理,并可随需求的增长轻松进行扩展。与标准版一样,标准版1可向上兼容其他数据库版本,并随企业的发展而扩展.从而使得企业能够以最低的成本获得最高的性能,保护企业的初期投资。

标准版1的主要优点如下:

(1)应用服务支持:以企业级性能、安全性、可用性和可伸缩性支持所有业务管理软件;

(2)多平台自动管理:可基于Windows, Mnux和UNIX操作系统运行,自动化的自管理功能使其易于管理;

(3)全面的开发功能:借助Oracle Application Express, Oracle SQL开发工具和Oracle面向Windows的数据访问组件简化应用开发;

(4)灵活的订制服务:用户可以仅购买所需功能,并在需求增长时轻松添加更多功能。

 

4.个人版

  个人版数据库只提供Oracle作为DBMS的基本数据库管理服务,它适用于单用户开发环境,其对系统配置的要求也比较低,主要面向开发技术人员使用。


 

  • Oracle基本术语

1.数据字典

       数据字典是Oracle数据库的重要组成部分。它由一系列拥有数据库元数据(metadata)信息的数据字典表和用户可以读取的数据字典视图组成。存放有Oracle数据库所用的有关信息。

数据字典的主要内容:

(1)系统的空间信息。即分配了多少空间。当前使用了多少空间等;

(2)数据库中所有模式对象的信息。如表、视图、簇、同义词及索引等;

(3)例程运行的性能和统计信息(例程是用户和数据库的中间人,相当于数据库的前台);

(4)Oracle数据库的名字;

(5)用户访问或使用的审计信息;

(6)用户及角色被授予的权限信息;

(7)列的约束信息的完整性;

(8)列的缺省值。

       在Oracle数据库中,数据字典可以看作是一组表和视图结构。它们存放在system表空间中,在数据库系统中,数据字典不仅是每个数据库的核心,而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。

 

2.数据文件

       一个Oracle数据库可以拥有一个或多个物理的数据文件。数据文件包含了全部数据库数据。逻辑数据库结构的数据也物理地存储在数据库的数据文件中。

数据文件的主要特征:

(1)一个数据库可拥有多个数据文件,但一个数据文件只对应一个数据库;

(2)可以对数据文件进行设置。使其在数据库空间用完的情况下进行自动扩展;

(3)一个表空间(数据库存储的逻辑单位)可以由一个或多个数据文件组成。

       数据文件中的数据在需要时可以读取并存储在Oracle的内存存储区中。当数据被修改或是插入新数据时,不必立刻写入数据文件,而是把数据暂时存储在内存,由Oracle的后台进程DBWR来决定何时将具写入数据文件中,这是为了减少磁盘1/0的次数,提高系统的效率。

       数据文件是用于存储数据库数据的文件,如表、索引数据等都物理地存储在数据文件中。这就把数据文件和表空间联系在一起。表空间是一个或多个数据文件在逻辑上的统一组织,而数据文件是表空间在物理上的存在形式。没有数据文件的存在,表空间就失去了存在的物理基础;而离开了表空间,Oracle就无法获得数据文件的信息,无法访问到对应的数据文件。这样的数据文件就成了垃圾文件。

       数据文件的大小可以用两种方式表示,即字节和数据块。数据块是Oracle数据库中最小的数据组织单位 ,它的大小由参数"DB_BLOCK_SIZE"来确定

 

3.控制文件

       数据库控制文件是一个很小的二进制文件。它维护着数据库的全局物理结构,用以支待数据库成功地启动和运行。创建数据库时,同时就提供了与之对应的控制文件。在数据库使用过程中,Oracle不断地更新控制文件,所以只要数据库是打开的,控制文件就必须处于可写状态。若由于某些原因控制文件不能被访问,则数据库也就不能正常工作。每一个Oracle数据库有一个控制文件,它记录着数据库的物理结构。

控制文件主要包含的信息:

(1)数据库名称;

(2)数据库数据文件和日志文件的名称和位置;

(3)数据库建立日期;

(4)日志历史;

(5)归档日志信息;

(6)表空间信息;

(7)数据文件脱机范围;

(8)数据文件拷贝信息;

(9)备份组和备份块信息;

(10)备份数据文件和重做日志信息;

(11)当前日志序列数;

(12)检查点信息(CheckPoint)。

       Oracle数据库的控制文件是在数据库创建的同时创建的。默认情况下,在数据库创建期间至少有一个控制文件副本,如在Windows平台下,将创建3个控制文件的副本。

       每一次Oracle数据库的实例启动时,它的控制文件用于标识数据库和日志文件。当着手数据库操作时它们必须被打开。当数据库的物理组成更改时, Oracle自动更改该数据库的控制文件。数据恢复时,也要使用控制文件。如果数据库的物理结构发生了变化,用户应该立即备份控制文件。一且控制文件不幸被毁损,数据库便无法顺利启动。也因为如此比控制文件的管理与维护工作显钳格外重要。

 

4.日志文件

       日志文件也称为重做日志文件(RedoLog File)。重做日志文件用于记录对数据库的所有修改信息,修改信息包括用户对数据的修改,以及管理员对数据库结构的修改。重做日志文件是保证数据库安全和数据库备份与恢复的文件。

       重做日志文件主要在数据库出现故障时使用。在每一个Oracle数据库中, 至少有两个重做日志文件组,每组有一个或多个重做日志成员,一个重做日志成员物理地对应一个重做日志文件。在现实作业系统中为确保日志的安全,基本上对日志文件采用镜像的方法。在同一个日志文件组中,其日志成员的镜像个数最多可以达到5个。有关日志的模式包括归档模式(Archivelog)和非归档模式(Noarchivelog)两种。

       日志成员镜像个数受参数MaxLogNumbers的限制,若常要确定系统正在使用哪一个日志文件组,则可以查向数据字典 "V$LOG", 还可以查由数据字典"V$LOGFILE", 进一步找到正在使用日志组中的哪个日志文件,管理员可以通过语句“Alter system seitch LOGFILE”来强行地进行日志切换;若要查询数据库运行在何种模式下,则可以查询数据字典“V$DATABASE”,在数据字典“V$LOG_HISTORY”中记录着历史日志的信息

 

5.表空间

       表空间是Oracle数据库中最大的逻辑结构,它提供了一套有效组织数据的方法,是组织数据和进行空间分配的逻辑结构,可以将表空间看作是数据库对象的容器,简单地说,表空间就是一个或多个数据文件(物理文件)的集合(逻辑文件),所有的数据对象都被逻辑地存放在指定的表空间中。

       一个数据库通常包括SYSTEM、SYSAUX和TEMP三个默认农空间,一个或多个 临时表空间,还有一个撤销表空间和几个应用程序专用的表空间,可以通过创建新的表空间来满足需求,创建时需要决定表空间的类型。

表空间的类型:

(1)系统表空间(System table space):系统表空间包括SYSTEM和SYSAUX表空间,系统表空间是所有数据库必需且自动创建的,一般存放Oracle的数据字典及相应的数据。

 

(2)永久表空间(Permanent table space):永久表空间用于保存永久性数据,如系统数据、应用系统数据。每个用户都会被分配一个永久表空间,以便保存其相关数据,除了撤销表(Undo)空间以外,相对于临时表空间而言,其它表空间就是永久表空间,如系统表空间。

 

(3)临时表空间(Temporary table space):由于Oracle工作时经常需要一些临时的磁盘空间,这些空间主要在查询带有排序(如Group by、Order by等)算法时使用,当用完后就立即释放,对记录在磁盘区的信 息不再使用,因此称为临时表空间。一般安装之后只有一个TEMP临时表空间。

 

(4)撤销表空间(Undo table space):从Oracle 9i后,提供了一种全新的撤销空间管理方式,从而使得DBA能够很容易地管理撤销空间,即“ 自动撤销管理”,而与此相对应,通过回滚段进行撤销空间管理的方式被称为“手工撤销管理”,自动撤销管理方式也称为SMU(System Managed Undo)方式,而回滚段管理方式称为RBU(Rollback Segments Undo)方式,在Oracle 11g数据库中,系统默认为启用自动撤销表空间管理方式,同时也支持传统的回滚段管理方式。

在一个数据库中,只能采用一种撤销空间管理方式,而不能同时存在两种撤销空间管理方式。数据库采用哪一种撤销空间管理方式,是由参数UNDO_MANAGEMENT来确定的。如果设置该参数为"AUTO", 在启动数据库时使用SMU方式;如果设置该参数为"MANUAL", 则在启动数据库时使用RBU方式。运行在自动撤销管理方式下的数据库,用撤销表空间来存储、管理撤销数据。Oracle使用撤销数据来隐式或显式的回退事务、提供数据的读一致性、帮助数据库从逻辑错误中恢复、实现闪回查询(Flashback Query)。

注意:在SMU方式下,必须在数据库中创建一个撤销表空间,Oracle将利用撤销表空间来保存撤销记录。可以在创建数据库的同时建立一个默认的撤销表空间,也可以在数据库创建后再创建新的撤销表空间。

 

(5)大文件表空间和小文件表空间:从Oracle 10g开始,Oracle引入了大文件表空间,这是一个新增的表空间类型。该类型的出现使存储能力有了显著的增强。大文件表空间不像传统的表空间那样由多个数据文件组成。

        大文件表空间(bigfile tablespace)是为了超大型数据库而设计的,如果一个超大型数据库具有上千个数据文件,则更新数据文件头部信息(如check-point)的操作可能会花费很长时间,如果使用大文件表空间,可以使用大数据文件来减少文件的数量.从而减少更新的时间。

       一个大文件表空间对应一个单一的数据文件或临时文件,但是文件可以达到4G数据块大小。理论上当数据块大小为2KB时,大文件表空间可以达到8TB;当数据块大小为4KB时,大文件表空间可以达到32TB。在实际环境中,这还会受到操作系统的文件系统的限制。

       小文件表空间(smallfile tablespace)是之前Oracle表空间在Oracle llg中的新名称,是默认创建的表空间的类型。在小文件表空间中可以放置多达1022个数据文件,一个数据库最多可以放置64K个数据文件。SYSTEM和SYSAUX表空间总是被创建为小文件表空间

 

表空间的状态:

(1)读写(Read-Write)状态:空间的默认状态。任何具有表空间配额并拥有相关权限的用户均可读写表空间的数据;

(2)只读 (Read-Only)状态:任何用户(包括OBA)均无法向农空间写入数据,也无法修改表空间中的现有数据,这种限制和权限无关。只读状态可以使表空间的数据不被修改,即:仅能SELECT,而无法进行INSERT、UPDATE或是DELETE操作。只读状态一方面对数据提供了保护,另一方面对数据库中设置静态数据非常有好处。

       可以将不能被修改的静态数据保存在一个单独的表空间中,并将这个表空间设置为只读状态,这样既能够提高数据的安全性,又能够减轻DBA的管理和维护的负担。

(3)脱机(Offline)状态:在有多个应用表空间的数据库中,DBA可以通过将某个应用表空间设置为脱机状态。使表空间暂时不被用户访问,如果需要访问该表空间时,必须将脱机状态设置为联机状态。这样的设置增强了表空间的可用性,并提高了数据库管理的灵活性。

注意:SYSTEM表空间不能被设置为只读状态和脱机状态,因为在数据库运行过权中始终需要SYSTEM表空间数据的支持,另外,临时表空间也不能设置为只读状态。

 

表空间的作用:

(1)控制用户所占用的空间配额;

(2)控制数据库所占用的磁盘空间;

(3)可以将表空间设置成只读状态而保证大量的静态数据不被修改;

(4)能够将一个表的数据和这个表的索引数据分别存储在不同的表空间 中,也可以提高数据库的I/O性能;

(5)可通过其将不同表的数据、分区表的不同分区的数据存储在不同的表空间,中可以提高数据库的I/0性能,并有利于进行数据库的部分备份和恢复等管理工作;

(6)表空间提供了一个备份和恢复的单位,Oracle提供了按表空间备份和恢复的功能。

 

6.段

       段(segment)用于存储表空间中某一种特定的具有独立存储结构的对象的所有数据,它由一个或多个区组成。段包含表空间中一种指定类型的逻辑存储结构,段是数据区的集合,每个段都分配给特定的数据结构,存储在相同的表空间中。

       Orale以数据区为单位为段分配空间,当段的数据区已满的时候,Oracle为段分配另一个数据区,段的数据区在磁盘上可能是不连续的。段和它所有的数据区都存储在一个表空间中,在表空间中,一个段包含来自多个文件的数据区,段可以跨越数据文件。按照段中所存储数据的特征和用途的不同,可以将段分成数据段、索引段、临时段和回滚段几种类型。

(1)数据段:数据段(data segment)用于存储表中的所有数据。当某个用户创建表时,就会在该用户的默认表空间中为该表分配一个与表名相同的数据段,以便将来存储该表的所有数据。若创建的是分区表,则为每个分区分配一个数据段。所以,在一个表空间中创建了几个表,该表空间中就有几个数据段。数据段随着数据的增加而逐渐地变大。段的增大过程是通过增加区的个数而实现的。每次增加一个区,每个区的大小是块的整数倍。

 

(2)索引段:索引段(index segment)用于存储索引的所有数据。当用户用create index语句创建索引,或在定义约束(如主键)自动创建索引时,就会在该用户的默认表空间中为该索引分配一个与索引名相同的索引段,以便将来存储该索引的所有数据。如果创建的是分区索引,则为每个分区索引分配一个索引段。

 

(3)临时段:临时段(temporary segment)用于存储排序操作所产生的临时数据。当用户使用Order by语句进行排序或汇总时,在该用户的临时表空间中自动创建一个临时段,排序结束, 临时段自动消除。

在Oracle中,临时表空间一般是通用的,所有用户的默认临时表空间都是TEMP表空间。当然,可以在创建用户之后,定临时表空间。

 

(4)回滚段:回滚段(rollback segment)用于存储用户数据被修改之前的值,以便在特定条件下回滚用户对数据的修改。Oracle利用回滚段来恢复被回滚事务对数据库所做的修改,或者为事务提供读一致性保证。需要注意的是,每个数据库都将至少拥用一个回滚段。

 

7.区

区(Extent)是由物理上连续存放的块构成的。区是Oracle存储分配的最小单位,由一个或多个块组成,一个或多个区将组成段。当在数据库中创建带有实际存储结构的方案对象时,Oracle将为该方案对象分配若干个区,以便组成一个对应的段来为该方案对象提供初始的存储空间。当段中已分配的区都写满后,Orado就为该段分配一个新区,以便容纳更多的数据。

 

8.数据库

       数据块(Block)是最小的数据管理单位,也是执行输入输出操作时的最小单位。相应地,操作系统执行输入输出操作的最小单位是操作系统块。Oracle块的大小是操作系统块大小的整数倍,可以在安装时选择“自定义安装”来指定,也可以在Create database创建数据库实例时指定。其最小为2K, 最大可达为64K

       在数据块中可以存储各种类型的数据,如表数据、索引数据和簇数据等。无论数据块中存放何种类型的数据,每个数据块都具有相同的结构。

Oracle数据块的基本结构组成:

(1)块头部:块头部包含块中一般的属性信息,如块的物理地址、块所属的段的类型等;

(2)表目录:若块中存储的数据是表数据(表中的一行或多行记录),则表目录存储关于该表的信息;

(3)行目录:存储该块中有效的行信息;

(4)空闲空间:数据块中尚未使用的存储空间,当向数据中添加新数据时,将减小空闲空间;

(5)行空间:行空间是块中已经使用的存储空间,在行空间中存储了表或索引的数据。块头部、表目录和行目录共同组成块的头部信息区。块的头部信息区中并不存放实际的数据库数据,它只起到引导系统读取数据的作用。因此,若头部信息区被损坏,则整个数据块将失效,数据块中存储的数据将丢失。而空闲空间和行空间则共同构成块的存储区,空闲空间和行空间的总和就是块的总容量。

 

总结:

       表空间、段、区和数据块构成了Oracle数据库的逻辑存储结构,可通过Oracle数据库的数据字典进行查询。逻辑存储结构从逻辑的角度分析数据库的组成,简单的说,多个数据块组成区、多个区组成段,多个段组成表空间。多个表空间组成表数据。


 

参考:《Oracle 11G从入门到精通》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

afei00123

您的支持是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值