17、SGA主要有那些部分,主要作用是什么?
系统全局区(SGA):是ORACLE为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。 SGA主要包括:
1. 共享池(shared pool) :用来存储最近执行的SQL语句和最近使用的数据字典的数据。
2. 数据缓冲区(database buffer cache):用来存储最近从数据文件中读写过的数据。
3. 重作日志缓冲区(redo log buffer):用来记录服务或后台进程对数据库的操作。 另外在SGA中还有两个可选的内存结构:
4. Java pool: 用来存储Java代码。
5. Large pool: 用来存储不与SQL直接相关的大型内存结构。备份、恢复使用。
18、Oracle系统进程主要有哪些,作用是什么?
数据写进程(DBWR):负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程(LGWR):将重做日志缓冲区中的更改写入在线重做日志文件
系统监控 (SMON): 检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控 (PMON): 负责在一个Oracle 进程失败时清理资源
检查点进程(CKPT):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
归档进程 (ARCH):在每次日志切换时把已满的日志组进行备份或归档
恢复进程 (RECO): 保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback
21、Oracle中的控制文件什么时候读取?
Oracle服务器启动时,先启动实例然后再读取数据库的各个文件当然也包括控制文件。也就是说在数据库服务器启动的第二步时读取。
22、Oracle索引分为哪几类,说出唯一索引和位图索引的概念。
Oracle索引有B树索引,位图索引,函数索引,簇索引等。
唯一索引也是B树索引的一种,它要求被索引的字段值不可以重复。在创建的时候使用B树算法创建。
位图索引是为每一个唯一的字段值创建一个位图,位图中使用位元来对应一个记录的ROWID。位元到ROWID是通过映射得到的。