Oracle Architecture Components (Oracle结构组件)

1.由哪些组件组成
2.建立连接时需要哪些组件

ORACLE由两部分:实例和数据库
实例由以下组成: SGA,Shared  pool,Database buffer cache,Redo log buffer cache.
数据库由物理文件组成,其中必须有的文件是:数据文件,控制文件,重做日志
另外还有:参数文件,口令文件,归档日志文件(这三个不是必须的)

用户建立连接后,启动一个服务器进程,用来将来代替用户进程完成SQLCOMMAND,再通过ORACLE实例实现对数据库的相关文件进行改变(数据进行读取或修改).用户进程不可以直接操作数据库,而必须通过建立连接后,再通过服务器进程来完成.
ORACLE SERVER 由两个部分组成,
1.INSTANCE:又由内存结构和后台进程
2.DATABASE:又由数据文件,日志文件和控制文件组成<这三个文件是必需的>.CONTROL FILE是用来连接实例和DATABASE的
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP NOMOUNT
SQL>ALTER DATABASE MOUNT
以上三个过程就是通过CONTROL FILE来连接实例和数据库.
SQL>ALTER DATABASE OPEN
在OPEN的过程对DATABASE的数据文件和重做日志文件进行一次性的验证,验证它们的状态.ORACLE INSTANCE:存取数据库的一个手段
 一个DATABASE与INSTANCE之间是1:N的关系,一个INSTANCE只能操作一个DATABASE,由内存结构(共享池,
 BUFFER CACHE,REDO LOG BUFFER CACHE)及相应的进程结构组成(PMON<程序监控进程>,SMON<系统监控进程>,CKPT<检查点进 程>)SQL>SHOW SGA ---显示DATABASE内存结构信息
SQL>SET WRAP OFF
SQL>SET LINESIZE 200
以上这两个是设置行宽
SQL>SELECT * FROM V$BGPROCESS;
将看到在这个系统中所有可能使用到的进程,其中PADDR并不每个进程都分配到有效的地址,即并不是每个进程都是必须的.
SQL>SELECT * FROM V$BGPROCESS WHERE PADDR<>'00'
将显示所有必需的进程.ESTABLISHING A CONNECTION AND CREATING A SESSION
连接到ORACLE实例包括建立一个用户连接及创建会话.SQL>SELECT * FROM V$CONTROLFILES; --显示现系统下由几个控制文件组成
SQL>SELECT * FROM V$DATAFILE;     --显示由几个数据文件组成
SQL>SELECT * FROM V$LOGFILE;      --显示由几个日志文件组成ORACLE MEMORY STRUCTURE (内存结构)
由两部分组成:
 1.SGA
   SGA是动态的,其最大值由SGA_MAX_SIZE指定,SGA的内存由SGA COMPONENTS来动态调整.
 2.PGA 是不共享的,即其包含的信息是不一样的,有两个可享的内存可以由SGA配置
    <1> LARGE POOL
    <2> JAVA POOLSQL>SHOW PARAMETER SHARED
SQL>SHOW PARAMETER DB_CACHE
SQL>SHOW PARAMETER LOG
以上三个命令是用于查看相关内存信息
SQL>ALTER SYSTEM SET DB_CACHE_SIZE=20M;
所有内存大小总和不能大于SGA_MAX_SIZE的值,当提示信息出现?号或乱码时,是由于系统的语言问题.
可以通过ALTER SESSION SET NLS_LANGUAGE='AMERICAN'或ALTER SESSION SET NLS_LANGUAGE="SIMPLE CHINESE"SHARED POOL (共享池)
含:<1>LIBRARY CACHE 库缓存
   <2>DATA DICTIONARY CACHE 数据字典缓存,有的地方又称行CACHE,由SHARED_POOL_SIZE指定大小.
SQL>ALTER SYSTEM SET SHARED_POOL_SIZE=64M;LIBRARY CACHE 主要为提高代码的共享,存储的是最近使用的SQL和PL/SQL代码.
<1>.用最近最少使用(LRU)算法
<2>.包括两个结构 1:共享SQL代码 2:共享PL/SQL代码
<3>.不可直接定义,而由SHARED POOL SIZE决定.DATA DICTONARY CACHE.
如:SQL>SELECT * FROM AUTHORS;
执 行此命令的过程是:首先确认是否存在AUTHORS,,然后确认字段存不存在,再检查语法,最后验证权限,而这些信息就属于DATA DICTIONARY CACHE的内容.其包含的信息有:DATABASE FILES,表,索引,字段,用户,权限和其他数据库对象.
 <1>.主要用来改变系统的感应时间和性能.
 <2>.通过改变SHARED POOL大小来设置,DATA DICTIONARY CACHE不能单独设置大小.

Database buffer cache 用于存储数据文件中的数据块.数据库高速缓存的数据块是高速缓存与数据文件进行信息交换的基本单位.ORACLE8i以前,数据块大小只有一种,9i以后支持2K,4K,8KB,16KB及32KB五种.
用 命令SQL>SHOW PARAMETER DB可以显示当前数据库的BUFFER CACHE.数据库缓存和特点如下:
<1>.根据最近最少使用LRU.
<2>. 由DB_BLOCK_SIZE来指定大小.
<3>.ORACLE使用时是以块大小为单位进行数据存取的.
还包含以下一些独立的子缓 存:  
<1>.DB_CACHE_SIZE.  
<2>.DB_KEEP_CACHE_SIZE.  
<3>.DB_RECYCLE_CACHE_SIZE.
注:可以用Alter system set db_cache_advice=on;设置成根据系统的建议来指定大小.
REDO LOG FILE主要是用于重做日志.用命令
SQL>SHOW PARAMETER LOG_BUFFER.           
SQL>ALTER SYSTEM SET LOG_BUFFER_SIZE=60M.用来显示或修改重做日志缓冲区的一些信息.
命令SQL>achive log list 可以查看数据库当前的归档模式.
LARGE POOL:  与JAVA POOL一样,都是作为系统可选的内存结构,由SGA来配置.JAVA POOL: 当安装或使用JAVA时才用到. ORACLE内存进程包括两个,一个是SGA,一个是PGA.
(1).SGA在ORACLE实例启动时分 配,是ORACLE实例的一个基本组件.
(2).PGA是在当服务器进程启动时分配的.
进程结构:  
<1>.USER PROCESS.用于用户与ORACLE SERVER交互的进程.USER PROCESS必须与ORACLE建立连接后才可使用,不可与ORACLE SERVER交互.  
<2>.SERVER PROCESS.SERVER PROCESS在用户与服务之间建立连接后,为执行用户命令的一个进程.  
<3>.BACKGROUND PROCESS.    后台进程:DATABASE WRITER (DBWn)用来把DATA BUFFER CACHE中的脏数据写回到数据库中.    (注:脏数据是被改变的数据.)   
在以下情况下它会写数据库:     
<1>.在发生CHECKPOINT同步.    
<2>.脏数据达到阀值.    
<3>.DATABASE BUFFER CACHE 自由空间太少了.    
<4>.TIMEOUT (3秒钟.)    
<5>.RAC PING REQUEST.    
<6>.TABLESPACE OFFLINE.    
<7>.TABLESPACE READONLY.    
<8>.TABLE DROP OR TABLE TRUNCATE (表数据清空或表结构删除).     <9>.TABLESPACE BEGIN BACKUP.       由SGA (包含DATABASE BUFFER CACHE,BACKGROUND PROCESS)-----> ----> {data files,     control files, redo log file} ---->由此过程改变数据库中的数据.
 LOG WRITER (LGWR) 日志写进程.  在ORACLE环境中. 
<1>.当COMMIT的时候. 
<2>.当三分之一空间满时.  
<3>.当日志有1MB需要重做时. 
<4>.每3秒                      
<5>.BEFORE DBWn WRITES.(写数据前先写日志).
REDO LOG BUFFER----->LGWR--->DBWn-----> REDO LOGFILES                                                      
SYSTEM MONITOR (SMON)系统监控进程
主 要任务:     
(1).启动过程(假定DATABASE重启时)如果需要RECOVERY,则此进程会负责打开数据库,及回滚没有           提交的事务;以及rolls forward changes in the redo logs..这些统称为:instance recovery.     
(2).对每3秒就对系统自由空间的整理.(COALESCES FREE SPACE EVER 3 SEC.)      (3).清空临时段空间(DEALLOCATES TEMPORARY SEGMENTS).       这个过程也是在系统启动过程中完成的.
PROCESS MONITOR (PMON) 进程监控进程. 
主 要用于回滚异常终止的或被用户强制终止的事务. 
<1>.rolling back the transaction. 
<2>.releasing locks.释放锁. 
<3>.releasing other resources. 
<4>.restarts dead dispatchers.重启死掉的调度器.(在共享服务器中用).   
 PMON  (:Include in SGA)----------------------->PGA
CHECKPOINT (CKPT) 检查点进程
用 来在数据库里实现同步,实现之前会强制将脏数据从内在里写到物理文件里.  
<1>.会启动DBWn来写脏数据(SIGNALLING DBWn at CKPT.)  
<2>.完后会更新DATAFILE的HEADER和控制文件的HEADER.而HEADER中有同步所需要的信息,即            CHECKPOINT的信息.   
<3>.在ORACLE中,正常情况下,所有文件必须同期性地同步;靠CHECKPOINT来完成.          
CKPT(作为后台进程包含在实例中)----------DATABASE (data files,control files,redo log files.)              |    |______DBWn                                       |________LGWR
Archive PROCESS (ARCn) :归档进程(可选进程),当设置归档模式后,可用来自动备份在线日志,(归档日志是重做日志的备份.)<1>.Automatically archives> 
总结:             
ORACLE SERVER. ORACLE服务器进程包含一些文件,进程和内存,在执行一条SQL语句时,并非所有这些都会用上,有些进程用于提高数据库的性能;一些用于当发生软件或 硬件异常时恢复数据库;或应用于完成其他一些维护数据库的任务.ORACLE服务器包含ORACLE实例和ORACLE数据 库.             
ORACLE INSTANCE: ORACLE实例是用于联系后台进程和内在之间的活动,对数据库进行数据存取前必须先启动实例,每当实例启动时,SGA就被分配给它并启动了一些后台进 程.后台进程执行10秒操作并监控有些进程以提供更好的性能.和可靠性.             
ORACLE DATABASE: 数据库包含了系统文件,也称数据库文件,其提供了用以存储数据库信息的实际物理存储区域,用数据文件保证了数据一致性.并在当实例发生失败时恢复数据库.

转载于:https://www.cnblogs.com/yifan268/archive/2008/06/24/1228625.html

Oracle结构组成相关推荐

  1. oracle中DBWR全称,Oracle基本术语大全

    Oracle基本术语大全 §2.4.2 重做日志工作模式Oracle可以在两种模式之一来工作: 1)ARCHIVELOG模式(可恢复) Oracle 一般至少有两个日志文件.它们轮流交替地被写入所作的 ...

  2. Oracle RAC(Real Application Clusters)

    Oracle RAC 运行于集群之上,为 Oracle 数据库提供了最高级别的可用性.可伸缩性和低成本计算能力.如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行.Oracle ...

  3. oracle 三表关联更新_Oracle数据库入门

    Oracle数据库的基本概念 个人理解:Oracle在数据库的整体定义上与Mysql不同,但在具体的数据项操作,例如增删改查上,两者的知识是可以很好的重合的.因此大家在学习的时候,得学会有的放矢. O ...

  4. oracle基本概念和术语

    oracle基本概念和术语      ChinaITLab收集整理  2006-3-15  保存本文  推荐给好友  QQ上看本站  收藏本站 ---------------------------- ...

  5. oracle 基础1

    目    录 一. 数据库基础部分 第一章       oracle基础介绍 第二章  数据查询语言(QL) 第三章  数据定义语言(DDL) 第四章  Oracle数据分区表 第五章  PL/SQL ...

  6. Oracle内存结构详解(三)--管理Oracle Share Pool

    SGA中的共享池由库缓存(Library Cache).字典缓存(Dictionary Cache).用于并行执行消息的缓冲以及控制结构组成. Shared Pool的大小由参数SHARED_POOL ...

  7. 与Oracle配套组件,oracle 组件和体系结构

    1.用户相关的进程 用户相关的进程包括用户进程和服务器进程. 一个用户进程只能连接到一个服务器进程 但是在某些oracle配置中,多个用户进程可以共享同一个服务器进程. PAG也被创建,每一个服务器进 ...

  8. oracle中做数据字典,oracle中数据字典是干嘛用的啊

    数据字典中包 含: ● 数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等) ● 数据库为一个方案对象分配了多少空间,以及该对象 ...

  9. oracle 树状结构一直出现不了_深入解析Oracle ASSM 段头块(PAGETABLE SEGMENT HEADER)结构...

    一.概念介绍 Oracle ASSM(Automatic Segment Space Managed)使用位图来管理数据库中的空间,具有管理简单.高并发等优点,ASSM的整体结构是3层位图块+数据块, ...

最新文章

  1. 浅显易懂 Makefile 入门 (03)— 目标文件搜索(VPATH 和 vpath 的区别和使用)、隐含规则
  2. 北京通州拟3年培训技能人才5万人次 服务城市副中心行政办公区等
  3. disconf mysql_disconf-web 安装
  4. 郝蕾怒骂河南人---江湖再起风云,网络哪里有净土
  5. 关于simulink运行中实时查看数据
  6. 元宵诗词各一【明书】
  7. python functiontools_Python: Tools
  8. Android模仿新浪微博(写微博界面)
  9. 散列表的概念及其拉链法和常见的散列函数(C语言)
  10. 5G无线接入网架构及关键技术
  11. Kali使用beef
  12. 1一10到时的英文单词_1英语(1到10的英语单词)
  13. 用户态协议栈之tcp/ip设计
  14. netkeeper客户端_netkeeper
  15. (已解决)ubuntu16.04 Nvidia驱动安装成功却无法检测到外接显示器
  16. java 数据容器 有序_java容器-全览
  17. 【DS实践 | Coursera】Assignment 3 | Applied Plotting, Charting Data Representation in Python
  18. java纯后台实现Excel导出
  19. 河海大学数据库知识点归纳整理
  20. activiti工作流在线表单设计功能(activiti + ueditor + Ueditor Web Form De

热门文章

  1. mysql建表后添加约束_MYSQL建表完成之后添加约束
  2. 和县机电工程学校工业机器人_成都机电工程学校专业有哪些
  3. linux下网络包分析工具下载,Wireshark下载-网络封包分析工具 v3.2.6 官方版 - 下载吧...
  4. endnote无法同步原因_endnote不能同步(endnote retrieving references)的解决方法
  5. python如何访问对象的属性_Python:从存储在字典中的对象访问对象属性
  6. 3.3 计算神经网络的输出
  7. neo4j 增 create
  8. javascript Date对象
  9. slf4j注解log报错_这个注解一次搞定限流与熔断降级:@SentinelResource
  10. python 模拟浏览器selenium_使用Selenium模拟浏览器,实现自动爬取数据