Oracle数据库简单介绍

  对象关系型数据库

  重点:一致性+性能

      一致性优于性能

  处理模型:C/S模型

        Client:用户和用户进程

                Server:服务器进程,实例,数据库本身

  概念:实例 instance 后台进程+共享内存 用于管理和控制数据库

            数据库 database 物理文件的集合,为实例提供数据,(三类文件)数据文件,控制文件,日志文件,参数文件等

数据库服务器 database server 软件+实例+数据库

  Oracle软件+Oracle数据库

       软件放在服务器本地,数据库存放在存储上

实例

  Oracle数据库启动后首先在内存中划分一片空间,并启动一些进程,而内存和进程统称为Oracle数据库实例,数据库关闭后,实力也就会被关闭。

  一个数据库可以对应多个实例,但一般都是双数的,1:2/1:4等等,用户可以通过连接到实例去访问数据库,可以实现负载均衡,提高并发等,而这种结构叫做Oracle的RAC技术

连接:从客户端到oracle实例的一条物理路径(网络连接、IPC机制连接)

会话:会话是一个逻辑实体,存在于实例中

进程:指定一个实例在操作系统级别能同时运行的进程数,包括后台进程和服务器进程(前台进程),一个前台进程可能同时对应多个会话,因此通常sessions的值大于processes的值。

数据库用户

  sys:超级用户,最高权限,用于维护系统信息和管理实例

    只能以SYSDBA或SYSOPER角色登录

  system:oracle默认管理员,拥有DBA权限,用来管理Oracle数据库的用户,权限和存储等

  scott:oracle普通示例用户

灵活体系结构(OFA)

  组织大量软件

  简化常规管理任务

  在多个Oracle数据库之间实现轻松切换

  相应地管理数据库扩展

  帮助消除空闲空间碎片

三类文件

(1)控制文件 .ctl

整个数据库的物理结构信息,其中包括数据库文件的数量、文件存放的位置、重做日志文件的数量和位置等

数据库当前运行的状态信息

(2)数据文件 .dbf

数据库实实在在的所有数据(表信息),控制文件比较小,数据文件比较大

(3)重做日志文件 .log

对数据库文件的所有操作(修改)/每一个数据块的修改信息/数据的变化过程

三、Oracle实例

数据库启动后,就会生成一个实例(内存+进程=Oracle实例)

用户一般通过oracle实例来访问数据库

四、Oracle实例与数据库比例:1:1 1:n ,一般都是成双数的1:2/1:4/1:6/1:8……

五、RAC技术:负载均衡

当有100个用户连接数据库的时候,其中50个用户连接一个实例,50个用户连接另一个实例。

六、体系结构

  1. 内存结构

      内存结构包括:SGA和PGA(共享和进程)

      SGA:系统全局区System Global Area/Shared Global Area

    由所有服务器进程(前台进程)和后台进程共享

      SGA包括六大pool(池)

        (1)      Shared Pool  共享池

        (2)      Database Bufffer cache 数据库缓冲区 高速缓存

        (3)      Redulog Buffer        重做日志缓冲区

        (4)      Streams池

        (5)      大型池(Large Pool)

        (6)      Java Pool

      PGA:程序全局区 Program Global Area

         进程有自己的进程空间,进程空间来自于PGA,进程的公有信息存放在SGA上,私有信息放在PGA上。

      数据库启动后会有很多进程,有两大类:前台进程(服务器进程)和后台进程

    用户访问数据库(如图)

      当用户访问数据时,首先会从连接池里随机选择一条连接,然后应用服务器会产生一个SQL访问语句,通过选择的随机连接传送给数据库。

      当数据库接到访问的SQL语句后,将访问的数据通过连接返回给应用服务器,然后服务器通过wed界面呈现给客户端。

    (1)      用户访问应用服务器

    (2)      服务器生成连接池,随机选择连接

        大量的SQL语句会通过连接池进入数据库

        数据库解析执行SQL语句获取数据返回给客户

  2.进程结构

    a)       用户进程 在数据库用户请求连接到Oracle服务器时启动

    b)       服务进程 可以连接到Oracle实例,他在用户建立会话时会启动

    c)        后台进程 在启动Oracle实例时启动

    什么是服务器进程?前台进程----服务器进程

      例子:ps -ef | grep ora ----查看oracle相关进程

      Oracle jiagulun(DESCRIPTION=(LOCAL=YES))(ADDPRESS=(PROTOCOL=beq))

Oracle实例管理

    五大进程:(1)check point

    (2)SMON (System Monitor)

     (3) PMON (Process Monitor)

      (4)数据库写进程

    (5)日志写进程

    实例管理如下图所示

  SQL语句执行过程

    (1)      客户端输入SQL语句

    (2)      SQL语句有server process通过网络送达数据库实例

    (3)      Server Process接受SQL语句,首先将SQL有进步进行解析,生成执行计划,然后执行这个执行计划

      List---可以查看执行过的sql语句

    Server Process 首先会判断SQL的语法问题,之后会检验所要访问的表对应的权限问题,权限问题包括输入的sql语句的用户对sql语句中涉及的表和视图有没有权限,除此之外,还要检查是否存在这个表或者视图,还会判断sql语句应该如何执行。

    一条SQL语句是有多种执行方案的,Server Process需要从多种执行方案中选择一个最优的执行方案,而执行计划在整个过程中,需要访问很多对象(数据)。

  SQL语句执行:1.解析:需要消耗很多资源,CPU资源、IO资源、内存资源等,最主要消耗的是CPU资源。如果两个用户执行相同的语句操作,如果A用户执行完成后生成缓存,当B用户也执行时就可以直接读缓冲区。

  而缓存的数据存放在-----Shared Pool中

所以,Server Process拿到SQL语句时,首先会到SharedPool进行查询,看是否有该语句的缓存。如果Server Pool缓存的话,Server Process会找到相同的SQL语句以及相对应的执行计划再执行。

Server Process:先找,再解析。

Shared Pool作用:缓存SQL语句以及SQL语句对应的执行计划

     shared pool的访问和修改工作都是Server Process进行的

    SQL语句执行后需要取数据,表数据在dbf文件中

    Server Process根据执行计划去执行,执行计划从dbf中取数据然后返回给用户

Oracle数据库体系结构-Shared Pool的更多相关文章

  1. oracle数据库体系结构

    一.oracle数据库体系结构 基本组成: Oracle server:一般情况下是一个instance和一个database组成 一般:1个instance只能对应一个数据库. 特殊:1个数据库可以 ...

  2. Oracle数据库体系结构、启动过程、关闭过程

    一.Oracle数据库体系结构体系结构由下面组件组成:1.Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1 ...

  3. Oracle学习笔记--第2章 oracle 数据库体系结构

    第2章 oracle 数据库体系结构 目录: ————————————— 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...

  4. Oracle数据库体系结构(2)数据库实例

    Oracle实例的概念: 实例(Instance):就是数据库管理系统,处于用户与物理数据库之间的一个中间层软件,由一系列内存结构和后台进程组成. 用户操作数据库的过程实质上与数据库实例建立连接,然后 ...

  5. Oracle数据库------体系结构

    ORACLE体系结构包括:实例(Instance),数据库文件,用户进程(User process),服务器进程以及其他文件. 1.ORACLE实例(instance)     1).要访问数据库必须 ...

  6. Oracle 12c 读书笔记(二):Oracle数据库体系结构

    以11g来分析 数据库实例包括:SGA和一系列后台管理.监控简称 数据库包括三种文件:数据文件.控制文件.重做日志文件 数据库实例和数据库是Orale数据库体系的核心部分 Oracle服务器和实例 实 ...

  7. Oracle数据库基本操作(一) —— Oracle数据库体系结构介绍、DDL、DCL、DML

    一.Oracle数据库介绍 1.基本介绍 Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/ ...

  8. Oracle数据库体系结构(3)数据库进程

    一.Oracle进程概述 在oracle中进程分为用户进程(User Process).服务器进程(server process)和后天进程3种. 1.用户进程:当用户连接到数据库执行一个应用程序是, ...

  9. Oracle数据库体系结构及创建表结构

    Oracle服务器主要由实例.数据库.程序全局区和前台进程组成,其中实例就是用来提供管理数据库的功能:数据库由数据库文件组成,用来存储系统数据:实例可以进一步划分为系统全局区(SGA)和后台进程(PM ...

随机推荐

  1. Flume 概念、模型和特点

    Flume Event - Flume 事件 - 被定义为一个具有有效荷载的字节数据流和可选的字符串属性集. Flume Agent- Flume - 代理 - 是一个进程承载从外部源事件流到下一个目 ...

  2. (转)使用 HTML5 WebSocket 构建实时 Web 应用

    HTML5 WebSocket 简介和实战演练 本文主要介绍了 HTML5 WebSocket 的原理以及它给实时 Web 开发带来的革命性的创新,并通过一个 WebSocket 服务器和客户端的案例 ...

  3. DNS 域名系统与邮件服务器

    目录 DNS 域名系统 定义 域名分类 解析流程 DNS分类 资源记录 格式 资源记录类型 用bind搭建一台DNS服务器 安装bind 创建自己的zone文件 在主配置文件中,增加自己的zone 检 ...

  4. node.js中的url.parse方法使用说明

    node.js中的url.parse方法使用说明:https://blog.csdn.net/swimming_in_it_/article/details/77439975 版权声明:本文为博主原创 ...

  5. C++多线程基础学习笔记(一)

    下面分三个方面多线程技术的必须掌握一些基本知识. 1.进程 2.线程 3.并发 (1)进程 一个可执行程序运行起来了,即为创建了一个进程.如在电脑上打开了word,就创建了一个word进程,打开QQ, ...

  6. 2019-2020Nowcoder Girl初赛题解

    写了一天计算几何,心态崩了,水一篇题解休息休息. emmmm,如果您是一名现役OIer/CSPer,那看这篇文章也许并不能在你的生命中留下些什么(潮子语录),因为相比NOIP/CSP这个比赛其实比较简 ...

  7. Java后端技术面试汇总(第三套)

    1.基础题 • 怎么解决Hash冲突:(开放地址法.链地址法.再哈希法.建立公共溢出区等)• 写出一个必然会产生死锁的伪代码:• Spring IoC涉及到的设计模式:(工厂模式.单利模式..)• t ...

  8. Java排序--排序算法(内排序)

    常用内排序算法 我们通常所说的排序算法往往指的是内部排序算法,即需要排序的数据在计算机内存中完成整个排序的过程,当数据率超大或排序较为繁琐时常借助于计算机的硬盘对大数据进行排序工作,称之为外部排序算法 ...

  9. MySQL性能优化(七):其它优化

    原文:MySQL性能优化(七):其它优化 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/v ...

  10. Jquery实现对select的操作

    select实现对文本框的显示和隐藏 /** * 通过select的值实现对文本框的显示和隐藏 * #id为一个select控件 * .obj为一个文本框 */ function initSelect ...