1、用户相关的进程

用户相关的进程包括用户进程和服务器进程。

一个用户进程只能连接到一个服务器进程

但是在某些oracle配置中,多个用户进程可以共享同一个服务器进程。

PAG也被创建,每一个服务器进程有一个PGA

2、逻辑内存结构,被集中称为oracle实例

一个oracle实例是被一个oracle的主要内存结构组成的,称为SGA(system global area),和服务器后台进程。

用户访问数据库中的数据时,服务器进程负责和SGA内存块通信。

一个oracle instance 包括三个组件:

1)必须的组件:

共享池:缓存最近被数据库用户使用的SQL语句;

数据库缓存:最近被数据库用户使用的信息;

redo日志:保存恢复为目标的事务信息。

可选的内组件:

java pool:当java虚拟机被使用的时候,缓存最近被使用的java目标

large pool:换数据和大的操作,比如 恢复管理,备份和恢复活动,共享服务器组件

streams pool:缓存数据库相关的队列请求信息,当oracle高级队列选项被打开的时候

SGA 最进最少使用算法管理内存。

2)背景进程

有很多个背景进程,每一个都执行一个特殊的任务来帮助管理oracle instance。其中,5个背景进程是必须得,包括:

1、系统监视进程,执行进程的灾难恢复,合并数据库的自由空间,管理用来排序的内存空间;

2、进程监视进程,清除失败的数据库用户;

3、数据库写进程,从SGA的数据库缓存区把数据库块写入到磁盘上的数据库文件中;

4、日志写进程,从SGA中的REDO日志缓存区把恢复信息写到磁盘上的在线redo日志文件上;

5、检查点进程,紧跟在检查点事件后,更新数据库文件。

3、物理文件架构被集中称为数据库

数据库主要是有驻留在主机服务器磁盘驱动器上的物理文件构成。这些文件可以被称作,数据文件,控制文件和日志文件,另外的一些文件也和数据库相关,

但是不属于数据库,比如密码文件和数据库文、配置文件(pfile,spfile)和归档redo日志文件(archived redo log files)。

一、控制文件

是数据库的关键部分,他们存储着重要的信息,这些信息其他地方并不提供。包括:

数据库的名字;

数据文件和redo日志文件的名字、位置、和大小;

在磁盘失败或者用户错误的情况下用来恢复数据库的信息。

控制文件当数据库创建时刻,就已经按照参数的文件 control_files参数描述的位置创建了,因为控制文件的丢失,会负面的影响恢复数据库的能力。

大部分数据库产品都提供多个数据库文件和并发把他们保存在多个位置。当需要的时候,CKPT也会动态的更新每一个数据库的控制文件,并且保持控制文件内容一致性。

可以用下面的示例来查看控制文件的位置和名字等详细信息:

SQL> select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/nihao/control01.ctl

/u01/app/oracle/flash_recovery_area/nihao/control02.ctl

SQL>

二、数据文件

数据文件是实际保存被插入到数据库数据表中的中数据的物理文件。数据文件的大小和他储存数据的表的量直接相关。数据文件是称为表空间的数据库存储区域的物理结构

表空间在数据库中是逻辑存储结构。表空间逻辑的组织相关的段,例如一个应收账户可能被一起保存在一个叫做AR_TAB的表空间中,而这些表的索引则被保存在名字叫做AR_IDX的表空间中。默认的oracle10g至少有3个表空间。

SQL> select tablespace_name

2 from dba_tablespaces;

TABLESPACE_NAME

------------------------------

SYSTEM

SYSAUX

UNDOTBS1

TEMP

USERS

EXAMPLE

HR01

7 rows selected.

SQL>

当一个用户通过SQL操作一张表以后,用户服务器进程把数据文件中受过影响的数据,拷贝到SGA中的数据库二级缓存中。如果用户执行了提交事务命令来修改数据库,那么数据库写进程(DBWn)把被修改过的数据写入到数据文件。

三、redo日志文件

每当用户在数据库中执行一个事务,在数据库故障时需要的重现这些事物的信息,会被自动记录在重做日志缓冲区。重做日志缓存区的内容最后被LGWR背景进程写入到redo日志文件。

因为在oracle恢复机制中,扮演者重要的角色,redo日志被重复拷贝多份或者记录在好几个地方。这也就意味着,每一个重做日志都有好几个拷贝,以防止系统损坏或者硬件故障造成他们之中的一个或者几个的损坏。每个组内的复用文件被称为重做日志组的成员。oracle自动写入每一个redo日志文件以保持他们之间的同步。每一个redo日志组必须有多个成员。每个重做日志组必须由一个或多个成员。每个数据库必须至少有两个重做日志组,因为重做日志是在一个循环的方式使用。

日志读写进程在下面几种事件发生时候记录日志:

每隔三秒;

一个用户提交事务;

redo日志缓存已用三分之一;

redo日志缓存容纳1M的游泳redo信息;

前一个数据库检查点发生时DBWn进程。对检查站的更多信息,请参见第10章。(未完待续)

当用户执行对数据库的DML活动,本次事务的恢复信息被用户的服务器进程写入到重做日志缓冲区中。LGWR进程最终写入此恢复信息到活动的日志组,直到该重做日志写满。一旦当前日志填写交易信息写满,LGWR将切换到下一个重做日志,直到该日志组填写满事务信息,并依此类推,直至所有可用的重做日志使用完。当最后一个重做日志被使用完时,LGWR开始循环并开始使用的第一个重做日志组。这样最早的redo日志文件就被覆盖了。因此不能在提供恢复的信息。一个可以考虑的解决办法是归档redo日志。

如果系统处于归档日志模式,那么将要被重写的日志在被LGWR进程重写之前,它的内容会被后台的归档进程复制到另外一个位置,也就是归档文件所在的位置。这些旧的redo日志实体的拷贝文件叫做归档日志

ps:1、大部分数据库产品都运行在归档模式下,因为一旦数据库由于在硬件故障和造成的毁坏需要重做所有的事务。

2、如果LGWR必须写入redo日志组,但是ARCn要试图拷贝redo日志,但是ARCn的目标位置磁盘满了,数据库会挂起直到磁盘驱动器上的空间足够。

已经全部写完了。所以,大家可以参考了。

与Oracle配套组件,oracle 组件和体系结构相关推荐

  1. oracle 安全桌面,Oracle Secure Global Desktop组件远程漏洞(CVE-2012-1685)

    发布日期:2012-10-16 更新日期:2012-10-22 受影响系统: Oracle Secure Global Desktop 4.6 描述: ------------------------ ...

  2. java olap oracle_【案例】Oracle数据库升级OLAP组件异常 删除OLAP组件

    天萃荷净 Oracle研究中心案例分析:在升级完一套Oracle数据库后发现OLAP组件出现异常,详细记录如何删除OLAP组件的过程. 本站文章除注明转载外,均为本站原创: 转载自love wife ...

  3. 未找到 Oracle 客户端和网络组件问题

    最近一直在研究如何解决"未找到 Oracle 客户端和网络组件.这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分..."的问题, ...

  4. php oracle组件,Oracle 组件 系列 小结

    Oracle 组件 系列 小结 Oracle 组件的信息可以通过v$option 和 dba_registry 查看: --查看v$option: V$OPTIONdisplaysOracle Dat ...

  5. 水晶报表-oracle错误:未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的

    错误情景:水晶报表2008(32位),oracle11g(64位) 报错:未找到 Oracle 客户端和网络组件.这些组件是由 Oracle 公司提供的,是 Oracle 7.3.3 版(或更高)客户 ...

  6. “未找到 Oracle 客户端和网络组件...Oracle 7.3.3 版“的解决办法

    1.刚开始报错 : :未找到 Oracle 客户端和网络组件.这些组件是由 Oracle 公司提供的,是 Oracle 7.3.3 版(或更高)客户软件安装的一部分. 在安装这些组件之前,将无法使用此 ...

  7. oracle 性能组件,Oracle VM性能监控工具 - ManageEngine Applications Manager

    Oracle虚拟机监控 Oracle虚拟服务器是来自Oracle的虚拟化技术,它为虚拟环境提供了完整的服务器虚拟化和管理.它是裸金属类型的虚拟机监控程序,使您能够通过集成的基于web的管理控制台有效地 ...

  8. oracle学习笔记 Oracle体系结构概述

    oracle学习笔记 Oracle体系结构概述 从这节开始,开始讲oracle数据库体系结构. 首先从总体上,从概述上把oracle整体的体系结构讲一下, 然后接下来的时间我们会一块一块的将oracl ...

  9. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

最新文章

  1. block,inline和inline-block概念和区别
  2. 天翼云从业认证(4.10)网络直播场景解决方案(CDN)
  3. YBTOJ洛谷P4869:出现位置(线性基)
  4. 小学计算机三年级课程目录,小学生信息技术课本目录.doc
  5. Centos安装JDK(java环境)
  6. C++学习之路 | PTA乙级—— 1010 一元多项式求导 (25分)(精简)
  7. 信息学奥赛一本通 1056:点和正方形的关系 | OpenJudge NOI 1.4 18
  8. [精华]如何编写高质量的VB代码
  9. Deepin系统安装后相关设置与环境搭建
  10. 同时起两个mysql 起不了_两大龙头同时提价,6月起下游订单V字反转,份额都倾向这两家...
  11. vue 回到顶部简单动画效果
  12. Linux 中的 owner,group,others
  13. Linux 查看显卡型号
  14. idea中还原dont ask again
  15. poscms清除html,POSCMS开源内容管理系统 v3.6.0 升级说明
  16. 一种基于最大吸收功率的卫星太阳能电池板安装方案
  17. 华为交换机常用命令(以s5700-SI为例)
  18. vs用Python爬数据?(一)网页抓取
  19. Node 开发npm脚手架(类似vue-cli)
  20. Modbus 简单认识(楼宇自动化系统背景下的详实总结

热门文章

  1. php网页悬浮对联代码,不用js多浏览器兼容纯DIV/CSS对联漂浮广告代码
  2. cpuz北桥频率和内存频率_内存频率不是越高越好:寻找三代锐龙的最佳频率
  3. PP生产订单成本的计划、控制和结算
  4. 【Jmeter自学】badboy使用(三)
  5. Linux运维工程师必学必备的8项IT技能
  6. SuperSocket 1.5 Documentation译文 ------- 目录索引
  7. 我的zencart 安装流程
  8. jQuery选中该复选框来实现/全部取消/未选定/获得的选定值
  9. vba基本操作 -- 表单操作
  10. Nios 定时器内核之timestamp_timer