您的位置:首页 > 数据库 > Oracle

oracle 体系结构 学习笔记

2014-10-14 09:01 387 查看
Oracle 体系结构学习笔记

今天学习了Oracle的体系结构,顺便整理下来笔记。

首先是Oracle的整体的一个体系结构如下:

体系结构

 

自己画的,不是很好看。

上面的数据库实例和数据库是整个数据库管理系统的核心的部分。

我们已经可以看到一个数据库实例包含一个系统进程区(SGA)和至少五个进程。然后通过这几个进行与数据库进行交互。

首先看一下数据库中的三个文件:

数据文件:这个文件用于存放数据库中的数据,就是放入到硬盘中的数据文件。

控制文件:这个文件是用于维护数据库和验证数据库的完整性的信息。是一个二进制文件。

重做日志文件:重做日志文件包含数据库发生变化的记录,在发生故障的时候用于数据的恢复。

在旁边有参数文件和密码文件。这两个比较简单,参数文件就是定义SGA中的参数的大小,比如分配数据库高速缓存中的大小。可以自己编辑。密码文件就是存放密码的地方了。用于控制用户的权限之类的。

 

 比如上面的查看共享池的连接大小。

表示的0,那就属于数据库自动管理的。

数据字典高速缓冲:这个表示的是数据文件、表、索引、列、用户、权限信息和其他一些数据库对象的定义。

数据库高速缓冲区:表示的是数据库高速缓存的大小。

 

这个表示查询得到的数据库高速缓存区的大小。表示的是0,那么属于数据库管理系统自动管理。

如果要查询数据库管理系统使用的情况。可以采用命令:show sga。

 

重做日志高速缓冲区:当用户执行了insert、update、delete、create、alert和drop操作后,数据会发生变化,这些变化的数据在写入数据高速缓冲区之前先要将执行的脚本写入重做日志高速缓冲区。变化之前的数据也是要放入重做日志缓冲区的。这样便于用户进行回滚操作。

 

上面就是查询重做日志文件的大小情况。当然,你也可以根据自己的情况进行修改。

 

大池:是SGA中的可选的内存区,只是在共享服务器中配置大池,Oracle在共享池中存储用户进程和用户的会话的信息,但是用户进程区域UGA的大部分都将在大池中分配。

 

Java池:java池也是一段可选的内存区域,但是在安装或者使用java程序的时候,必须设置java池,主要是用于存储java程序编译后的指令。

流池:这个是Oracle专用的内存池,用于数据共享。

 

PGA:进程全局区,主要是在用于存储服务进程的数据信息和控制信息。它和SGA不一样,不是一个共享区域,而是服务器进程专有的区域。包括了一下四个部分:

 

排序区

会话信息

游标状态

堆栈区

 

Oracle服务器进程和用于进程

服务器进程是完成用户的各种请求操作,再把数据库的结果返回给用户进程。

用户进程是当用户启动了一个客户端或者连接工具,连接到服务器的时候开辟的一个进程。

 

如上图查询到的进程情况。

 

接下来是关于Oracle的必须提供的五个进程:

SMON:主要作用就是用于系统实例的恢复,比如系统崩溃了,断电了等等情况。

PMON:负责服务器进程的管理和维护工作,在进程失败或者连接异常的时候进行清理工作。

LGWR:重做日志写进程,将重做日志缓冲区的数据写到重做日志文件中。

DBWR:数据库写进程,用于将脏数据写入到硬盘中。

CKPT:检验点进程,检验点是一个事件,当检验点发生的时候,检验点进程执行。

ARCH:归档日志进程,这个是一个可选的进程,在生产数据库中必须使用这个进程,来防止灾难性的损害。

 

这个就是查看系统是否使用了归档模式,这里是非存档模式,自己也可以进行手动修改。当然前提是必须取得sysdb的权限。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: