Oracle 11g体系结构
来源:互联网 发布:linux系统无法启动 编辑:程序博客网 时间:2024/04/28 19:07
Oracle体系结构概述
Oracle数据库是一个逻辑概念,而不是物理概念上安装了Oracle数据库管理系统的服务器
实例用于管理和控制数据库
数据库为实例提供数据
一个数据库可以被多个实例装载和打开
而一个实例在其生存期内只能装载和打开一个数据库
数据库的主要功能就是存储数据,数据库存储数据的方式通常称为存储结构,Oracle数据库的存储结构分为逻辑结构和物理存储结构。
逻辑存储结构用于描述Oracle内部组织和管理数据的方式
而物理存储结构用于展示Oracle在操作系统中的物理文件组成情况
启动Oracle数据库服务器实际上是在服务器的内存中创建一个Oracle实例,然后用这个实例来访问和控制磁盘中的数据文件。
当用户连接到数据库时,实际上连接的是数据库的实例,然后由实例负责与数据库进行通信,最后将处理结果返回给用户。
Oracle数据库由多个表空间组成(数据库自身也属于逻辑概念),而表空间又由多个段组成,段由多个数据区组成,数据区又由多个数据块组成。
表空间:数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象
一个表空间由一个或多个数据文件 组成,一个数据文件只属于一个表空;Oracle数据的存储空间在逻辑上表示为表空间,而在物理上表现为数据文件
表空间想相当于操作系统中的文件夹,而数据文件就相当于文件夹中的文件
每一个数据库至少有一个表空间(即SYSTEM表空间),表空间的大小等于所有从属它的数据文件的总和。
1)SYSTEM表空—系统表空间,用于存放Oracle系统内部表和数据字典的数据,如表名、列名、用户名等.
2)SYSAUX表空间是Oracle 11g新增的表空间,是随着数据库的创建而创建的,它充当SYSTEM的辅助表空间,降低了SYSTEM表空间负荷,主要存储数据字典以外的其他数据对象,SYSAUX表空间一般不存储用户的数据,由Oracle系统内部自动维护。
3)UODO表空间-撤销表空间,用于存储撤销信息的表空间
4)USERS表空间-用户表空间,是Oracle建议用户使用的表空间,可以在这个表空间上创建各种数据对象,比如创建表、索引、用户等数据对象。
Oracle系统的样例用户SCOTT对象就存放在USERS表空间中。
Oracle服务器结构
实例可以进一步划分为系统全局区(SGA)和后台进程两部分,其中SGA使用操作系统的内存资源,而后台进程需要使用CPU与内存资源
数据库总包含数据文件、控制文件和重做日志文件,数据库文件存放在硬盘中
程序全局区(PGA)是一个非共享的内存区域,用于管理用户进程的私有资源
前台进程可以在划分为用户进程和服务器进程,它们需要使用CPU与内存资源。
高速数据缓冲区(Database buffer cache):存放着Oracle系统最近访问过的数据块(数据块在高速缓冲区也可称为为缓存块)
当用户向数据库发出请求时(比如检索某一条数据),如果在高速数据缓冲区存在请求的数据,则Oracle系统会直接从高速数据缓冲区中读取数据并返回给用户。
否则,Oracle系统会打开数据文件读取请求的数据。
注意:由于高速数据缓冲区被所有用户共享,只要数据文件中的某些数据块被当前用户或其他用户请求过,那么这些数据块就会被装载到高速数据缓冲区中。
高速数据缓冲区分为以下3个部分:脏数据区、空闲区、保留区
重做日志缓冲区:用于存放对数据库进行修改操作时所产生的日志信息。这些日志信息在写入到重做日志文件之前,首先存放到重做日志缓冲区中,然后,在检查点发生或中作日志缓冲区中的信息达到一定峰值时,最后由日志写入进程将此缓冲区的内容写入到重做日志文件。
共享池:是SGA保留的内存区域,用于缓存SQL语句、PL/SQL语句、数据字典等
共享池包含 库高速缓冲区和 字典高速缓冲区
库高速缓冲区:主要包括共享SQL区和私有SQL区两个组成部分
库高速缓冲区中存放最近用过的SQL语句,PL/SQL语句的文本和执行计划,当下一次执行相同SQL语句,可以直接在库高速缓冲区中找到之前已生成的执行计划
每条被缓存的SQL或PL/SQL语句都被分成两个部分,分别存放在共享SQL区和私有SQL区中
共享SQL区存放SQL或PL/SQL语句的语法分析结果和执行计划
私有SQL区存放SQL语句中的绑定变量、环境和会话等信息,这些信息属于执行该语句的用户的私有信息,其他用户则无法共享这些信息。
字典高速缓冲区:用于存放Oracle系统内部管理所需要的数据字典信息,例如用户名、数据对象和权限等。
大型池:大型池在SGA区不是必需的内存结构,只是某些特殊情况下,实例需要使用大型池来减轻共享池的访问压力。
Java池:用来提供内存空间给Java虚拟机使用,目的是支持在数据库中运行Java程序包
流池:Oracle流池用于数据库与数据库之间进行信息共享。
前台进程
数据字典
数据字典是Oracle存放相关数据库内部信息的地方,其用途是用来描述数据库内部的运行和管理情况。
Oracle数据字典的名称由浅醉和后缀组成,使用“_”连接
dba_:包含数据库实例的所有对象信息
v$_:当前实例的动态视图,包含系统管理和系统优化等所使用的视图。
user_:记录用户的对象信息
gv_:分布式环境下所有实例的动态视图,包含系统管理和系统优化使用的视图
all_:记录用户的对象信息机被授权访问的对象信息
- oracle 11g体系结构
- Oracle 11g体系结构
- Oracle 11g体系结构
- Oracle 11g体系结构
- Oracle体系结构(基于11g)
- ORACLE 11g体系结构概述
- Oracle 11g Oracle基本体系结构
- Oracle 11G RAC 体系结构概述
- 1-Oracle Database 11g 体系结构
- ORACLE RAC 11g的体系结构
- oracle 10g 体系结构
- oracle 10g 体系结构
- Oracle 10g 体系结构
- oracle 10g体系结构
- Oracle 11g系列—4—Oracle的体系结构
- oracle 10g的体系结构
- Oracle Database 10g体系结构
- Oracle 11g笔记——表空间的体系结构
- C++ vector 内存分配与回收机制
- RecyclerView优点
- 【C++】不能将“this”指针从“const vector”转换为“vector & rhs"
- 【WeChat】微信页面弹出键盘后iframe内容变空白
- dao、po、vo等服务器对象解析
- Oracle 11g体系结构
- Qt学习之旅---1.简单控件
- php 函数及内部函数2
- webRTC代码下载及编译
- 深入理解 Ruby 中的 instance_eval 和 class_eval
- JNI NDK (AndroidStudio+CMake )环境集成详解
- java 加密解密
- 如何打造丰富、充满呼吸感的网页设计布局
- Redis 列表(List)