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 所有对数据的修改,都会以日志的形式存放到日志文件中。日志文件中也就记录着数据库中每一个数据块的所有变化过程。
----------- end --------------
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31529886/viewspace-2640745/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31529886/viewspace-2640745/