`

oracle结构详解(二)

阅读更多

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: 数据库包含了系统文件,也称数据库文件,其提供了用以存储数据库信息的实际物理存储区域,用数据文件保证了数据一致性.并在当实例发生失败时恢复数据库.

分享到:
评论

相关推荐

    Oracle体系结构详解

    #### 二、Instance结构详解 ##### 1. 内存结构 主要包括SGA(System Global Area)和PGA(Program Global Area)。 - **PGA**: - PGA是当程序运行时为Server Process分配的内存区域。 - 主要用于排序、数据挖掘...

    oracle 体系结构详解

    Oracle体系结构是Oracle数据库的核心,涵盖了数据库运行的基本原理和组成部分。Oracle数据库体系结构非常复杂,主要包括实例和数据库两个方面。Oracle实例是一个运行中的数据库系统,它由系统全局区(SGA)和一组...

    Oracle 12c数据库体系结构图文详解手册

    二、Oracle 服务器的总体结构 Oracle 服务器的总体结构由实例(Instance)和数据库(Database)两大部分组成。实例是一组内存结构和 Oracle 后台进程的集合;数据库在物理上由多个操作系统文件组成,主要包括数据...

    Oracle数据块结构分析说明BLOCK结构详解

    Oracle是业界广泛使用的大型关系型数据库管理系统,其核心组成部分之一就是数据块结构(Block)。数据块是Oracle数据库中最小的存储单位,是操作系统中读写数据的基本单位,也是数据库实例中逻辑上存储数据的基本...

    Oracle体系结构详解.pdf

    Oracle 体系结构详解 Oracle 体系结构是围绕 Oracle Server 架构展开的, Oracle Server 由 Instance 和 Database 组成。一个 Instance 只能对应一个 Database,特殊情况下一个 Database 可以有多个 Instance(RAC...

    Oracle 笔记 详解 资料 用例

    这份"Oracle笔记详解资料用例"涵盖了Oracle数据库的核心概念、安装配置、SQL语言、表和索引、存储结构、备份恢复、性能优化等多个方面,是学习和掌握Oracle数据库的宝贵资源。 首先,Oracle数据库的基础部分包括...

    Oracle审计功能详解

    "Oracle审计功能详解" Oracle审计功能是指Oracle数据库中的一种安全机制,用于记录和跟踪用户对数据库的访问和操作行为。这种机制可以帮助DBA和安全管理员发现和防止不正当的访问和操作。 一、审计分类 Oracle...

    ORACLE 体系结构详解

    Oracle数据库是世界上最广泛使用的数据库管理系统之一,其复杂而强大的体系结构使其能够处理各种规模的企业级数据。本文将深入解析Oracle 8i及后续版本的体系结构,帮助初学者理解其核心组件。 首先,Oracle实例是...

    oracle实战详解

    ### Oracle实战详解 #### Oracle数据库系统概述 Oracle数据库系统是由美国Oracle公司提供的,以其核心的分布式数据库技术闻名,是市场上非常流行的客户/服务器(CLIENT/SERVER)架构或B/S架构的数据库之一。Oracle...

    Oracle PLSQL详解 宝典

    《Oracle PLSQL详解 宝典》是一本专为IT专业人士准备的深度学习Oracle数据库中的PL/SQL编程语言的指南。本书旨在帮助读者深入理解PL/SQL的各个方面,从而能够熟练地利用这一强大的工具来解决实际工作中遇到的问题。...

    ORACLE索引详解及SQL优化

    总的来说,Oracle索引详解及SQL优化是一个深度广度兼具的主题,需要结合实际数据库结构和业务需求,灵活应用各种索引类型和优化策略,以实现数据库性能的最大化。通过深入学习和实践,你可以更好地驾驭Oracle数据库...

    oracle实战详解-任亮.docx

    实例由后台进程和内存结构组成,一个数据库可以有多个实例。用户是在特定实例下创建的,不同实例可以有同名用户。表空间是逻辑上的数据文件集合,数据库被逻辑地划分为一个或多个表空间,每个表空间包含一组相关的...

    oracle数据库详解PPT

    Oracle基本体系结构.ppt oracle命令使用大全.doc oracle数据库安装.ppt oracle数据库创建.ppt oracle数据库对象.ppt oracle异常及触发器.ppt plsql过程及函数.ppt PLSQL介绍.ppt PLSQL控制结构.ppt PLSQL...

    oracle实验二 体系结构、存储结构与各类参数

    ### Oracle实验二:体系结构、存储结构与各类参数 #### 实验目的 1. **理解Oracle体系结构**:包括逻辑组件如表空间、段、区等;物理组件如数据文件、控制文件、重做日志文件等。 2. **了解初始化参数文件以及初始...

    Oracle 体系结构和后台进程详解

    Oracle 体系结构和后台进程详解 ,来自官方的文档,很好

    ORACLE_PLSQL编程详解

    Oracle PL/SQL编程详解 PL/SQL,全称Procedure Language & Structured Query Language,是Oracle数据库专有的一个高级数据库程序设计语言,它扩展了SQL语言的功能,提供了过程化编程的能力,使得开发者能够在数据库...

    Oracle 体系结构 说明

    【Oracle 体系结构详解】 Oracle数据库的体系结构是其高效管理和优化数据操作的关键。这个复杂的架构设计主要目的是为了有效地管理数据库系统中的稀缺资源,特别是内存,以提高性能并确保数据的完整性和可用性。 1...

    oracle 启动过程详解

    Oracle 启动过程详解 Oracle 启动过程是 Oracle 数据库的核心组件之一,对于初识 Oracle 的人来说,了解 Oracle 启动过程非常重要。本文将详细解释 Oracle 启动过程的三个步骤:启动数据库到 Nomount 状态、启动...

Global site tag (gtag.js) - Google Analytics