1、oracle内存由SGA+PGA所构成

2、oracle数据库体系结构
数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。

oracle工作原理:

1)、在数据库服务器上启动Oracle实例;
2)、应用程序在客户端的用户进程中运行,启用Oracle网络服务驱动器与服务器建立连接;
3)、服务器运行Oracle网络服务驱动器,建立专用的服务器进程执行用户进程;
4)、客户端提交事务;
5)、服务器进程获取sql语句并检查共享池中是否有相似的sql语句,如果有,服务器进程再检查用户的访问权限;否则分配新的sql共享区分析并执行sql语句;
6)、服务器从实际的数据文件或SGA中取得所需数据;
7)、服务器进程在SGA中更新数据,进程DBWN在特定条件下将更新过的数据块写回磁盘,进程LGWR在重做日志文件中记录事务;
8)、如果事务成功,服务器进程发送消息到应用程序中。

3、oracle服务器

i、oracle服务器由oracle数据库和oracle实例组成。
ii、oracle数据库是一个数据的集合,存放在数据文件里,该集合被视为一个逻辑单元。
iii、oracle实例由管理数据库的后台进程和内存结构所构成。

4、oracle实例
i、Oracle实例是内存结构和后台进程的集合
ii、启动Oracle实例的过程,即:分配内存、启动后台进程
iii、Oracle实例的内存包括SGA和PGA;
     当启动实例的时候分配SGA;
     当服务器进程建立时分配PGA;
     一般情况下,SGA:PGA=8:1分配内存。
iiii、Oracle实例的后台进程包括SMON、PMON、DBWR、LGWR、ARC、CKPT等。   5、SGA(System Global Area): 系统全局区i0、数据库信息存储于SGA,由多个数据库进程共享。i1、SGA包括:共享池、数据缓冲区、日志缓冲区、Large池、Java池、Stream池。

i2、共享池 
  1)、共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。
如在执行SELECT * FROM emp语句时,会对sql语句进行语法分析->编译->生成执行计划->运行执行计划等,这些操作都在共享池中完成;如果再次执行SELECT * FROM emp语句时,会在共享池中查找是否有相同的sql,如果存在则省去编译、生成执行计划操作步骤而是直接运行执行计划,因此养成良好的编码习惯对于提高oracle执行效率非常有帮助。
  2)、共享池由库缓存和数据字典缓存组成。
  3)、共享池的大小直接影响数据库的性能。
i3、数据缓冲
  1)、用于存储从磁盘数据文件中读入的数据,所有用户共享。
  2)、服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。
  3)、数据缓冲区的大小对数据库的读取速度有直接的影响。
  4)、硬盘上的数据文件中的数据,如何返回给用户的?
    i、从硬盘取出来,直接返回给用户,使得获取数据的效率非常低。
    ii、从硬盘取出来,放到数据缓冲区,从数据缓冲区中把数据返回给用户。下次读取同样的数据的话,直接从数据缓冲区中获取,不需要再从硬盘获取。  
i4、日志缓冲区 
  1)、日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。 
  2)、当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。
  3)、相对来说,日志缓冲区对数据库的性能影响较小
eg、UPDATE emp SET empno=7935 WHERE empno=7934;首先在日记缓冲区中被记录,某个时候(三种情况;一、日志缓冲区中的记录达到1M 二、每隔3秒 三、日志缓冲区已经用了三分之一,满足其中任意一项就可以)把日志缓冲区中的这些记录写到在线日志中去   
i5、Large池 
为了进行大的后台进程操作而分配的内存空间,主要指备份恢复、大型IO操作、并行查询等。 
i6、Stream池 
为了stream应用而分配的内存空间,高级复制技术一部分。 
i7、JAVA池
为了java应用而分配的内存空间。   

7、PGA(Process Global Area): 程序全局区
i0、程序全局区(PGA)包含单个服务器进程所需的数据和控制信息,比如每个session传入的SQL绑定变量、以及对该session进行控制的控制信息。如果该session进行了排序或hash连接操作,也会使用PGA中的内存。
i1、PGA是在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle数据库连接的用户进程所需的信息
i2、共享连接模式和专用连接模式,PGA的管理方式不同。
大多情况下,采用专用连接模式。其产生的用户进程和服务器进程后面讲述

8、oracle进程:用户进程、服务器进程(影子进程,相对用户进程而言)、后台进程
i、用户进程是一个需要与oracle服务器进行交互的程序。当用户运行一个应用程序准备向数据库服务器发送请求时,即创建了用户进程。用户进程位于客户端,服务器进程、后台进程位于服务器端。
ii、服务器进程用于处理连接到该实例的用户进程的请求。当用户连接至oracle数据库实例创建会话时,即产生服务器进程。
iii、后台进程是Oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的。Oracle实例启动时即创建一系列后台进程。

10、用户进程和服务器进程
i、对专用连接来说,用户在客户端启动了一个应用程序,例如sql*plus,就是在客户端启动一个用户进程;与oracle服务器端连接成功后,会在服务器端生成一个服务器进程,该服务器进程作为用户进程的代理进程,代替客户端执行各种命令并把结果返回给客户端。9i、10g、11g都使用专用连接。
ii、用户进程一旦中止,服务器进程立刻中止。
iii、SGA对所有用户共享,PGA不共享。

11、会话
i0、会话是用户与 Oracle 服务器的单个连接
i1、当用户与服务器建立连接时创建会话
i2、当用户与服务器断开连接时关闭会话
i3、从v$session中查询会话信息,SELECT * FROM v$session;

12、后台进程
i0、PMON 进程监控进程,监控用户进程是否正常。
1)、清理出现故障的进程。 
2)、释放所有当前挂起的锁定。
3)、释放故障进程使用的资源。
i1、SMON 系统监控进程,实时监控整个oracle状况。
1)、在实例失败之后,重新打开数据库时自动恢复实例。 
2)、整理数据文件的自由空间,将相邻区域结合起来。
3)、释放不再使用的临时段。
i2、DBWR 数据写入进程
1)、管理数据缓冲区,将最近使用过的块保留在内存中。
2)、将修改后的缓冲区数据写入数据文件中。 
i3、LGWR 日志写入进程
1)、负责将日志缓冲区中的日志数据写入日志文件。 
2)、系统有多个日志文件,该进程以循环的方式将数据写入文件。
i4、CKPT检查点进程
1)、为了防止实例崩溃,为了尽快进行实例恢复的进程。
2)、检查点包括两种:完全检查点、增量检查点。
3)、完全检查点只有下面两种情况下被触发:
1,用户发出alter system checkpoint;
2,除了shutdown abort以外的其他方式正常关闭数据库。
3)、增量检查点触发情况:
1,每隔三秒。
2,在线日志切换。
DBWR、LGWR、CKPT之间如何协调工作的?
i5、查看进程信息
1)、从v$process中查询启动的后台进程信息
2)、查看启动了几个DBWR进程
select * from v$process where program like '%DBW%';
查看DBWR进程个数: show parameter db_wr,DBWR进程个数跟脏数据的产生有一定的影响。
修改DBWR进程个数: 
alter system set db_writer_processes=3 scope=memory; --会报"无法修改指定的初始化参数"错误
alter system set db_writer_processes=3 scope=spfile;--修改成功,下次启动时才生效
3)、查看启动了几个ARC进程
select * from v$process where program like '%ARC%';

13、9i中的自动PGA管理
i、前提是:必须设置初始化参数workarea_size_policy为AUTO。
ii、自动PGA管理,DBA根据数据库的负载情况,估计所有的session大概需要消耗的PGA的总的大小,然后把该值设置成初始化参数pga_aggregate_target,Oracle就会自动调整每个session的PGA的大小。

14、10g中的自动SGA管理
i、自动SGA管理,即ASMM,Automatic Shared Memory Management。只为SGA分配一个总的大小就可以了,不必像9i那样具体分配SGA中的每一个部分的大小。
ii、在设置初始化参数statistics_level为typical或all,才可以启动ASMM。然后可以使用10g提供的一个新的初始化参数sga_target来定义了整个SGA的大小。
iii、为此,10g有一个新的后台进程MMAN,即memory manager,用于进行自动SGA管理。
iiii、注意另一个后台进程MMON,即memory monitor,用于自动统计信息收集。

15、11g中的自动内存管理
i1、自动内存管理,即AMM,Automatic Memory Management。只为Oracle的使用整体分配一个总的内存大小就可以了,不必像10g那样具体分配SGA和PGA的大小。
i2、初始化参数statistics_level为typical或all,才可以启动AMM。
show parameter statistics_level; --查看AMM
show parameter memory; --查看整个oracle占用了多大内存
alter system set memory_max_target=900m;--设置内存最大可以达到多大
i3、新的初始化参数memory_target来定义了整个内存的大小,即SGA加上PGA的总的大小。
alter system set memory_target=500m; --memory_target设置的值要不大于memory_max_target
i4、新的初始化参数memory_max_target来定义了memory_target最大可以达到的值。
alter system set memory_max_target=900m scope=spfile; --下次启动生效,scope=spfile不能省略否则报错
i5、注意:如果使用AMM,则sga_target和pga_aggregate_target的值应该设置成0。
show parameter sga_target;
show parameter page_aggregate_target;
alter system set sga_target=0m;
alter system set pag_aggregate_target=0;
i6、11g中的后台进程MMAN,用于进行自动内存管理。

16、oracle数据库结构
i、Oracle数据库由操作系统文件组成,这些文件为数据库信息提供实际物理存储区。
ii、Oracle 数据库包括逻辑结构和物理结构;
物理结构包含数据库中的一组操作系统文件;
逻辑结构指数据库创建之后形成的逻辑概念之间的关系。

17、物理结构
物理组件就是Oracle数据库所使用的操作系统物理文件。我们可以在D:\dev\oracle\product\10.2.0\oradata\orcl目录下进行查看,在生产环境中不同的文件放在不同的目录,根据用户访问的频繁情况来做决定。
1)、主要物理文件可分为三类: 
i、数据文件:数据文件用于存储数据库数据,如表、索引数据等。
ii、控制文件:控制文件是记录数据库物理结构的二进制文件。
iii、在线日志文件:记录对数据库的所有修改信息,用于故障恢复。
注意:丢失这些文件,数据库不可以继续运行,需要进行介质恢复。

2)、非主要物理文件包括:
参数文件、密码文件、告警和跟踪文件、归档日志文件、备份文件。
参数文件分为pfile文件和spfile文件,位于ORACLE_HOME\DATABASE目录下,9i开始默认不使用sfile文件,如spfileorcl.ora文件。
密码文件:sys用户密码,位于ORACLE_HOME\DATABASE目录下,如pwdorcl.ora文件。
查看是否有归档日志:archive log list。
ORACLE_HOME: D:\dev\oracle\product\10.2.0\db_1
注意:丢失这些文件,数据库仍然可以继续运行,不需要进行介质恢复。

18、逻辑结构
数据库的逻辑结构是从逻辑的角度分析数据库的组成。
Oracle 的逻辑组件包括:数据库->表空间->段->区->数据库->模式。

19、表空间
i1、表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。
i2、每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
i3、表空间的大小等于构成该表空间的所有数据文件大小之和。
i4、创建表空间的语法是:
CREATE TABLESPACE tablespacename
DATAFILE 'filename' [SIZE integer [K|M]] 
[AUTOEXTEND [OFF|ON]];
i5、默认表空间
1)、默认包含如下表空间(从v$tablespace中查看):SYSTEM、SYSAUX、TEMP、UNDOTBS1、USERS、EXAMPLE。
2)、SYSTEM是系统表空间,存放系统的最基本的信息,如果SYSTEM表空间坏掉,Oracle将无法启动。
3)、SYSAUX从10g中引入,作为SYSTEM的辅助表空间,用以减少SYSTEM表空间的负荷 。以前其他表空间中的一些组件,现在放到SYSAUX表空间中了。比如,以前SYSTEM表空间中LogMiner、以前SYSTEM表空间中Logical Standby、Spatial、以前DRSYS表空间中Oracle Text等。
i6、TEMP是临时表空间,当排序不能在分配的空间中完成时,就会使用磁盘排序的方式,即在Oracle实例中的临时表空间中进行。
UNDOTBS1是撤销表空间,是UNDO类型的表空间,保存用户进行DML操作中,修改前的数据。
USERS是数据库默认的永久表空间。
EXAMPLE是数据库测试用例所涉及的表的所属表空间。
i7、select * from dba_data_files;--查看表空间的具体信息
select * from v$tablespace;--查看表空间

20、段、区、数据库、模式
i、段,ASSM 自动段存储管理
1)、段是构成表空间的逻辑存储结构,段由一组区组成。 
2)、按照段所存储数据的特征,将段分为若干种类型,主要有数据段、索引段、回退段和临时段。
ii、区
1)、区为段分配空间,它由连续的数据块组成。 
2)、当段中的所有空间已完全使用时,系统自动为该段分配一个新区。
3)、区不能跨数据文件存在,只能存在于一个数据文件中。
iii、数据库
1)、数据块是Oracle服务器所能分配、读取或写入的最小存储单元。
2)、Oracle服务器以数据块为单位管理数据文件的存储空间。 
3)、show  parameter db_block_size; --查看数据块大小
iiii、模式,等同于用户
1)、模式是对用户所创建的数据库对象的总称。 
2)、模式对象包括表、视图、索引、同义词、序列、过程和程序包等

Oracle数据库入门——体系结构的更多相关文章

  1. oracle数据库入门

    oracle  数据库入门. 1.数据 2.数据存储的地方:变量 数组 容器 (内存中),文件,数据库(文件) 3.数据库系统:sqlserver 2000   2005  2008  mysql 5 ...

  2. Oracle数据库入门到高薪培训教程(从Oracle 11g 到 Oracle 19c)

    一.Oracle数据库入门到高薪培训视频教程(从 Oracle11g 到 Oracle19c) 本套Oracle视频教程学习地址: https://edu.51cto.com/course/18034 ...

  3. ORACLE数据库入门再在屋里坐会

    一.数据库简介 数据库概述 数据库(database)是按照数据结构来组织,存储和管理数据的仓库,它产生与距今五十年前. 简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数 ...

  4. 学习Oracle数据库入门到精通教程资料合集

    任何大型信息系统,都需要有数据库管理系统作为支撑.其中,Oracle以其卓越的性能获得了广泛的应用.本合集汇总了学习Oracle数据库从入门到精通的30份教程资料. 资料名称 下载地址 超详细Orac ...

  5. Oracle数据库入门——sql语句和函数详解

    一.oracle常用数据类型 一.  数据定义语言(ddl) 数据定义语言ddl(data definition language)用于改变数据库结构,包括创建.更改和删除数据库对象. 用于操纵表结构 ...

  6. Oracle数据库入门——目录结构

    一.Oracle_Home目录 Oracle_Home主目录位于D:\dev\oracle\product\10.2.0(oracle安装路径)下,它包含Oracle软件运行有关的子目录和网络文件以及 ...

  7. Oracle数据库入门——基础知识

    1.安装完成Oracle数据库后,使用sqlplus客户端登录数据库管理系统,只输入用户名,没有输入密码时,会提示口令为空,登录被拒绝. 请输入用户名:system 输入口令: ERROR:ORA-0 ...

  8. Oracle数据库之体系结构

    Oracle数据库管理系统中的3个重要的概念:实例(Instance).数据库(Database)和数据库服务器(Database Server). 实例:是后台进程和内存结构的集合,是Oracle数 ...

  9. Oracle数据库入门——常用的数据字典

    一.oracle数据字典主要由以下几种视图构成:1.user视图以user_为前缀,用来记录用户对象的信息 2.all视图以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 3.dba视图 ...

随机推荐

  1. 《西部世界》S2E9:蝶化庄周,浮生若梦

    原以为第九集能解开本季大半的疑惑,结果还是被骗了……看来<西部世界>铁了心要把主要秘密都放在大结局里揭晓,大家就再等一周吧. 尽管如此,本集还是说清了不少谜团:比如威廉和格蕾丝的真实身份, ...

  2. 使用SpringBoot配置了 server.servlet.path后无效的解决方案

    一.问题描述 使用SpringBoot配置了 server.servlet.path后无效,访问时无法通过:http://127.0.0.1:8080/app/hello.html 访问. 二.解决方 ...

  3. docker安装hive笔记

    前两篇文章介绍了docker的基本命令如何安装hadoop 那么大家会比较了解docker的基本语法的安装过程.那么咱们今天来一起安装一下hive. 安装 1.下载gitHub,地址:https:// ...

  4. Spark机器学习(6):决策树算法

    1. 决策树基本知识 决策树就是通过一系列规则对数据进行分类的一种算法,可以分为分类树和回归树两类,分类树处理离散变量的,回归树是处理连续变量. 样本一般都有很多个特征,有的特征对分类起很大的作用,有 ...

  5. 【Linux】ps命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  6. 全面理解Javascript闭包和闭包的几种写法及用途【转】

    一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...

  7. [Big Data - ZooKeeper] ZooKeeper: A Distributed Coordination Service for Distributed Applications

    ZooKeeper ZooKeeper: A Distributed Coordination Service for Distributed Applications Design Goals Da ...

  8. 《CLR via C#》读书笔记 之 线程基础

    第二十五章 线程基础 2014-06-28 25.1 Windows为什么要支持线程 25.2 线程开销 25.3 停止疯狂 25.6 CLR线程和Windows线程 25.7 使用专用线程执行异步的 ...

  9. idea 自动根据屏幕代码换行

    勾上即可 -- 建议不开启 有些时候从其他来源网站直接copy的代码文件会出现不勾选还会出现自动换行的情况 解决方法  新建文件  代码全部选剪过去

  10. bootstrap 3.0 LESS源代码浅析(一)

    我一直以为Bootstrap的LESS源代码精髓在mixins.less,所以这个系列主要也是讲解mixins.less的. 什么是mixins? 混入,或者翻译成混合.官网的说法是:我们可以定义一些 ...