设为首页 加入收藏

TOP

oracle学习入门系列之五内存结构、数据库结构、进程(一)
2015-07-24 10:57:21 来源: 作者: 【 】 浏览:2
Tags:oracle 学习 入门 系列 内存 结构 数据库 进程

oracle学习入门系列之五

内存结构、数据库结构、进程

1 Oracle数据库结构

关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大师们的讲稿。但是我们不去管那些,按照我们自己节奏记出特性、记出精彩来。

首先插入本系列第一张图片,图一(绝对来自官网),看蛤蟆对于图片使用是多么小心的,如果大伙对这个图已有自己独到的理解,那么可直接跳过本篇笔记吧,当然温故而知新也未尝不可,知耻而后勇….额,而来知耻?

1.1 总体结构

这个图1从总体上描述了Oracle数据库的大概了,包含有内存结构,数据库文件,进程及客户端。虽然不是非常详细但是蛤蟆觉得该图是在是理解ORACLE数据库入门的好图。

\

那么我们一起围观下该图到底说了些什么。

服务进程,这里展开就是服务进程是专用服务进程还是共享,后续会慢慢道来。

内存结构,内存结构中主要包含PGA和SGA,PGA是为客户端接入时候服务,SGA是数据库运行服务的,这些在机器下电后就消失了。

还有主要的6个进程PMON,SMON,DBWR,LGWR,CHPT,Arcn,在启动数据库的时候才会有这些进程。

最下面就是存放在持久化介质上文件了,有归档日志,数据文件,参数文件,密码文件等,不随机器下电而消失的。

途中有2个在Oracle中非常重要的概念,实例和数据库:

1.1.1 实例

实例是oracle 创建的进程和内存结构的组合。

1.1.2 数据库

数据库是由一组文件组成的,对数据库的所有操作都是需要通过实例来完成了。通常数据库和实例是一一对应的。例外就是RAC了,RAC下一个数据库就对应了多个实例。

实例和数据库关系打个比方就是发动机和汽车的关系。汽车就是数据库,就在那里,但是动不了,只有发动机发动了,汽车才能动起来。一般情况下一个汽车一个单缸发动机;但是也可以是多缸的嘛,如6缸发动机什么的。

接下去看逻辑数据库结构。

1.2 逻辑数据库结构

放入第二章图,如下图2,如来自互联网

\

?

这里需要提一些概念了,都是ORACLE数据库中最基本而且需要一直掌握的概念,是一直,死都不能忘了,如果担心自己忘记就记下来把。这里提到的概念是一通百通的,很多可以适用到其他数据库中的,记住后我们后续学习必将事半功倍。

我们从最下面开始介绍吧,枯燥但不乏味的哈~

1.2.1 数据块

数据块,data block,是oracle数据块的存储基础,有若干字节组成。又是若干,到底是多少个字节呢?一般常用的是8KB,4KB的了,在创建数据库的时候可以指定。一旦指定就不能改变了,不过即使在4KB的数据库中,我们也可以指定创建8KB的表空间的,只要我们内存结构中存在8KB的缓存。

数据块类似操作系统中的块大小,通常ORACLE数据库块大小会是操作系统块大小的整数倍,其中好处就无需多说了。

蛤蟆自身工作经验来看,在OLTP模型上,4KB、8KB及16KB下性能相差不是特别明显。

不过原则是块尺寸是处理Oracle的更新、选择或者插入数据事务的最小单位,且访问很随机,则选择块较小的块尺寸;如果行比较小且访问主要是连续,或者如果有较大的行,则用较大的块尺寸。

1.2.2 数据区间

区,extent,是两个或者多个相邻的ORACLE数据块,他是空间分配的单元。概念总是如此的明了,3点关键。

a) 2个或2个以上

b) 相邻的数据块

c) 空间分配单元

数据块是存储单元,区是分配单元。看着概念重不重要的,从概念我们就知道,ORACKE分配空间的时候至少2个数据块起步的。要是申请一个数据块,那么不好意思啦,就是不给。

就像小时候向爸爸妈妈要零花钱,

我们:“妈,给我5分钱,买个萝卜丝吃”

老妈:“!@#¥%……,没有5分”

我们:“一毛也行”

老妈:“好吧,又买两包萝卜丝?,给你1毛”

1.2.3 数据段

段是分配给某个逻辑结构的一组区。

2个关键点

a) 分配给某个逻辑结构

b) 一组区

1.2.4 对象

ORACLE数据库对象,主要就是如下10个了。

1) 表

2) 约束条件:保证数据完整性。

3) 视图:虚表,命名的查询语句。

4) 索引:加速查询(加快查询的速度)。

5) 序列:一串连续递增或递减的数字,步长相同,(代理键) 。

6) 同义词:一个对象的另外一个叫法(对象的别名)。

7) 存储过程:用于操作

8) 函数:用作复杂运算的。用于计算。

9) 触发器:由事件触发的存储过程。

10) 包

对数据库的操作可以基本归结为对数据对象的操作,这个对象蛤蟆也不知道如何去定义它。对象也是一个逻辑结构,是建立于段之上的,有头有脸的结构。

?

1.2.5 表空间

表空间是一组数据文件,通常由相关的段组成。表空间是包含物理数据文件的逻辑实体。表空间存储数据库的所有可用数据。

下节中就能看到表空间和物理数据文件的对应关系。表空间也是一个逻辑结构是,数据库下最大的逻辑结构了。

数据库创建完后会有如下表空间

a) System表空间

b) Sysaux 表空间

c) 撤销Undo表空间

d) 临时temporary表空间

1.3 物理数据库结构

上节介绍了oracle数据库的逻辑结构,那么接下去必须得看下,逻辑结构和物理存储结构是如何对应的。

首先在通常情况下我们可以这样理解,ORAC LE数据库由表空间组成;所以和物理数据库结构相关的从表空间开始了。

先看如下图3

\

?

从上图可以看出,逻辑结构比物理结构复杂了些许。

物理结构上就两个东西 操作系统块和文件。上节中提到数据库块是操作系统块的整数倍,从图中也能反映一二。

这里蛤蟆重点解释下ORACLE数据库中的文件。

1.4 数据文件

数据文件一般是数据库最大的物理存储部分,一个数据文件只能属于一个数据库。一个或者多个数据文件构成成为表空间的实体。

我们创建一个表空间时候,让他拥有一个2G大小的数据文件,那么该表空间就能存放2G大小的数据量,有一天耗尽了这2G,那么再增加一个数据文件给这个表空间,当然也可以扩大原先数据文件的大小。

注意:上篇提到了对象如索引、表等,虽然也是存在表空间所属的数据文件中,但是这些对象本身不会指定要存放在那个数据文件上,数据文件只与表空间关联

数据库中执行如下查看数据文件所在

SQL>selectname from v$datafile;

?

1.5 控制文件

一看这个文件,蛤蟆就不禁感叹:如此之小,确如此重要啊。小身材,大作用。

这个控制文件,管理了数据库的状态,非常重要,一般管理员都会进行至少3份备份。

控制文件包含了数据文件和重做日志文件的名字、位置、日志序号、备份等详细信息,以及所有重要的SCN(系统更改号)。数据库在操作过程中进程不断的更新控制文件。

控制文件中的检查点信息使ORACLE能确定从联机重做日志文件中需要返回多少以便恢复数据。此外,在启动oracle实例时,通过控制文件,确定数据库操作必须打开的所有数据文件和重做日志文件。

你看,重要不?

查看控制文件所在

SQL>selectname from v$controlfile

1.6 日志文件

日志文件其实准确的是重做日志文件,记录了对数据库做的全部更改,有助于恢复数据库。如果日志文件写满后就会进行归档,归档的日志文件叫做归档重做日志,正在记录的日志文件叫做联机重做日志文件。

Oracle要求数据库至少两个重做日志组,每个至少

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ORA-04030 下一篇OracleTIMESTAMP的处理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)