oracle 11g ocp 笔记(1)-- oracle 11g体系结构概述
参考文档: https://blog.csdn.net/gyming/article/details/41593811
1、oracle系列产品
1.1 服务器分为数据库服务器、应用服务器和企业管理器。其中企业管理器包括database control application server control 和grid control。
1.2 oracle开发工具包括
内部语言 --sql和plsql
外部语言 java c等
oracle developer suite等
1.3 oracle应用程序
两个
2、预备知识
oracle概念;
表、行、列 等; 基本查询;磁盘,内存等概念,所需大小。
3、
3.1单实例体系结构
实例位于RAM和CPU中,暂时的,数据库存在于磁盘上,可以删除前一直存在。
实例由内存和后台进程组成,一个SGA(共享),一个服务器进程对应一个PGA,都可以实现自动管理。
总结:用户 进程、服务器进程、客户端、实例和数据集的关系。
3.2分布式数据集体系结构
分布式环境
·实时应用程序集群(RAC) ---- 多个实例打开一个数据库
·流 ---- 多个Oracle服务器相互之间传播事务
·数据保护 ---- 主数据库更新备用数据库
确定是否是单实例
select parallel from v$instance; -- NO 单实例
select protection_level from v$database; -- 备用数据库保护, UNPROTECTED未保护
select * from dba_streams_administrator;--尚未配置,不返回任何行。
4.内存结构
SGA--系统全局区域(共享内存).
·数据库高速缓存区(buffer cache)--可设置,可自动管理,是动态参数。
·日志缓冲区 ---大小不变,不能自动管理,是静态参数。
·共享池(Shared pool)
·库缓存 --最近执行的代码
·数据字典缓存 --存储最近使用的对象定义。
·PL/SQL区域 --PL/SQL对象
·SQL查询和SQL函数结果缓存 (11g版本新功能)
·大池(large pool) --可选
·Java池(java pool) --可选
·流池(streams pool) --可选
·列式内存区(inmemory) -- 12c的新特性,提高OLAP性能,默认不会启用 --可选
------------------其他视图等参照如下网站:https://www.cnblogs.com/lanzi/archive/2011/08/08/2131412.html
PGA--程序全局区域(专用内存).
·临时表
·排序行
·归并位图
·变量
·调用堆栈
PGA信息查询v$pgastat
5、进程结构:
注意典型的实例和数据库的交互情况。
在Linux和Unix上,所有的进程都是独立的操作系统进程,都有各自的进程编号.
在Windows上,整个实例只有一个操作系统进程(oracle.exe),Oracle进程作为此线程中的独立线程运行.
·SMON 系统监视器(System Monitor, SMON)
·PMON 进程监视器(Process Monitor, PMON)
·DBWn 数据库写入器(Database Writer, DBWn)
·LGWR 日志写入器(Log Writer, LGWR)
·CKPT 检查点进程(Checkpoint Process, CKPT)
·MMON 管理监视器(Manageability Monitor, MMON) -----AWR的时候要使用
·MMNL管理监视器(Manageability Monitor, MMON) -----AWR的时候要使用,MMON的复制进程
·MMAN 内存管理器(Memory Manager, MMAN)--自动内存管理时候使用。
·ARCn 归档进程(Archiver, ARCn)
·RECO--分布式事务的时候使用
1)系统监视器(System Monitor, SMON)
主要任务是通过查找和验证控制文件来安装数据库,通过查找和验证所有数据文件和联机日志文件打开数据库,打开数据库后负责执行各种内部管理任务,如比较数据文件中的可用空间.
2)进程监视器(Process Monitor, PMON)
PMON在会话创建时启动,再会话结束时销毁. PMON监视所有服务器进程,会话异常退出时,回滚事务,释放资源.
3)数据库写入器(Database Writer, DBWn)
会话通常不将数据或更改写入磁盘,会话将数据或更改写入高速缓存区.
DBWn在以下四种情况写入磁盘文件.
·没有可用的缓冲区
·脏缓冲区数据过多
·三秒超时
·遇到检查点
在提交事务时,DBWn不做任何动作.
4)日志写入器(Log Writer, LGWR)
当会话对数据高速缓冲区中的块执行任何更改时,在其将更改应用到块之前,会将更改矢量写到日志缓冲区.
为保证不丢失任何工作,必须在最大程度减少延迟的情况下将这些更改矢量写入磁盘.
LGWR将日志缓冲区的内容实时写入联机重做日志文件.当会话发出COMMIT时,LGWR会实时写入,在LGWR将缓冲区写入磁盘时,会话将挂起,只有此时才将事务记录为已经提交(因此是不可逆的).
LGWR是Oracle体系结构中最大的瓶颈之一.DML的速度不可能超过LGWR将更改矢量写入磁盘的速度.
在以下三种情况下LGWR将转储日志缓冲区写入到联机重做日志文件中:
·会话发出COMMIT.
·日志缓冲区占有率达1/3.
·DBWn要将脏缓冲区数据写入文件时.
5)检查点进程(Checkpoint Process, CKPT)
CKPT发起检查点,触发DBWn将脏缓冲区数据写入磁盘.
8i前,每过一定的时间间隔,就需要设置检查点.8i及之后,DBWn用增量检查点代替完全检查点.
何时出现检查点:只会应请求这么做,或在有序关闭数据库时出现.
alter system checkpoint; -- 强制设置检查点
6)归档进程ARCn
在归档日志模式下,LGWR将日志缓冲区写到联机重做日志文件中,联机重做日志文件一旦变满,ARCn会制作联机重做日志文件的副本(归档重做日志文件),在ARCn将联机日志文件成功归档到归档日志文件前,不允许覆盖相应的联机重做日志文件.
7)进程对数据库事务的处理过程
·会话将数据或更改写入数据高速缓冲区,并在应用到更改的块之前,将更改矢量写入日志缓冲区.
·LGWR将日志缓冲区的数据实时写入磁盘联机日志文件(在日志缓冲区占满1/3,或者会话发出提交事务,或者DBWn要写脏缓冲区时).
·DBWn按一定的时机写入磁盘数据文件(缓冲区满,脏缓冲数据过多,三秒超时,检查点请求).
·联机重做日志文件写满时,ARCn将联机重做日志文件归档到归档日志文件中.
6、数据库的存储结构。
1)物理数据库结构
·控制文件(Control File)
·联机重做日志文件(Redo Log File)
·数据文件(Data File)
·实例参数文件(Instance Parameter File)
·口令文件(Password File)
·归档重做日志文件(Archive Redo Log File)
·警报日志和跟踪文件(Alert Log and Trance Files)
2)逻辑数据库结构
·表空间(Tablespace)
·段(Segment)
·区间(Extent)
·块(Block)
3)数据字典
元数据存储在SYSTEM和SYSAUX表空间中.
数据字典视图:
·DBA_ 所有对象
·ALL_ 所有有权访问的对象
·USER_ 当前用户的对象
如:
DBA_TABLES 所有表
ALL_TABLES 所有有权限访问的表
USER_TABLES 当前用户的表