Oracle实例和Oracle数据库概述

对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库。这两概念不同于SQL sever下的实例与数据库,当然也有些相似之处。只是在SQL server我们根本不需要花费太多的精力去搞清SQL实例和数据库,因为它简单易于理解。下面简要说明一下SQL实例、数据库,更多的是讲述Oracle下的实例及数据库。

一、SQL server中的实例与数据库

1.SQL中的实例指的是一个SQL server服务器上仅有一个缺省实例。缺省实例名即为机器名ServerName (或IP),如果在同一台机器上再安装SQL server,我们可以对实例命名如ServerName/InstanceName。

即一台SQL server服务器上可以存在多个不同的实例。一个实例下可以存在多个不同的数据库。

对于不同实例下的数据库的访问,使用ServerName/InstanceName:PortNo即可实现访问,缺省实例 为ServerName:PortNo。

2.对不同的实例配置IP地址,相关的访问协议,端口等等。

3.实例的可访问性需要启动该实例对应的相关服务。此处需要注意的是实例名和实例的服务名并不是相 同的。缺省的实例的服务名为MSSQLSERVER,而命名实例的服务名为MSSQL$INSTANCE_NAME。

4.实例的相关功能性的设置可以通过外围应用配置来实现。

5.上述完成后,即可实现对数据库的访问。

二、Oracle 实例

一个Oracle Server由一个Oracle实例和一个Oracle数据库组成。

即:Oracle Server = Oracle Instance + Oracle Database

Oracle实例

包括了内存结构(SGA)和一系列后台进程(Background Process),两者合起来称为一个Oracle实例

即:Oracle Instance = SGA + Background Process

Oracle内存结构

包含系统全局区(SGA)和程序全局区(PGA)

即Oracle Memory Structures = SGA + PGA

SGA由服务器和后台进程共享

PGA包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA是 只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。即由服务器进程产生。

1.SGA

系统全局区SGA,SGA = 数据缓冲区+ 重做日志缓冲区+ 共享池+ 大池+ Java 池+ 流池

系统全局区是动态的,由参数SGA_MAX_SIZE决定。

查看当前系统的SGA大小:show parameter sga_max_size;

要修改:alter system set sga_max_size=1200m scope=spfile;

因为实例内存的分配是在数据库启动时进行的,所以要让修改生效,要重启数据库。

ORACLE 10G 引入了ASMM(自动共享内存管理),DBA只需设置SGA_TARGET,ORACLE就会自动的对共享池、JAVA池、大池、数据缓冲区、流池进行自动调配。取消自动调配就是sga_target设为。

数据缓冲区(Database buffer cache):存储从数据文件中获得的数据块的镜像

大小由db_cache_size 决定

查看:show parameter db_cache_size;

设置:alter system set db_cache_size=800M;

重做日志缓冲区(Redo log buffer):对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将它写入磁盘,大小由LOG_BUFFER决定

共享池(Shared pool):是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据

字典缓存组成,它的作用是存放频繁使用的sql,在有限的容量下,数据库系统根据一定的算法决

定何时释放共享池中的sql。

库缓存大小由shared_pool_size 决定

查看:show parameter shared_pool_size

修改:alter system set shared_pool_size=120m;

数据字典缓存:

存储数据库中数据文件、表、索引、列、用户和其它数据对象的定义和权限信息

大小由shared_pool_size 决定,不能单独指定

大池(Large pool):是一个可选的区域,用于一些大型的进程如Oracle的备份恢复操作、IO服务器进程等

Java 池:该程序缓冲区就是为Java 程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小

流池(Stream pool):被Oracle流所使用

2.PGA

是为每个用户进程连接ORACLE数据库保留的内存

进程创建时分配,进程结束时释放,只能被一个进程使用

PGA包括了以下几个结构:

()排序区

()游标状态区

()会话信息区

()堆栈区

由参数:pga_aggregate_target 决定

3.几类进程:用户进程,服务器进程,后台进程,其它可选进程

用户进程

在用户连接数据库产生,请求oracle服务器连接,必须要先建立一个连接,不会直接和oracle服务器连接

服务器进程

当连接实例并建立用户会话时产生,独立服务器或者提供共享服务器都能产生

后台进程

维持物理和内存之间的联系,用来管理数据库的读写,恢复和监视等工作。

Server Process主要是通过他和user process进行联系和沟通,并由他和user process进行数据的交换。

在Unix机器上,Oracle后台进程相对于操作系统进程,也就是说,一个Oracle后台进程将启动一个操作系统进程。

在Windows机器上,Oracle后台进程相对于操作系统线程,打开任务管理器,我们只能看到一个ORACLE.EXE的进程,但是通过另外的工具,就可以看到包含在这里进程中的线程。

      必须要有的后台进程

DBWn        -->数据库写进程

PMON        -->程序监控进程

SMON        -->系统监控进程

LGWr        -->日志写进程

CKPT        -->检查点进程

可选进程:

ARCN        归档进程

RECO

Snnn

pnnn

DBWn(数据库写进程)

负责将修改过的数据块从数据库缓冲区高速缓存写入磁盘上的数据文件中

写入条件:

发生检查点

脏缓存达到限制

没有自由的缓存

超时发生

表空间离线

表空间只读

表被删除或者截断

开始备份表空间

可以修改数据写进程的数量

alter system set db_writer_processes=3 scope=spfile;

PMON(程序监控进程)

清除失效的用户进程,释放用户进程所用的资源。

如PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源。

清除失败的进程

回滚事务

释放锁

释放其他资源

SMON(系统监控进程)

检查数据库的一致性,当启动失败时完成灾难恢复等

实列恢复时,前滚所有重做日志中的文件,打开数据库为了用户能访问,回滚未提交的事务,释放临时表空间

清除临时空间,聚结空闲空间,从不可用的文件中恢复事务的活动,OPS中失败节点的实例恢复

清除OBJ$表

缩减回滚段

使回滚段脱机

LGWr(日志写进程)

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

将重做日志缓冲区中的更改写入在线重做日志文件

条件:

提交的时候(commit)

redo log buffer达到1/3满

每隔3秒

有大于1MB 重做日志缓冲区未被写入磁盘

DBWR需要写入的数据的SCN号大于LGWR 记录的SCN号,DBWR 触发LGWR写入

超时

在dbwr进程些之前写日志

CKPT(检查点进程)

DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一致,CKPT进程负责同步数据文件,

日志文件和控制文件

CKPT会更新数据文件/控制文件的头信息

条件:

在日志切换的时候

数据库用immediate ,transaction ,normal选项shutdown数据库的时候

根据初始话文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的设置的数值来确定

用户触发

ARCN(归档进程)

在每次日志切换时把已满的日志组进行备份或归档

条件:

数据库以归档方式运行的时候

RECO

负责解决分布事物中的故障。Oracle可以连接远程的多个数据库,当由于网络问题,有些事物处于悬而未决的状态。

RECO进程试图建立与远程服务器的通信,当故障消除后,RECO进程自动解决所有悬而未决的会话。

Server Process(服务进程)

分为专用服务进程(Dedicated Server Process)和共享服务进程(MultiTreaded Server Process)

时间: 2024-11-03 16:14:39

Oracle实例和Oracle数据库概述的相关文章

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

--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --========================================== /*     对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库.这两 概念不同于SQL sever下的实例与数据库,当然也有些相似之处.只是在SQL server我们根本不需要花费太 多的精力去搞清

Oracle实例恢复概述

一.Oracle实例失败 Oracle实例失败多为实例非一致性关闭所致,通常称为崩溃(crash).实例失败的结果等同于shutdown abort. 实例失败的原因 电源负载故障 硬件故障 后台进程失败 异常关闭数据库 实例失败后的状况 数据库可能丢失已提交的事务以及存储了未提交的事务,导致数据库出现不一致的情况 解决方案 使用startup 重新启动实例.实例实现自动恢复,根据联机日志文件前滚提交的事务,回滚未提交的事务 查看告警日志.跟踪日志等找出出现故障的原因 二.检查点 检查点在体系结

使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例

--========================================== --使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例 --========================================== /* 一.管理组件     Oracle 10g数据库管理包含三个组件,本文主要介绍Database Control,SQL*Plus及iSQL*Plus        Database instance(数据库实例)  -->系统使用的后台进

Oracle 实例恢复

--======================= -- Oracle 实例恢复 --=======================   一.Oracle实例失败     Oracle实例失败多为实例非一致性关闭所致,通常称为崩溃(crash).实例失败的结果等同于shutdown abort.     实例失败的原因         电源负载故障         硬件故障         后台进程失败         异常关闭数据库     实例失败后的状况         数据库可能丢失已提

Oracle 补丁全集 (Oracle 9i 10g 11g Path)

******************************************   Oracle 补丁全集 (Oracle 9i 10g 11g Path) ******************************************        俗话说,金无赤足,人无完人. Oracle 的补丁也是层出不穷.下面将其罗列,或许你就用到了.     从 Oracle 官方网站下载需要使用 Metalink 帐号,下面的下载链接可以直接使用迅雷来下载,对于没 Metalink 帐号

Oracle实例与数据库的概念详细解释

刚接触ORACLE的人肯定会对实例和数据库感到困惑,实例到底代表些什么?为什么会有这个概念的出现? ORACLE实例 = 进程 + 进程所使用的内存(SGA)实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态! 数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件 数据库是永久的,是一个文件的集合. ORACLE实例和数据库之间的关系 1.临时性和永久性 2.实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义 3.一个实例在其生存期

Oracle实例恢复和介质恢复

Oracle恢复基础概述  一.恢复解决方案 错误类型及解决方案 错误分类 恢复解决方案 介质失败 如果是少量的块损坏,使用块介质恢复:如果是大量的块.数据文件.表空间的损坏,可能需要对损坏的数据文件或者表空间执行完全恢复:如果是归档Redo日志文件或者联机Redo日志文件的丢失,那么只需要不完全恢复方式. 逻辑损坏 如果是程序员错误导致出现的问题,可通过补丁应用修复问题.对于无法修复的问题,也可采用介质恢复手段来恢复数据. 用户错误 根据不同用户错误,选择不同的Flashback技术恢复,使用

[Oracle] Ora2html--收集Oracle数据库信息

oracle|数据|数据库  整理:Fenng 日期:25-Oct-2004 出处:http://www.dbanotes.net版本:0.91 有的时候,作为一个DBA,可能需要收集部署好的Oracle数据库信息.硬件配置.操作系统情况.软件安装路径.数据库用户信息......一项一项做下来也够头疼的.如果有工具能够自动给我们收集就方便多了.ora2html就是这样一个方便的小工具.ora2html简介ora2html ( 来自 http://ora2html.sourceforge.net/

使用dump、BBED等多种工具结合恢复ORACLE实例的过程

---友情提示,内容较多,可以从博文左上的+目录选择小节方便阅读. 实验思路:  --实验相关TRACE文件:http://download.csdn.net/detail/q947817003/6646723 1.数据库OPEN,,做DML操作不提交,查看检查点. 2.SHUTDOWN ABORT并重启到MOUNT并查询检查点 3.DUMP控制文件查看CHECKPOINT_CHANGE#/RBA 4.DUMP数据文件查看CHECKPOINT_CHANGE#/RBA,与DUMP控制文件对比 5.