|
Oracle OCP笔记(01)数据库体系结构概要
1.DBA的职责:
·确定应用程序和服务器硬件的大小----预测运行程序必需的主存、磁盘空间和CPU
·安装和维护Oracle----软件及补丁
·数据库物理设计----配置数据库的物理存储,了解不同存储结构对诸如磁盘和磁带系统设备的影响
·监视和性能调整
·帮助开发人员设计应用程序和SQL
·与供应商、终端用户、开发人员、高管和其他支持团队保持联系
·备份、还原和恢复----最重要的工作,最高目标数据库的正常工作时间100%和数据损失目标0.
·用户和安全管理
2.Oracle数据库体系结构:
Oracle服务器有两个实体:实例和数据库.实例是内存结构和进程,数据库是磁盘文件.在创建时先创建实例再创建数据库,在启动时先启动实例再打开数据库.
·单实例环境 ---- 一个实例打开一个数据库
·分布式环境
·实时应用程序集群(RAC) ---- 多个实例打开一个数据库
·流 ---- 多个Oracle服务器相互之间传播事务
·数据保护 ---- 主数据库更新备用数据库
select parallel from v$instance; -- NO 单实例
select protection_level from v$database; -- 备用数据库保护, UNPROTECTED未保护
3.单实例体系结构
·Oracle服务器是连接到数据库的实例.
·实例包括共享内存及后台进程.
·数据库是磁盘上的一组文件.
·用户会话是连接到服务器的用户进程.
4.内存结构
SGA--系统全局区域(共享内存).
·数据库高速缓存区(buffer cache)
·日志缓冲区
·共享池(Shared pool)
·库缓存
·数据字典缓存
·PL/SQL区域
·SQL查询和SQL函数结果缓存 (11g版本新功能)
·大池(large pool)
·Java池(java pool)
·流池(streams pool)
·列式内存区(inmemory) -- 12c的新特性,提高OLAP性能,默认不会启用
PGA--程序全局区域(专用内存).
·临时表
·排序行
·归并位图
·变量
·调用堆栈
select * from v$sga_dynamic_components -- 可动态重设大小的SGA组件
select * from v$pgastat -- 已为PGA分配的内存
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)
·MMAN 内存管理器(Memory Manager, MMAN)
·ARCn 归档进程(Archiver, ARCn)
·MMNL
·RECO
select * from v$session
select * from v$process
6.存储结构
物理数据库结构
·控制文件(Control File)
·联机重做日志文件(Redo Log File)
·数据文件(Data File)
·实例参数文件(Instance Parameter File)
·口令文件(Password File)
·归档重做日志文件(Archive Redo Log File)
·警报日志和跟踪文件(Alert Log and Trance Files)
逻辑数据库结构
·表空间(Tablespace)
·段(Segment)
·区间(Extent)
·块(Block)
7.系统监视器(System Monitor, SMON)
主要任务是通过查找和验证控制文件来安装数据库,通过查找和验证所有数据文件和联机日志文件打开数据库,打开数据库后负责执行各种内部管理任务,如比较数据文件中的可用空间.
8.进程监视器(Process Monitor, PMON)
PMON在会话创建时启动,再会话结束时销毁. PMON监视所有服务器进程,会话异常退出时,回滚事务,释放资源.
9.数据库写入器(Database Writer, DBWn)
会话通常不将数据或更改写入磁盘,会话将数据或更改写入高速缓存区.
DBWn在以下四种情况写入磁盘文件.
·没有可用的缓冲区
·脏缓冲区数据过多
·三秒超时
·遇到检查点
在提交事务时,DBWn不做任何动作.
10.日志写入器(Log Writer, LGWR)
当会话对数据高速缓冲区中的块执行任何更改时,在其将更改应用到块之前,会将更改矢量写到日志缓冲区. 为保证不丢失任何工作,必须在最大程度减少延迟的情况下将这些更改矢量写入磁盘. LGWR将日志缓冲区的内容实时写入联机重做日志文件.当会话发出COMMIT时,LGWR会实时写入,在LGWR将缓冲区写入磁盘时,会话将挂起,只有此时才将事务记录为已经提交(因此是不可逆的).
LGWR是Oracle体系结构中最大的瓶颈之一.DML的速度不可能超过LGWR将更改矢量写入磁盘的速度.
在以下三种情况下LGWR将转储日志缓冲区写入到联机重做日志文件中:
·会话发出COMMIT.
·日志缓冲区占有率达1/3.
·DBWn要将脏缓冲区数据写入文件时.
11.检查点进程(Checkpoint Process, CKPT)
CKPT发起检查点,触发DBWn将脏缓冲区数据写入磁盘.
8i前,每过一定的时间间隔,就需要设置检查点.8i及之后,DBWn用增量检查点代替完全检查点.
何时出现检查点:只会应请求这么做,或在有序关闭数据库时出现.
alter system checkpoint; -- 强制设置检查点
12.归档进程ARCn
在归档日志模式下,LGWR将日志缓冲区写到联机重做日志文件中,联机重做日志文件一旦变满,ARCn会制作联机重做日志文件的副本(归档重做日志文件),在ARCn将联机日志文件成功归档到归档日志文件前,不允许覆盖相应的联机重做日志文件.
13.进程对数据库事务的处理过程
·会话将数据或更改写入数据高速缓冲区,并在应用到更改的块之前,将更改矢量写入日志缓冲区.
·LGWR将日志缓冲区的数据实时写入磁盘联机日志文件(在日志缓冲区占满1/3,或者会话发出提交事务,或者DBWn要写脏缓冲区时).
·DBWn按一定的时机写入磁盘数据文件(缓冲区满,脏缓冲数据过多,三秒超时,检查点请求).
·联机重做日志文件写满时,ARCn将联机重做日志文件归档到归档日志文件中.
14.数据字典
元数据存储在SYSTEM和SYSAUX表空间中.
数据字典视图:
·DBA_ 所有对象
·ALL_ 所有有权访问的对象
·USER_ 当前用户的对象
DBA_TABLES 所有表
ALL_TABLES 所有有权限访问的表
USER_TABLES 当前用户的表
版权声明:本文为博主原创文章,未经博主允许不得转载。 |
|
|