千家信息网

怎么理解Oracle体系结构

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,本篇内容介绍了"怎么理解Oracle体系结构"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 从一
千家信息网最后更新 2024年11月21日怎么理解Oracle体系结构

本篇内容介绍了"怎么理解Oracle体系结构"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. 从一种角度讲,数据库可以分为数据库软件和数据库文件。我们通常说的数据库指的是数据库文件。通常情况下,将数据库软件安装在服务器,数据库文件存放在存储中。

2. 从另一种角度讲,数据库可以分为数据库文件和数据库实例。这里可以将数据库文件理解为静态,实例理解为动态。用户通过动态的实例,改变数据,再将改变的数据写进静态的数据库文件中。

3. 数据库文件

数据库文件的存放位置是在$ORACLE_BASE/oradata/{db_unique_name}/目录下。这里有三种文件

(1)控制文件(.ctl)

(2)日志文件(.log)

(3)数据文件(.dbf)

4. 数据库实例

数据库实例分成内存和进程。就像每个软件运行时,都在服务器的内存中划出一部分空间分配给自己。Oracle在sqlplus中执行startup时,实际上是开启了实例,相当于开启了数据库这个软件,也就是开启了内存和进程。内存和进程都会被移动到服务器的内存中。

5. 数据库的内存结构包括:SGA(系统全局区,共享的,这里共享是指SGA所有的空间,oracle的进程都可以访问)和PGA(进程全局区,非共享),这两个东西都在内存中。顾名思义,进程全局区存放的是进程。

(1)系统全局区(SGA)包括以下内容:

(1)共享池

(2)流池

(3)JAVA池

(4)大形池

(5)数据库缓冲区 → 数据库写进程

(6)重做日志缓冲区 → 日志写进程

这里,共享池和数据库缓冲区容易出现问题。

(2)进程全局区(PGA)包括以下两大进程:

后台进程和前台进程。这里的后台进程是官方名称,前台进程是指服务器进程。我这里将数据库本身的进程称为后台进程,每一个数据库对外的连接看成是一个前台进程,这样更容易理解。每一个进程(前后台)都有他属于自己的空间,这些空间都在PGA里。我们需要关注的是前台进程对PGA空间的占用,因为后台进程不怎么出问题。

6. ORACLE后台进程

Oracle的SGA有六大块,PGA有5大进程,还有三种数据文件。

其中五大进程为:

(1)CKPT(检查点进程)→ 控制文件

(2)SMON(系统监控进程)

(3)PMON(进程监控进程)

(4)DBWN(数据库写进程)→ 数据文件

(5)LGWR(日志写进程)→ 日志文件

7. 控制文件

控制文件内存在两大信息

(1)整个数据库的物理结构信息在控制文件中进行记录。这些物理结构包括整个数据库包括多少个数据文件、日志文件等,以及这些文件的存放位置。

(2)数据库当前的一些运行状态信息。比如哪些数据文件是在线的,哪些数据文件是离线的,Oracle正在使用哪一个日志文件,日志文件有什么问题。

8. 日志文件

日志文件也叫重做日志文件(redo log),是指Oracle所有对数据的修改,都会以日志的形式存放到日志文件中。日志文件中也就记录着数据库中每一个数据块的所有变化过程。

"怎么理解Oracle体系结构"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0