oracle 的一些基本概念

先说一下数据库的两个基本概念:

  • 实例(oracle instance):实例是指一组oracle后台进程(指在UNIX系统)/线程(windows系统)和一个共享的内存区域(指SGA)的集合,是实现访问数据库的手段,换句话说oracle通过使用实例来让用户访问数据库

  • 数据库:指在操作系统上的一组文件的集合

数据库和实例关系:一个实例只能装载一个数据库,而在非集群的情况下,一个数据库也是被一个实例装载(mount);集群环境下则可以由多个实例装载一个数据库

下面说一下SGA:

共享池(shared pool):我们数据字典高速缓存库高速缓存。知道,SQL、PL/SQL在执行的时候,都会进行语法校验与语法分析、编译,尤其是SQL语句还有优化器进行优化,这些都需要耗费时间来处理,所以为了提高性能,ORACLE会把编译完成的SQL语句缓存起来,下次再执行相同的SQL时,就不用再执行这些流程。这些编译好的SQL、PL/SQL放在哪呢?就放在共享池里,更具体来说是放在共享池里的库高速缓存里面,这是一个队列,最近使用的SQL放在队首,长时间没有使用的SQL放在队尾,当缓存达到最大值时,队尾的SQL会被清除掉以存放最新的SQL。数据字典高速缓存,里面存放的是SQL语句执行时的相关数据文件、表、索引、列、用户、其他的数据对象的定义和权限信息。

注:共享池的大小严重影响性能,太大或太小都会造成严重的性能问题。如果SQL里不使用绑定变量,那么SQL不会被重用,切记切记。

数据缓冲区(block buffer cache):或者叫块缓冲区,现在计算机的性能瓶颈其实一直卡在IO上面,磁盘IO速度永远跟不上CPU的计算速度。由于磁盘IO是计算机最慢的部分,所以为了提高性能,就必须减少IO操作。数据缓冲区就是起这样的作用,它将最近从数据文件(data file)里读取的数据放入到数据缓冲区里面,这样当用户查询数据的时候,oracle会先从缓冲区里面查找,如果有该请求所需要的数据,就直接从缓冲区里返回给用户(要知道内存的速度比磁盘可快好几个数量级的),这就叫做缓存命中(Cache Hit),这样就减少了IO次数;如果没有该请求所需要的数据,则称之谓缓存未命中(Cache Miss),然后就从数据文件中读取数据,先放入数据库缓冲区中,再传送给用户。

日志缓冲区(也就是重做日志缓冲区):重作日志记录了数据库对数据库每个数据块的更改,包括对数据的修改和对数据库结构的修改。当我们对数据进行修改时,相关数据并不会马上写入到数据文件中,而是首先生成重做信息,并写入日志缓冲区中,当有以下条件时,LGWR会把这个缓冲区的日志写入到重作日志中去:

  • 每3秒写入一次
  • 用户commit时
  • 缓冲区使用达到1/3时
  • LGWR切换日志文件时

重作日志写满了之后,会进行归档,生成归档日志,有了归档日志和重作日志,即使用数据文件丢失也可以恢复。

Large池:为了进行大的后台进程操作而分配的内存空间,主要指备份恢复、大型IO操作、并行查询等。

数据库的逻辑结构:表空间-->段-->区-->数据块

表空间: 数据库最大的逻辑单位是表空间(tablespace),一个表空间可以由多个数据文件组成(数据文件是指.dbf文件),一个表空间可以由多个数据文件组成,但是一个数据文件只能属于一个表空间。一个数据库至少有一个表空间(SYSTEM表空间),它存放oracle的数据字典,表空间的大小等于构成该表空间的所有数据文件大小之和。

:段是构成表空间的逻辑存储结构,段由一组区组成,这些区可以分布在不同的数据文件中。按照段所存储数据的特征,将段分为若干种类型,主要有数据段、索引段、回退段和临时段。

:由连续的数据块组成。

表空间USER_DATA在物理上由两个数据文件user_data01.dbf和user_data02.dbf两个数据文件组成,在逻辑上由三个段组成。data01分为两个区,data02也分为两个区,段T1由两个区组成,分别分布在不同数据文件中,而T2和II则只有一个区组成。

数据块:是数据库中最小的数据存储单元,一般块的大小是当前操作系统的文件系统块的倍数,这是oracle官方的建议,使用 show parameter db_block_size来查看块大小。

时间: 2024-08-28 11:38:14

oracle 的一些基本概念的相关文章

DBA_Oracle基本体系架构(概念)(每个Oracle开发员和维护员都必须熟知的一些关于Oracle底层结构的概念)

2014-07-26 BaoXinjian 一. Oracle体系结构基本概念 1. Oracle总体结构分为三个部分 第一部分:系统全局区(SGA) 第二部分:程序全局区和后台进程 第三部分:Oracle的文件 2. 从功能角度接那些划分 存储结构 包括: 控制文件.数据文件和日志文件 作用: 由这些文件就构成了Oracle的物理存储结构. 内存结构 包括: 系统全局区(SGA) 和 程序全局区(PGA) 作用: 使用内存最多的是SGA,也是影响数据库系统性能最大的一个参数. 进程结构 包括:

oracle双机热备概念

1. 双机热备概述      双机热备有两种实现模式,一种是基于共享的存储设备的方式,另一种是没有共享的存储设备的方式,一般称为纯软件方式.      基于存储共享的双机热备是双机热备的最标准方案.      对于这种方式,采用两台(或多台)服务器,使用共享的存储设备(磁盘阵列柜或存储区域网SAN).两台服务器可以采用互备.主从.并行等不同的方式.在工作过程中,两台服务器将以一个虚拟的IP地址对外提供服务,依工作方式的不同,将服务请求发送给其中一台服务器承担.同时,服务器通过心跳线(目前往往采用

Oracle数据库的基本概念(转)

一.数据库 我们在安装Oracle数据库时,全局数据库名:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名. 启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等.我们用这些高级权限账号登陆就可以在数据库实例中创建表空间,用户,表了. 二.数据库实例 用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,

Oracle 表空间的概念

表空间 在数据库系统中,存储空间是较为重要的资源,合理利用空间,不但能节省空间,还可以提高系统的效率和工作性能. Oracle 可以存放海量数据,所有数据都在数据文件中存储.而数据文件大小受操作系统限制,并且过大的数据文件对数据的存取性能影响非常大.同时Oracle 是跨平台的数据库, Oracle 数据可以轻松的在不同平台上移植,那么如何才能提供统一存取格式的大容量呢? Oracle 采用表空间来解决.表空间只是一个逻辑概念,若干操作系统文件(文件可以不是很大)可以组成一个表空间.表空间统一管

ORACLE各种对象、概念及关系整理(一文读懂)

下面是我整理(抄袭)的一些Oracle数据库相关概念对象的理解,如有疏漏,欢迎指正.至于整理这篇文章的目的:主要是网上的内容太散了,这样整理一遍可以加深理解,也便于后续查阅.就我的理解:下述内容应该可对10g,11g,12c都适用.更新的版本没用过. Oracle DataBase是一款关系型数据库管理系统,很多时候,我们会把那个承载我们核心数据的系统笼统地成为数据库服务器,但从严格意义上来讲Oracle DataBase是由两个部分组成: 其中: 数据库指的是用户存储数据的一些物理文件,数据库

oracle数据库权限之一——概念

Oracle系统权限和角色权限都对用户的权限作了相应的限制,这也在一定程度上保护了数据库的访问安全.下面就让我们来一起了解一下. Oracle系统权限 Oracle系统权限需要授予者有进行系统级活动的能力,如连接数据库,更改用户会话.建立表或建立用户等等.你可以在数据字典视图SYSTEM_PRIVILEGE_MAP上获得完整的系统权限. 对象权限 某一个用户可对其中的对象,直接授权给其它用户. 需注意的是,当某一个用户userA拥有查询其它用户userB下某个表tableA的视图viewA时,如

Oracle sequence的基本概念与理解

1.如何查看sequence的定义 2.dba_sequences相关字的定义 3.如何修改sequence ********************************************************************************************************************************************************** ****************************************

Oracle包的概念

转自:http://www.cnblogs.com/lovemoon714/archive/2012/02/29/2373695.html 1.为什么要使用包?       答: 在一个大型项目中,可能有很多模块,而每个模块又有自己的过程.函数等.而这些过程.函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起 的,即Procedures中),这些非常不方便查询和维护,甚至会发生误删除的事件.所以通过使用包就可以分类管理过程和函数.     而且在包中还可以自定义自定义类型,从而在过程

Oracle core06_latch&lock

lock and latch 在oracle中为了保护共享资源,使用了两种不同的锁机制lock和latch,这两种锁有明显不同点: 1,lock和pin,采用的是队列的方式,先来先服务的策略,latch和mutex,采用的是抢占的方式,fast fail模式2,lock可以hold的时间比较长,而latch时间会非常的短3,lock主要用户锁定对象,面向用户,latch主要锁定的是内存,面向系统 理解这两种锁的设计思想,可以应用在实际的生产过程中,首先: 1,这两种锁的粒度不同,一个粒度粗,一个