1.数据库启动流程
the spfile or pfile is read
oracle instance is started
the controfile is read
the database is mount
datafiles and redo logfile are opened
the database is available for use
2.table segment extent block之间的关系
table:表 segment:段 extent:区 block:块
3.tablespace与datafile区别
tablespace 是逻辑上的概念,datafile则在物理上储存了数据库的种种对象
4.AMM与ASMM
AMM:自动内存管理,数据库完全管理SGA与PGA,只需要设置memory_target。PGA,SGA统一自动管理
ASMM:自动共享内存管理,设置一个SGA目标值及最大值,其余数据库动态调整其内部组件。PGA自动管理,SGA自动管理
AMM:memory_target=非0,若初始化参数LOCK_SGA=TRUE,则AMM是不可用
ASMM:memory_target=0 and sga_target为非0
5.回滚段含义及作用
含义:回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。
事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。
事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在重做日志文件中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。
读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语级读一致性)。
6.redo logfile / archivelog file
redo log:重做日志文件。数据库所做的更改记录(DML,DDL),以组的管理redo file,至少需要两组redo,循环使用。
archivelog file:当一个重做日志文件被填满了之后,归档日志文件就会把其备份保留一份。
v$logfile:描述重做日志文件的信息。
v$log:信息来自于control file,描述联机重做日志组的当前信息。
7.SGA主要有哪些部分,简单描述作用是什么?
db_buffer_cache redolog_buffer java_pool large_pool share_pool(数据字典缓存区、库缓冲区)
数据库缓存区:缓存了从磁盘上检索的数据块。
重做日志缓存区:缓存了写到磁盘之前的重做信息。
JAVA池:为数据库中运行的JVM分配的一段固定大小的内存。
大池:共享服务器连接使用大池作为会话内存,并行执行特性使用大池作为消息缓冲区,另外RMAN备份也可以使用大池作为磁盘I/O缓冲区。
共享池:包含共享游标(cursor)、存储过程、状态对象、字典缓存和诸如此类的大量其他数据。
8.oracle的进程有哪些,作用是什么?
DBWR LGWR ARCH CKPT SMON PMON RECO
数据写:负责将更改的数据从 数据库缓冲区高速缓存(database buffer cache) 写入数据文件
日志写:将重做日志缓冲区中的更改写入在线重做日志文件
归档:在每次日志切换时把已满的日志组进行备份或归档
检查点:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
系统监控:检查数据库的一致性。如有必要还会在数据库打开时启动数据库的恢复
进程监控:负责在一个Oracle 进程失败时清理资源
9.怎样查看sql的执行计划
一:预估的执行计划,可以通过plsql直接F5查看
二:explain plan for SQL;
select * from table(dbms_xplan.display);
10.临时表空间的作用
临时表空间存放用户的临时数据,在数据库进行排序运算。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。