日期:2014-05-16 浏览次数:20428 次
一、数据库的架构
数据库由,控制文件、数据文件、在线重做日志文件、参数文件、密码文件、归档日志文件组成。
1、控制文件:
对数据库非常重要,如果没有控制文件,将不能打开数据文件,启动数据库实例。
2、数据文件:
存储数据库的相应数据信息,包括表、索引等数据。
3、在线重做日志文件:
该文件包含了数据库完整的事务操作记录,如果数据崩溃,或者数据文件丢失,通过在线重做日志文件
可以将数据库恢复到最近一次成功的事务操作的数据。
4、参数文件:
定义了在数据库启动时,的参数配置信息。
5、密码文件:
记录了能连接访问数据库的用户信息。
6、归档日志文件:
由在线重做日志文件,产生的归档文件。
二、表空间与数据文件
1、段(segments)、分区(Extents)、块(blocks)
数据库对象、象表、索引都是以段的形式存储在表空间里面,每个段包含一个或者多个分区、一个分区
由多个oracle数据块组成。数据块在oracle中是最小的I/O操作单位。
数据创建时,默认的块大小是8K,如果是数据仓库类型数据库,包含比较多的数据表及索引数据块的大
一点会提高数据库的性能;如果事务操作型数据库,数据块的设置小一点会提高数据库的性能。
2、数据库实例管理
数据库由数据库和一个数据实例组成。实例由SGA和后台处理进行组成。
当数据库启动时,数据库将读取参数文件,根据参数文件信息,初始化数据配置,数据为实例启动并打
开后,用户就可以连接进行数据库。
3、oracle内部存储结构
基本的数据内存由SGA(系统全局区)和PGA(用户全局区)组成。
系统全局区:所有服务器和后台进和共享。
用户全局区:提供给一个服务器和后台进程使用。
SGA(系统全局区)由以下部分组成:
(1)、数据库缓冲池:缓冲从数据库查询出来的数据。
(2)、重做日志缓冲池:缓冲要记录到在线重做日志文件中的日志信息。
(3)、共享池:将一些能在用户间共享的pl/sql缓存在内存中。
(4)、大池:缓冲一些大的I/O数据请求。
(5)、java池:缓冲java代码的缓冲池。
(6)、流池:供oracle流使用。
当数据库启动后,改变数据库缓冲池、共享池、大池、java池和流池时不需要重新启动数据库。
服务器进程(PGA)是为客户端用户服务的,包含有自己的内存空间:
(1)、私有SQL缓冲区。
(2)、会话缓冲区,包含会话变量,和与session的一些有关的信息。
三、Oracle 进程
当你启动一个客户端程序与Oracle实例交互时,Oracle服务端后台也会启动一个服务器进程为你处理请求。
Oracle数据库后进程有:
1、系统监控进程(SMON):处理系统崩溃时的系统还原工作。
2、进程监控进程(PMON):当用户失败时负责清理无用用户进程。
3、数据库写进程(DBWn):负现将数据缓冲区内的脏数据写入数据块中。
4、检查点进程(CKPT):给DBWn发送检查点信息,并更新所有的数据文件和控制文件。
5、日志进程(LGWR):日志记录进程,将重做日志中的缓冲信息写入磁盘。
6、归档进程(ARCn):负责复制备份重做日志文件。
四、Oracle数据字典
Oracle中数据字典包含了数据库的信息如下:
1、包含物理及逻辑结构信息。
2、数据库用户信息。
3、数据库的完整性约束。
4、数据库存储空间的使用率统计信息。
以user开头的对象,包含了当前用户下的信息。
以all开头的对象,包含了当前用户下所有有权限的对象信息。
以dba开头的对象,包含了数据的相关信息。