需要记住的理论(每日一问系列)

一、进程

1.PMON
监督各个进程,PMON负责清理异常连接中断;回滚未提交的工作,释放锁,并释放之前为失败进程分配的SGA资源。

2.SMON
监控"系统级"任务,清理临时表空间,合并空闲表空间,实例恢复,清理OBJ$;

3.LGWR
LGWR进程会在这些情况下,会把redo buffer刷新输出到磁盘(redo log):

  1. 每3s一次;
  2. 发生commit或rollback请求时;
  3. 要求LGWR切换日志文件时;
  4. redo buffer用满1/3,或者缓存重做日志数据达到1MB时;

4.DBWR/DBWn
将脏块写入磁盘。

5.CKPT
ORACLE如何使用online redo log?DBWR是实施检查点,ckpt是协助运行检查点的进程,更新数据文件的文件头。

6.ARCH/ARCn
归档日志进程,将redo log 复制到另一个位置归档。

 

7.增量检查点不会更新数据文件头,仅仅是更新控制文件;完全检查点会更新数据文件头和控制文件。

下面分别列出一些触发两种检查点的条件:
完全检查点:DBWR会将触发checkpoint时刻前的所有dirty buffer写出

  1. 关闭数据库的时候(shutdown immediate , shutdown normal)
  2. FAST_START_MTTR_TARGET的设置
  3. alter system checkpoint;
  4. alter tablespace tablespace_name offline
  5. alter system switch logfile;

需要注意的是:
alter database datafile N offline并不会出发检查点进程。而只有offline tablespace的时候才会触发检查点。因此如果offline datafile一段时间后,再次online需要进行media recovery.

增量检查点:

  1. 3秒(只记录DBWR进度,而不记录DBWR写)
  2. alter tablespace tablespace_name begin backup; alter tablespace tablespace_name end backup;
  3. alter tablespace tablespace_name read only;
  4. alter tablespace tablespace_name offline normal;

参考:
http://blog.itpub.net/12361284/viewspace-52059/

Checkpoint Not Complete等待事件解释

This message indicates that Oracle wants to reuse a redo log file, but the current checkpoint position is still in that log. In this case, Oracle must wait until the checkpoint position passes that log. Because the incremental checkpoint target never lags the current log tail by more than 90% of the smallest log file size, this situation may be encountered if DBWR writes too slowly, or if a log switch happens before the log is completely full, or if log file sizes are too small. You may also have this situation when there id rapid redo generation in the database.When the database waits on checkpoints,redo generation is stopped until the log switch is done.In this situation, you need to review the redo log sizes and resize it accordingly.

Primary Note: Overview of Database Checkpoints (Doc ID 1490838.1)

 二、重要概念

oracle的重要概念:
1.硬解析:是指oracle在执行目标sql时,在库缓存中找不到可以重用的解析树和执行计划,而不得不从头开始解析目标sql并生成相应的父游标和子游标的过程。
危害:1.会导致shared pool latch的争用,消耗CPU
2.软解析:是指oracle在执行目标sql时,在库缓存中找到匹配的父游标和子游标,并将存储在子游标中的解析树和执行计划直接拿过来重用而无需从头开始解析的过程。
3.绑定变量:是一种特殊类型的变量,又称占位符,通常出现在目标sql的sql文本中,用户替换sql文本中where条件或者values子句中的具体输入值。
作用:使用绑定变量可以降低硬解析的数量。

 

三、思路

一条sql的执行:

 

四、rac的启动顺序

 层次1:ohas层面,负责集群的初始化资源和进程
层次2:css层面,负责构建集群并保证集群的一致性
层次3:crs层面,负责管理集群的各种应用程序资源
层次4:evm层面,负责在集群节点间传递集群事件

五、解释undo和redo

redo是oracle在线重做日志文件中记录的信息,事务日志,万一出现失败是可以利用这些数据来"重放"事务。
undo是oracle在undo段中记录的信息,用于取消或回滚事务。执行事务或语句由于某种原因失败了,或者通过rollbak语句请求回滚,可以利用undo信息将数据放回到修改前的样子。

 

六、ORA-01555

七、锁:存储

八、事务

九、oracle的体系结构

 

posted @ 2021-11-05 17:14  AnneZhou  阅读(84)  评论(0)    收藏  举报