跟我学Oracle 10g系列之一(理解实例)

来源:互联网 发布:机器人写毛笔字编程 编辑:程序博客网 时间:2024/06/06 03:59

作为执业界数十年之牛耳,作为一个计算机方面的从业人员,还是非常有必要学习Oracle数据库的。Oracle体系非常庞大和复杂,内容极其繁多,从程序开发到DBA,都有庞大的内容等着你去学。本人对管理比较感兴趣,所以写的一些东西都是靠管理的:)

Oracle是一个可移植的数据库——它在相关的每一个平台上都可以使用,即所谓的跨平台特性。在不同的操作系统上也略有差别,如在 UNIX/LINUX 上,Oracle是多个进程实现的,每一个主要函数都是一个进程;而在Windows上,则是一个单一进程,但是在该进程中包含多个线程。但是从整体构架上来看,ORACLE 在不同的平台上是一样的,如内存结构、后台进程、数据存储等。

Oracle Server体系结构可以按如下3个类别来描述:

1、  用户相关进程;

2、  总称为Oracle实例的逻辑内存结构;

3、  总称为数据库的物理文件结构。

总体上看,实例和数据库统称为Oracle Server。

一个Oracle实例右Oracle的主内存结构和几个Oracle后台进程所组成;主内存结构也叫System Global Area(系统全局区,简称SGA)。当用户访问数据库中的数据时,服务器进程就是与SGA进行通信。

SGA由3个必须的构件和3个可选的构件组成。

必须构件:共享存储池、数据库缓冲器高速缓存和重做日志缓冲器。

共享存储池:高速缓存由数据库用户已经发布的最常用SQL语句;

数据库缓冲器高速缓存:高速缓存由数据库用户最近访问过的数据;

重做日志缓冲器:存储事务信息以用于恢复目的。

可选构件:Java存储池、大存储池和流存储池。

Java存储池:在Oracle的JVM选件得到使用时,高速缓存最近使用的Java对象和应用软件代码;

大存储池:为诸如Recovery Manager(RMAN)备份与恢复活动之类的大型操作和Shared Server构件高速缓存数据;

流存储池:当Oracle的Advanced Queuing选件得到使用时,高速缓存跟排队的消息请求相关联的数据。

Oracle后台进程也分为可选的和必须的:

必须的:SMON、PMON、DBWn*、LGWR和CKPT。

SMON:执行实例崩溃后的恢复,合并数据库中的自由空间,以及管理用于分类操作的空间;

PMON:清理有故障的用户数据库连接;

DBWn*:把修改后的数据库块从SGA的Database Buffer Cache中写到磁盘上的数据文件;

LGWR:把事务恢复信息从SGA的Redo Log Buffer中写到磁盘上的联机Redo Log文件;

CKPT:更新跟在一个Checkpoint Event后面的数据库文件。

可选的(由于可选的后台进程比较,这里只介绍一些常用的):ARCn、MMAN、MMON、MMML和PVWR

ARCn:把LGWR写到磁盘的事务恢复信息复制倒联机Redo Log文件和一个辅助位置,以防因恢复而需要这些信息。几乎所有生产数据库均使用这个可选的进程;(:Oracle默认是非归档模式的,建议安装完数据库之后将其修改为归档模式,具体操作方法在后续系列会介绍。)

MMAN:当使用Oracle的Automatic Shared Memory Management特性时,管理每个SGA构件的大小;

MMON:收集并分析Automatic Workload Repository特性所使用的统计数据;

MMML:同上;

PVWR:当使用Oracle的Flashback Database Recovery特性时,把恢复信息写到磁盘。

原创粉丝点击