- 浏览: 239410 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
g_man1990:
g_man1990 写道在同一个文件夹下,jar包是按顺序从上 ...
tomcat中class和jar的加载顺序 -
g_man1990:
在同一个文件夹下,jar包是按顺序从上到下依次加载,按什么顺序 ...
tomcat中class和jar的加载顺序 -
上凌九霄:
谢谢
tomcat中class和jar的加载顺序 -
waitgod:
好文,值得收藏!!
HotSpot是什么? -
xiaomogui:
sd6733531 写道楼主,我想问点问题》
1.mixed, ...
HotSpot是什么?
1. Oracle数据库启动
. Oracle首先要在内存中获取、划分、保留各种用途的区域,运行各种用途的后台,即:创建一个实例(instance);
. 然后由该实例装载(mount)、打开(open)数据库;
. 最后由这个实例来访问和控制数据库的各种物理结构.
当用户连接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过实例来连接、使用数据库。所以实例是用户和数据库之间的中间层。
2. 例程与数据库的区别
. 数据库指的是存储数据的物理结构,总是实际存在的;
. 实例则是由内存结构和一系列进程组成,可以启动和关闭。是存取和控制数据库的软件机制,它由系统全局区(System Global Area,简称SGA)和后台进程组成。
一台计算机上可以创建多个Oracle数据库,一个数据库上可以有多个实例。为了使实例间不混淆,每个实例都称为:SID(SystemIDentify)加以区分。
3. Oracle数据库的三种重要结构SGA 和 PGA,后台进程
SGA(System Global Area,系统全局区)包括:数据高速缓存,日志高速缓存,共享池,大池,java池,SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。
每个实例都只有一个SGA.它是不同用户进程与服务进程进行通信的中心,数据库的各种操作主要在SGA中进行,所以称其为系统全局区.创建例程时,Oracle为SGA分配内存;终止例程时,释放SGA所占用的内存.
数据高速缓存(Database Buffer Cache)
保存最近从数据文件中读取的数据块,其中的数据被所有用户共享.
两个参数影响DBC:
DB_BLOCK_SIZE 缓冲区数据块大小
DB_BLOCK_BUFFERS 缓冲区数据块个数
初次访问数据时,Oracle将读取磁盘上的数据文件,将数据放入数据高速缓存,再处理数据;如果数据已经位于数据高速缓存中时,Oracle直接操作数据。
DBC的缓存块分为三类:
脏缓存块 存放已经被修改过的缓存块. 当SQL修改某个缓存块中的数据,则这个缓存块被标记为脏缓存块空闲缓存块 等待写入数据的空闲缓存块.
命中缓存块 最近正在被访问的缓存块.读数据入DBC之前,先在LRU中搜索空闲缓存块;在搜索过程中如果发现脏缓存块,则将其移入DIRTY;找到足够的空闲块,将所有数据读入;如果空闲块不足,则暂停搜索,Oralce立刻启动DBWR进程,将DIRTY中的脏缓存块数据写入数据文件释放足够的空闲缓存块。
当执行DML(Data Manipulation Language, 数据操纵语言)如:update、delete、insert或者create、alter、drop 等语句时,Oracle都会为这些操作生成重做记录.重做日志高速缓存就是用于存储重做记录的缓存.为提高效率,重做记录并不直接写入磁盘的重做日志文件,而是先写入重做日志缓存;
当重做日志缓存中的重做记录达到一定数量时,由LGWR进程写入重做日志.(先内存后磁盘)。当2个(至少2个)重做日志切换时,由ARCH将重做日志中的数据写入归档日志文件,以做备份.
4. 共享池(Shared Pool)
共享池保存了最近执行的SQL语句、PL/SQL程序和数据字典信息,是对SQL语句和PL/SQL程序进行语法分析、编译、执行的内存区.共享池由库缓存和数据字典缓存组成
参数SHARED_POOL_SIZE 确定共享池的大小
数据字典区(Dictionary cache)用于存放数据字典信息行。
Oracle DBMS执行各种SQL、PL/SQL之前,要对其进行语法上的解析、对象上的确认、权限上的判断、操作上的优化等一系列操作,并生成执行计划。
库缓存保存了已经解析的SQL和PL/SQL。
5. 数据字典缓存
在Oracle运行过程中,Oracle会频繁的对数据字典中的表、视图进行访问,以便确定操作的数据对象是否存在、是否具有合适的权限等信息。
数据字典缓保存了最常用的数据字典信息。数据字典缓存中存放的记录是一条一条的,而其他缓存区中保存的是数据块.
6. 大池
大池用于需要大内存操作提供相对独立的内存空间,以便提高性能。
大池是可选的内存结构。 DBA可以决定是否需要在SGA中创建大池。
需要大池的操作:
数据库备份和恢复
大量排序的SQL语句
7. java池
8i以后提供的对Java的支持,用于存放Java代码、Java程序等.
一般不小于20M,以便虚拟机运行.
8. PGA(Program Global Area) 和后台进程
PGA是用户进程连接到数据库,并创建一个对应的会话时,由Oracle为服务进程分配的,专门用于当前用户会话的内存区。由排序区,会话区,游标区,堆栈区组成
PGA是非共享的,而SGA是共享的。PGA大小由操作系统决定,并且分配后保持不变; 会话终止时,自动释放PGA所占的内存
排序区: 执行order by、group by等包含排序操作的SQL语句时所产生的临时数据.Oracle将准备排序的数据先临时存储到排序区中,并在排序区中排序,然后将排序好的数据返回给用户.
会话区:保存会话所具有的权限、角色、性能统计信息.
游标区:当运行带有游标(course)的PL/SQL语句时,Oracle会在共享池中为该语句分配上下文(Context),游标实际上是指向该上下文的指针。
堆栈区:保存会话中的绑定变量、会话变量以及SQL语句运行时的内存结构信息。
Oracle包括用户进程和Oracle进程;Oracle进程又包括服务器进程和后台进程
用户进程:当用户运行一个应用程序时,就建立一个用户进程。处理用户进程的请求;包括分析SQL命令并生成执行方案。从数据缓冲存储区中读取数据。将执行结果返回给用户。
后台进程:为所有数据库用户异步完成各种任务;包括
DBWR 数据库写进程
LGWR 日志写进程
CKPT 检查点写进程
SMON 系统监控进程
PMON 进程监控进程
ARCH 归档进程
RECO 恢复进程
LCKn 封锁进程
9. DBWR(Data Base Writer)
将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。该进程在启动实例时自动启动。
启动DBWR进行写操作的条件:
相当于参数DB_BLOCK_WRITE_BATCH值的一半。一个进程在LRU列表中扫描指定数目的缓冲块,未找到空闲缓冲块。
参数DB_BLOCK_MAX_SCAN_CNT确定扫描数目。
出现超时
3秒钟内该进程未活动,则该进程将在LRU列表中查找尚未查找的缓冲块,这组缓冲块的数目相当于参数DB_BLOCK_WRITE_BATCH值的2倍。
出现检查点。
10. 检查点(Checkpoint) :
在检查点出现期间,DBWR进程将数据缓冲区中的所有脏缓冲块写到数据文件中,
LGWR进程将日志缓冲区中的所有记录项写到日志文件中,以确保上一个检查点至今修改过的所有数据块都被写到磁盘上。
Checkpoint(检查点)的任务
预定数目的记录项被填满。
参数LOG_CHECKPOINT_INTERVAL确定了预定数目。
设置指定的秒数。
参数LOG_CHECKPOINT_TIMEOUT确定了间隔秒数。
每个日志开关处
关闭实例时
11. LGWR(Log Writer)
将日志缓冲区中的所有记录项写到日志文件中。该进程在启动实例时自动启动。
启动LGWR进行写操作的条件:
用户进程提交一个事务(Commit)
日志缓冲区达到1/3范围
DBWR对一个检查点需要清除缓冲块
出现超时(3秒钟内未活动,则进行一次写操作。)
12. CKPT(检查点进程)
在控制文件中记录检查点。参数CHECKPOINT_PROCESS 确定了检查点的启动/不启动状态。
若CKPT进程不启动,则该进程的工作将由LGWR进程代劳。(如果数据库的数据文件过多,这样操作会降低系统性能。)
ARCH(Archiver)
在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。
LOG_ARCHIVE_START
确定了该进程的启动/不启动状态
LOG_ARCHIVE_DEST
当数据库在归档模式下操作时,该参数确定了日志文件的归档目标。
LOG_ARCHIVE_FORMAT
当数据库在归档模式下操作时,该参数确定了归档日志文件的缺省文件名格式。
SMON(System Monitor,系统检视进程)
负责完成自动实例恢复。该进程在启动实例时自动启动。
PMON(Process Monitor,进程检视进程)
撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。
RECO(Recover,恢复进程)
在分布式操作的情况下,恢复一个事务的失败。
LCKn(Lock,锁进程)
在并行服务器系统间加锁,最多可加10个锁,分别为LCK0,LCK1,,LCK9。
发表评论
-
乐观锁和悲观锁
2012-03-02 00:18 0在Web项目中,离线并发 ... -
oracle之connect by
2012-03-02 00:07 0// 输出 1 - 12 select rownum ... -
lpad函数
2012-03-02 00:01 0lpad函数,在字符串的左侧添加指定字符串。 用法:l ... -
flashback
2012-03-01 23:55 0如果对数据库进行了更新或者删除操作 ,如果想回退到操作 ... -
ojdbc6.jar
2011-11-15 21:10 0websphpere 配置oracle驱动jar包! -
oracle小数点前的零
2011-11-09 20:32 0在oracle中 , 小于1的小数(如0.12)如果是numb ... -
oracle三范式
2011-10-19 23:57 0范式:英文名称是 Normal Form,它是英国人 E.F. ... -
oracle列名称大小写
2011-10-19 23:47 0oracle的列名是不区分大小写的,但是当我们给列起别名的时候 ... -
oracle日志管理
2011-02-05 13:23 01. 新建一个oracle实例 开始-->所有程序 ... -
oracle约束基础
2011-02-05 13:11 0约束 保证数据满足一定的要求 非空约束 :不允许 ... -
oracle索引基础
2011-02-05 13:08 0-- 查看索引select * fro ... -
oracle数据库忘记管理员密码
2011-02-05 12:52 0被授予SYSOPER/SYSDBA系统权限的用户才存在于密码 ... -
oracle基础之sql基础知识
2011-01-05 01:42 16631. sql(Structured Query Languag ... -
oracle基础之pl/sql基础知识
2011-01-05 01:31 23181. 块(Block)是pl/sql的基本程序单元,编写pl/ ... -
pm_trigger_system_function 草稿
2011-01-03 02:00 0-- execute immediate -- execut ... -
EXP-00056: 遇到 ORACLE 错误 6550
2010-12-30 00:28 6753oracle10g的客户端导出oracle9i的数据库数据以上 ... -
ORA-01403 no data found
2010-12-28 01:16 2996select t.name into v_name from ... -
RemoteOperationException: ERROR: Wrong password for user
2010-12-21 01:15 2540RemoteOperationException: ... -
oracle基础之数据字典
2010-12-07 22:52 12941.数据字典概念 数据字典是Oracle数据库的核 ... -
oracle基础之存储结构
2010-12-07 22:52 13201. 存储结构 Oracle数据库的存储结构分为逻辑存储结 ...
相关推荐
oracle基础教程 课程说明 1 课程介绍 1 课程目标 1 相关资料 1 第1章 ORACLE数据库概述 2 1.1 产品概述 2 1.1.1 产品简介 2 1.1.2 基本概念 3 1.2 ORACLE系统结构 4 1.2.2 ORACLE物理结构 4 1.2.3 系统全局区 6 ...
java语言 java基本编程 -> j2EE编程 数据库的能力 sqlserver -> ORACLE 数据结构 训练编程思维方式 实际问题到计算机问题的转化 linux 熟悉一种新的操作系统 软件工厂 学到的知识 去做一个项目 课程安排 ...
2.1 Oracle数据库简介 了解 2.2 Oracle数据库安装与配置 了解 2.3 Oracle数据库体系结构...Oracle的物理存储结构和逻辑存储结构在管理上相互独立,即物理结构的变化不会改变逻辑结构的组织方式,从而使系统便于移植。
Oracle入门--Oracle的概念和术语.rar Oracle入门基本知识一点通 oracle基础知识之-物理数据库结构(10g) oracle基础知识之-逻辑结构(10g)
玩转oracle全套教程 韩顺平 第1讲 oracle基础介绍 4 韩顺平.玩转oracle第2讲.oralce安装 4 韩顺平.玩转oralce第3讲.oracle的基本使用 4 韩顺平.玩转oralce第4讲.oracle用户管理(1) 4 韩顺平.玩转oralce第5讲.oracle...
本书内容全面、浅显易懂,作者在介绍每个基本概念之前均以生活中的一个实例进行比喻,使读者在一种轻松、自然的情境下掌握Oracle9i数据库的基本概念,了解数据库管理员的职责和日常工作,数据库的组成、结构和系统的...
Oracle数据库系统是一个复杂的软件系统。如果不了解其内部的结构原理及关系,就不可能设计和编写出高质量的应用软件系统,也不...为了给以后章节的打好基础,本章简要给出 ORACLE 8 /ORACLE8i数据库系统结构的描述。
为了给以后章节的打好基础,本章简要给出 ORACLE 8 /ORACLE8i数据库系统结构的描述。 §2.1 术语 l数据库块(BLOCK) ORACLE 数据库中的最小存储和处理单位,包含块本身的头信息数据或PL/SQL代码。 ORACLE 块的大小...
了解oracle数据库体系结构; 学会安装oracle 10g; 会进行数据库的基本操作(建立表空间、建立用户、数据的导入导出); 目录: 学习方法及甲骨文简介; oracle体系结构; oracle的安装; oracle基本管理;
目录 全面认识Oracle数据库 1 Oracle的数据倒入EXCEL中的方法 3 Oracle 9i如何设置时间间隔型数据 3 配置Oracle监听器 5 Oracle数据库基本操作 6 影响Oracle系统性能初始化参数 9 ...oracle数据库优化基础 97
创建表空间,创建表结构,对于表的增删改查等基本操作,只有基础部分,没有进阶,表结构与MySQL基本一致,只有表空间有所不同
《Oracle》作为世界范围内性能最优异的...主要包括:关系数据库设计、Oracle数据库的基本体系结构、存储管理、管理控制文件和日志文件、SQL语言基础、存储过程、表、模式对象管理、安全管理以及基本的备份与恢复等
4.1.1 PL/SQL的基本结构 4.1.2 PUSQL注释 4.1.3 PL/SQL字符集 4.1.4 PL/SQL数据类型 4.1.5 PIJSQL变量和常量 4.1.6 PL/SQL语句控制结构 4.1.7 PL/SQL表达式 4.2 PL/SQL的游标 4.2.1 基本原理 ...
instance (实例)、数据文件、日志文件、参数文件、数据文件与表空间的关系 3、2是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作 ,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此...
普及一下oracle的基础知识,总结一下,oracle 是由实例和数据库组成。结构如下: oracle数据库由实例、数据库组成: * 数据库由数据文件(包含oracle 数据、索引、表结构等数据)、控制文件(包括每个表的操作信息...
1 Oracle 体系结构组件 目标1-2 基本组件概览1-3 Oracle 服务器1-5 Oracle 例程1-6 建立连接和创建会话1-7 Oracle 数据库1-9 物理结构1-10 内存结构1-11 系统全局区1-12 共享池1-15 库高速缓存1-16 数据字典高速缓存...
Oracle之所以得到广大用户的青睐,其主要原因在于:支持多用户、大事务量的事务处理、提供标准操作接口、实施安全性控制和完整性控制、支持分布式数据处理、具有可移值性、可兼容性和可连接性。 (7)
基础和管理 1天 Oracle结构组件 Oracle服务器入门 管理Oracle实例 建立数据库 管理控制文件 管理表空间和数据文件 管理撤销数据 管理密码安全和资源 管理用户 管理权限 管理角色 基础管理+性能优化 1天 备份与恢复...
主要包括:关系数据库设计、Oracle数据库的基本体系结构、存储管理、管理控制文件和日志文件、SQL语言基础、使用SQL*Plus、PL/SQL程序设计、存储过程、触发器和程序包、表、模式对象管理、安全管理以及基本的备份与...