Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58268
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-18 11:07
文章分类
文章存档

2014年(12)

我的朋友

分类: Oracle

2014-02-19 17:22:24

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也会动态的更新每一个数据库的控制文件,并且保持控制文件内容一致性。

  可以用下面的示例来查看控制文件的位置和名字等详细信息:view plain 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个表空间。

  view plain 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日志组必须有多个成员。每个重做日志组必须由一个或多个成员。每个数据库必须至少有两个重做日志组,因为重做日志是在一个循环的方式使用。

 

阅读(1578) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~