Oracle组成介绍

Oracle Database 11g是一些特殊文件的集合,这些文件是用数据库配置助手创建的,然后用OEM Grid Control完成相关工作。这些数据库文件是通过一组共享内存进程来进行访问的,这组进程称为“实例”。
Oracle数据库组成
Oracle的控制文件是二进制文件,包含有关支持Oracle Database 11g的各种文件的信息。包含的信息描述了数据库文件的名称、位置和大小。
(1)物理组成
Oracle可以采用如下4种文件系统机制机制存储数据:
操作系统文件系统:宿主操作系统的文件系统。Oracle读写磁盘时,OS会缓存信息。
裸设备:原始磁盘,对数据没有任何缓冲,都是直接I/O。
自动存储管理(Automatic Storage Management, ASM):Oracle专门设计的一个数据库的文件系统,可用于单机和集群环境。
集群文件系统(Oracle Cluster File System,OCFS):专用于RAC(Real Application Cluster)环境。

以下的介绍均基于存储机制是宿主操作系统的文件系统的层面来介绍。
Oracle数据库涉及了如下几类文件:

参数文件
主要设置数据库的初始化参数,如控制文件的路径,内存结构的大小等。参数文件分遗留参数文件和服务器参数文件,我们比较关注的参数文件是spfile(server parameter file),它的命名方法为:spfile$ORACLE_SID.ora
跟踪文件
提供Oracle运行的调试信息。需要将参数文件里面的SQL_TRACE设置为TRUE。如果采用的是专用服务器,输出信息保存在user_dump_dest参数指定的路径。否则就是共享服务器模式,输出信息保存在background_dump_dest参数指定的路径。
警告文件
又称警告日志,就是数据库的日记。
数据文件
这个应该是数据库最重要的文件之一。保存八戒的个人数据。只从人间发生了陈冠希事件后,八戒将个人隐私数据都保存在数据中,需要密码才能访问。每个数据库的数据文件默认保存在$ORACLE_BASE/oradata/$ORACLE_SID目录下。
临时文件
临时文件是Oracle中一类特殊的数据文件。它被使用来存储大规模排序操作和散列操作的中间结果,如果RAM中没有足够的空间,它还会被用来存储全局临时表数据或结果集数据。永久数据(如表或索引)不会存储在临时文件中。
控制文件
参数文件文件告知控制文件的位置,控制文件则告知实例数据库和在线重做日志文件的位置等信息。里面涉及的两个文件就是数据库中最重要的两个东东了。
八戒又意外的发现它也是二进制文件。
重做日志文件
对于Oracle数据库至关重要。它们是数据库的事务日志。通常用于数据库恢复。它又分在线重做日志文件和归档重做日志文件。两者的关系后面的进程一节会有所涉及。
密码文件
它是一个可选的文件,允许远程sysdba或管理员访问数据库。
修改跟踪文件
跟踪自上一个增量备份以来哪些block已经修改。采用这样的方式,恢复管理工具(Recovery Manager, RMAN)就可以只备份确实有变化的数据库块,而不必读取整个数据库。
闪回日志文件
闪回日志文件(Flashback Log File)简称闪回日志。它包含已修改数据库的“前映像”,可用于将数据库返回到该时间点之前的状态。这有点类似于Windows的系统还原,Mac的Timer。
(2) 逻辑组成

Oracle数据库在逻辑上由表空间(tablespace),段(segment),区段(extent),块(block)分层组成。
Database
数据库由一个或多个表空间组成。
Tablesapce
表空间物理上由一个或多个数据文件组成。这些文件可以是文件系统中的文件、原始分区、ASM管理的数据库文件或集群文件系统上的文件。表空间逻辑上由至少一个段组成。
Segment
段就是占用存储空间的数据库对象,如表、索引、回滚段。创建表时,会创建一个表段。创建索引时,就会创建一个索引段。
段本身又由一个或多个区段组成,这些区段可以来自多个数据文件。段在表空间中,但是可以包含在这个表空间中的多个数据文件中的数据。
Extent
区段是数据文件中一个逻辑连续的块。一般来说,数据文件本身在磁盘上并不是连续的,甚至可能跨多个物理磁盘,如RAID。区段在一个表空间中,而且总是属于该表空间的一个数据文件中,不能跨多个数据文件。区段进一步被划分为块,其大小最小为一个Oracle块,最大为2GB。
Block
块是数据库中最小的分配单位,也是数据库使用的最小I/O单位。它由一个或多个操作系统块组成。大小一般是2KB、4KB、8KB、16KB、32KB,其实也可以不是2的幂次大小,不过在计算机世界里面2的幂次数字似乎是一个优等数字
----
Schema
Database从另外一个角度来看,它是由一个或多个schema组成。
schema的官方定义如下:
schema 为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的 schema 下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema 里面包含了各种对象如:tables,views,sequences,stored procedures,synonyms,indexes,clusters,and database links。
如果我们访问一个表时,没有指明该表属于哪一个 schema 中的,系统就会自动给我们在表上加上缺省的 shema 名。比如我们在访问数据库时,访问 scott 用户下的 emp 表,通过select * from emp; 其实,这 sql 语句的完整写法为 select * from scott.emp。在数据库中一个对象的完整名称为 schema.object,而不属 user.object。
schema只是将数据库中的对象以某种方式集合起来,再贴上一个标签(user),这个集合里面的对象,也就只有手持这个标签的用户才可见。schema与user的关系,就好象身体与姓名的关系。
说穿了其实user是控制权限的,而schema是个容器,非所有者要访问这个容器下的对象就需要在对象前面写上schema的名字,如果不想写而又没有创建synonym,此时可以通过alter session set current_schema=schema_name来改变当前session的schema,从而在访问对象时省去schema。最终能否访问对象还是要看是否有访问这个对象的权限而和schema无关。
user即oracle中的用户,和所有系统的中用户概念类似,用户所持有的是系统的权限及资源;而schema所涵盖的是各种对象,它包含了表、函数、包等等对象的“所在地”,并不包括对他们的权限控制。好比一个房子,里面放满了家具,对这些家具有支配权的是房子的主人(user),而不是房子(schema)。

图 1 segment、extent、block之间的联系

首先要明确数据库与实例的关系
数据库:磁盘上存储的数据集合,也就是上一节中所说的各种文件组成。
实例:一组后台进程和共享内存。实例“一生”只能装载并打开一个数据库。一个数据库可以由一个或多个实例(使用RAC)装载和打开。Oracle系统中每一个实例都由一个SID(site identity descriptor)值唯一标识。两者的关系有点类似程序与进程之间的关系。下图描述了两者的关系。

原文地址:https://www.cnblogs.com/mecell224/p/10469910.html

时间: 2024-08-12 14:06:58

Oracle组成介绍的相关文章

【体系结构】Oracle参数介绍

[体系结构]Oracle参数介绍 1  BLOG文档结构图     2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Oracle中的各种参数介绍及其查询方法 ② Oracle中V$PARAMETER及V$PARAMETER2的区别 ③ 隐含参数的查询.重置.清除 ④ 会话参数和实例参数的查询 ⑤ 静态参数和动态参数.延迟参数 ⑥ V$PARAMETER视图的每列含义(重点) Tips: ①

Oracle 后台进程介绍

一 进程分类: 1.服务器进程(server process): 根据客户请求完成工作.如接收和处理应用发送的SQL语句 2.后台进程(background process): 随数据库而启动,用于完成各种维护任务.如将块写到磁盘(DBWn). 维护在线重做日志(LGWR).清理异常终止的进程等. 3.从属进程(slave process):类似于后台进程,不过它们要代表后台进程或服务器进程完成一些额外工作. 二 主要讲一下后台进程: 来浏览一下主要进程: SQL> select paddr,

Oracle Dataguard 介绍

Oracle Dataguard 介绍 一.  DataGuard的基本原理 当某次事务处理对生产数据库中的数据作出更改时,Oracle数据库将在一个联机重做日志文件中记录此次更改.在DataGuard中可以配置写日志的这个过程,除了把日志记录到本地的联机日志文件和归档日志文件中,还可以通过网络,把日志信息发送到远程的从(standby)数据库服务器上.这个备用日志文件写入过程可以是实时.同步的,以实现零数据丢失(最大保护模式maximum protection):也可以是异步的,以减少对网络带

oracle regexp_like介绍和例子

oracle regexp_like介绍和例子 学习了:http://www.cnblogs.com/einyboy/archive/2012/08/01/2617606.html ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2,REGEXP_INSTR :与INSTR的功能相似 3,REGEXP_SUBSTR :与SUBSTR的功能相似 4,REGEXP_REPLACE :与REPLACE的功能相似 它们在用法上与Oracle SQ

Oracle 存储过程介绍

存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需

Oracle AWR 介绍(AWR -- Automatic Workload Repository)

摘要:Oracle AWR 介绍(AWR -- Automatic Workload Repository) Oracle?AWR?介绍(AWR?--?Automatic?Workload?Repository) 数据库自动诊断监视工具(Automatic?Database?Diagnostic?Monitor?:ADDM)和SQL优化建议工具(SQL?Tuning?Advisor:?STA).这两个工具的结合使用,能使DBA节省大量优化时间,也大大减少了系统宕机的危险.简单点说,ADDM就是收

Oracle JET简单入门(一)Oracle JET介绍

Oracle JET (Oracle Javascript Extension Toolkit)是一款 Oracle 的 JavaScript 拓展工具包.简单来说 Oracle JET 是一个一堆好用的前端工具结合体. Oracle JET 文档链接  http://docs.oracle.com/middleware/jet310/jet/developer/toc.htm Oracle JET支持 Model-View-ViewModel(MVVM)架构设计模式. 在 MVVM 中,Mod

Oracle的介绍和oracle的安装

数据库 数据库是数据存储的仓库(database),通过表结构来存储数据. 关系型数据库 非关系型数据库(C) 非关系型数据库中以文档(document)来存储数据,没有明显的表结构. 就商品而言 {“iphone”, 5899.00,0.65kg,{红色,黑色,蓝色,白色},{32G,64G,128G},{公开版.保修版,联通版}} {“iphone”, 5899.00,0.65kg,{23.8寸,,27寸,28寸} }  数据库在开发过程中的位置 Oracle 介绍 oracle 目前版本1

oracle数据库服务介绍

共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy).它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能.(非必须启动) 2. OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的