Database storage Structures(数据库存储结构)
RDBMS必须得能够存储数据。这小节简单介绍一下Oracle 数据库的物理结构和逻辑结构
Physical Storage Structures(物理结构)
物理结构是一大堆存着各种数据的文件。当你执行SQL语句CREATEDATABASE,这下面这些文件会创建:
·Data files(数据文件)
每个Oracle数据库都会有一个或多个物理data files,data files包含数据库中的所有数据。数据库逻辑结构中的数据,比如表和索引中的数据,其实就是物理的存储在data file中的。
·Control Files(控制文件)
每个Oracle数据库都有一个控制文件(可以有多个副本),控制文件包含数据库物理结构信息,包括数据库名字,以及数据库文件的名字和位置。
·Online redo log files(redo日志)
每个数据库都拥有两个或者更多的Online redo log files.redo log中含有redo entries(条目)又称之为redo record(记录),这东西记录了数据的任何一次变化
还有很多重要的其他文件,这些文件包括 parameter files(参数文件),diagnostic files(诊断文件,或者叫trace文件,alert文件)。
还有对备份和恢复很重要的离线文件,其中有Backup files(备份文件)以及archived redo log files(归档日志文件,在线日志是循环利用的,在一个在线日志被覆盖以前,可以将其归档起来)
Logical Storage Structures(逻辑结构)
这节讨论逻辑结构,下面这些逻辑结构使得Oracle数据库能更加细致(细粒度)的控制磁盘空间:
·Data blocks(数据块)
这是数据库中最小存储单位,Oracle数据库的数据就是存储在data blocks中的。一个data block对应磁盘上一个指定的大小(2k,4k,8k,16,32k)
·Extents(区)
一个区由一堆连续的块组成,最小的分配单位
·Segments(段)
每个object(例如,表,或索引)就是一个段,由一堆区组成。
·Tablespaces(表空间)
表空间是个容器,里面放着segments,每个表空间最少由一个数据文件构成
表空间其实就是逻辑和物理的交汇处,如果学过Unix的话可以由VG,LV,PV这些理解。一个模式。由数据文件组成表空间,再从表空间上划分段
Database Instance Structures(数据库实例结构)
Oracle database 通过使用内存结构和后台进程来管理和访问database(严格意义上的,一堆文件,还记得吧?)。所有的内存结构都存在主机的内存里。
当应用程序连接Oracle database时,它们连接的其实就的
Instance. 实例 通过与 pga 和server process的交互来服,务于应用程序。
Oracle Database Processes(Oracle数据库进程)
进程(process)是操作系统的一种机制,用来完成一连串的操作。一些操作系统使用的术语是 job,task,或者thread(线程),按照"用来完成一连串的操作"这个目的来讲,thread和process的意思是一样的。
Oracle database instance的进程有以下几种类型:
·Client processes(客户端进程,运行在客户端机器上的)
比如sqlplus
·Background processes(后台进程)
这些进程,每种都有自己固定的功能,Oracle后台进程都是异步I/O的 and 监控别的Oracle 数据库进程,调整其并行度。
·Server processes(服,务进程)
这种进行负责和Client processes通讯,以及交互,满足Client processes的要求。
Oracle processes 包括server process 以及background processes.在大多数环境中,Oracle Processes以及Client processes运行在不同的电脑上。