精华内容
下载资源
问答
  • 2021-05-02 02:50:44

    Oracle数据库现以发展最为抢手,那么你对它的实际应用以及相关功能特性了解的又有多少呢?以下的文章主要是向你介绍Oracel的初步认识,你如果是Oracle数据库的疯狂一族的话,以下的文章,你一定不要错过。

    1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成)

    一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。

    其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件;

    参数文件(parameter file)口令文件(password file)是非数据库文件

    1.1数据文件:存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。

    由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。

    types:

    .data dictionary .data

    .redo data .index

    .temporary data 等等

    1.2控制文件:包含维护和验证Oracel数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.

    控制文件内容

    。数据库名

    。表空间信息

    。所有数据文件的名字和位置

    。所有redo日志文件的名字和位置

    。当前的日志序列号

    。检查点信息

    。关于redo日志和归档的当前状态信息

    控制文件的使用过程

    控制文件把Oracle引导到数据库文件的其它部分。启动一个实例时,Oracle 从参数文件中读取控制文件的名字和位置。安装数据库时,Oracle 打开控制文件。最终打开数据库时,Oracle 从控制文件中读取数据文件的列表并打开其中的每个文件。

    1.3重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.

    1.4 跟踪文件及警告日志(Trace Files and Alert Files)

    在instance 中运行的每一个后台进程都有一个跟踪文件(trace file)与之相连。Trace file 记载后台进程所遇到的重大事件的信息。

    警告日志( Alert Log)是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误.

    1.5参数文件:包括大量影响OracleOracel数据库实例功能的设定,如以下设定:

    。数据库控制文件的定位

    。Oracle用来缓存从磁盘上读取的数据的内存数量

    。默认的优化程序的选择.

    和数据库文件相关,执行两个重要的功能

    1〉为数据库指出控制文件

    2〉为数据库指出归档日志的目标

    1.6归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

    1.7口令文件:认证哪些用户有权限启动和关闭Oracle例程.

    2、逻辑结构(表空间、段、区、块)

    表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。

    段:是对象在数据库中占用的空间.

    区:是为数据一次性预留的一个较大的存储空间.

    块:ORACLE最基本的存储单位,在建立数据库的时候指定.

    3、内存分配(SGA和PGA)

    SGA:是用于存储Oracel数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

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

    4、后台进程

    包括数据写进程(Database Writer,DBWR)、日志写进程(Log Writer,LGWR)、系统监控(System Monitor,SMON)、进程监控(Process Monitor,PMON)、检查点进程(Checkpoint Process,CKPT)、归档进程、服务进程、用户进程)

    数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件

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

    系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复

    进程监控:负责在一个Oracle 进程失败时清理资源

    检查点进程:负责在每当缓冲区高速缓存中的更改***地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。在通常的情况下,该任务由LGWR执行。然而,如果检查点明显地降低系统性能时,可使CKPT进程运行,将原来由LGWR进程执行的检查点的工作分离出来,

    由CKPT进程实现。对于许多应用情况,CKPT进程是不必要的。只有当Oracel数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运行。CKPT进程不将块写入磁盘,该工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS 参数控制CKPT进程的使能或使不能。缺省时为FALSE,即为使不能。

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

    服务进程:用户进程服务。

    用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。

    5、SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

    【编辑推荐】

    【责任编辑:孙巧华 TEL:(010)68476606】

    点赞 0

    更多相关内容
  • 物理内存组织结构

    2021-05-04 15:36:56
    内存管理的目标就是高效合理的使用物理内存,不造成浪费。 1. 体系结构 在计算机发展初期,如上图,CPU通过总线访问整个地址空间,这是一种简单经济的方式,可以尽可能使用内存。但是这个系统本身也存在伸缩性...

    内存管理在内核中占据着举足轻重的地位,毕竟它是用来处理处理器和内存之间的协作的,而后两者都是计算机中最为重要的资源。内存管理的目标就是高效合理的使用物理内存,不造成浪费。

    1. 体系结构

     

    在计算机发展初期,如上图,CPU通过总线访问整个地址空间,这是一种简单经济的方式,可以尽可能使用内存。但是这个系统本身也存在伸缩性的问题,因为总线的宽度是有限的,这也限制了处理器的数量。如果添加CPU,会引起以下两个问题

    • CPU增加,每个节点的可用带宽会减少
    • CPU增加,总线长度会增加,进而增加了延迟

    于是有了下面的系统,如下图,其中北桥芯片离CPU最近,在CPU与显卡(PCIE/AGP)、内存(DRAM)等建立通信接口,处理高速信号。南桥则负责一些I/O设备,通常速度相对前者不高。比如PCI、磁盘(IDE/SATA)、USB等。

     

    目前管理物理内存的方法主要有以下两种

    1.1 一致内存访问(Uniform Memory Access,UMA)

    也称为对称多处理器(SMP)  内存以连续的方式组织起来,每个CPU访问各个内存区都一样快。CPU通过系统总线(前端总线)连到北桥(其中包含内存控制器),与内存之间的通信必然经过北桥。IO控制器也连到北桥,IO必须通过北桥才能到达CPU。可以增加多个总线或者内存通道增加带宽。不过总的来将,UMA的这种伸缩性是有限的。

     

     1.2  非一致内存访问(Non-Unit Memory Access,NUMA)

    每个CPU是平等的(系统启动初始化除外),都有本地内存,离着最近访问速度最快。各个CPU之间通过总线连接,支持对其他CPU的访问。如下图,CPU不再共享北桥,而是独有一个内存控制器。

     

     

    2. 内存模型

    从处理器的角度看物理内存分布,内存管理子系统支持下面三种内存模型

    • 平坦内存(Flat Memory):内存的物理地址空间连续,不存在空洞。如果物理地址空间不连续,那要额外的分配页来处理这些空洞,显然这种情况下是低效的。
    • 不连续内存(Discontiguous Memory):如果物理地址空间存在空洞,相对平坦内存能高效处理
    • 稀疏内存(Space Memory):物理地址空间存在空洞,并且支持热拔插。

       

     

    3. 三级结构

    在NUMA,CPU被划分为多个节点(node), 每个CPU对应一个本地物理内存, 即一个CPU-node对应一个内存node。 内存管理系统通过节点(node),内存域(zone)、页帧(page)三级结构描述物理内存。首先,内存划分为节点,每个节点关联一个CPU。各个节点又划分为内存域,各个内存域都关联了一个数组,用来组织属于该内存域的物理页。UMA被当作只有一个NUMA的系统。

    3.1 内存节点

    各个内存节点保存在一个单链表中,供内核遍历。

    typedef struct pglist_data {
        struct zone node_zones[MAX_NR_ZONES];           //内存区域数组,MAX_NR_ZONES一般为3
        struct zonelist node_zonelists[MAX_ZONELISTS];  //备用区域列表
        int nr_zones;                                   //内存区域数量
    #ifdef CONFIG_FLAT_NODE_MEM_MAP /* means !SPARSEMEM */
        struct page *node_mem_map;                      // 页描述符,用于描述节点的所有物理内存页
    #ifdef CONFIG_PAGE_EXTENSION
        struct page_ext *node_page_ext;                 //页扩展属性
    #endif
    #endif
    ......
        unsigned long node_start_pfn;       //该节点的起始物理页号,系统中所有节点的额页帧是一次编号,全局唯一的。
        unsigned long node_present_pages;   //物理页总数
        unsigned long node_spanned_pages;   //物理页总数包含空洞
        int node_id;                        //节点id
    ......
    } pg_data_t;

    3.2 内存域

    3.2.1 内存区域类型

    enum zone_type {
    #ifdef CONFIG_ZONE_DMA
        ZONE_DMA,
    #endif
    #ifdef CONFIG_ZONE_DMA32
        ZONE_DMA32,
    #endif
        ZONE_NORMAL,
    #ifdef CONFIG_HIGHMEM
        ZONE_HIGHMEM,
    #endif
        ZONE_MOVABLE,
    #ifdef CONFIG_ZONE_DEVICE
        ZONE_DEVICE,
    #endif
        __MAX_NR_ZONES
    };
    • ZONE_DMA,直接内存访问,某些设备不能直接访问内存的,则需要DMA区域。
    • ZONE_DMA32,64位系统,纪要支持直接访问16MB以下的内存设备,又要支持直接访问4GB以下内存的32位设备,需要使用此区域
    • ZONE_NORMAL,普通区域,直接映射到内核虚拟地址空间的内存区域,也称线性映射区域
    • ZONE_HIGHMEM, 高端内存区域,32位系统的产物,内核地址空间只有1GB,于是就分出了低端内存区域+高端内存区域,高端内存区域通过动态映射用来扩展内存。
    • ZONE_MOVABLE,可移动区域,用来避免内存碎片
    • ZONE_DEVICE,设备区域,为了支持持久内存热拔插而增加的内存区域

    3.2.2 数据结构

    struct zone {
        // 页分配器使用的字段
        unsigned long watermark[NR_WMARK];    // 页分配器使用的水线
        unsigned long nr_reserved_highatomic; 
        long lowmem_reserve[MAX_NR_ZONES];// 当前保留多少页(这些页不能借给高端地址的区域类型)
    #ifdef CONFIG_NUMA
        int node;
    #endif
        struct pglist_data  *zone_pgdat;        // 指向内存节点的pglist_data实例
        struct per_cpu_pageset __percpu *pageset;
    #ifndef CONFIG_SPARSEMEM
        unsigned long       *pageblock_flags;
    #endif /* CONFIG_SPARSEMEM */
    #ifdef CONFIG_NUMA
        unsigned long       min_unmapped_pages;
        unsigned long       min_slab_pages;
    #endif /* CONFIG_NUMA */
        /* zone_start_pfn == zone_start_paddr >> PAGE_SHIFT */
        // 支持不连续内存模型的字段
        unsigned long       zone_start_pfn; // 当前区域的起始页号
        unsigned long       managed_pages;  // 伙伴分配器管理的物理页的数量
        unsigned long       spanned_pages;  // 当前区域总页数,包括空洞
        unsigned long       present_pages;
        const char      *name;
        struct free_area    free_area[MAX_ORDER];
        ......
    } ____cacheline_internodealigned_in_smp;

     

    3.3 页帧(物理页)

    页帧是系统内存中的最小单位,每个页都会对应有一个struct page的实例。一般位4KB。对应内核结构是struct page,里面有很多联合体,这样写的原因是为了节省内存。

    参考:

    [0] https://frankdenneman.nl/2016/07/07/numa-deep-dive-part-1-uma-numa/

    [1] http://www.pcpop.com/article/628956_all.shtml

    [2] 深入Linux内核架构

    [3] https://ke.qq.com/webcourse/3294666/103425320

    [4] https://cloud.tencent.com/developer/article/1366011

     

    展开全文
  • 5. Oracle的内存结构 及操作模式;学习目的;5.1 Oracle内存结构;5.1.1 系统全局区 ; ;5.1.2 程序全局区;用户进程当用户运行一个应用程序时就建立一个用户进程 (连接和会话) 服务器进程处理用户进程的请求 ; DBWR进程 ...
  • 内存物理结构和工作原理

    千次阅读 2014-04-22 17:06:42
    内存物理结构和工作原理 作者:xiaofeng 来源:PConline 发布时间:2012-11-01 点击数:1163  内存也叫主存,是PC系统存放数据与指令的半导体存储器单元,也叫主存储器(Main Memory),通常分为只读...

    内存的物理结构和工作原理

    作者:xiaofeng 来源:PConline 发布时间:2012-11-01 点击数:1163

      内存也叫主存,是PC系统存放数据与指令的半导体存储器单元,也叫主存储器(Main Memory),通常分为只读存储器(ROM-Read Only Memory)、随机存储器(RAM-Red Access Memory)和高速缓存存储器(Cache)。我们平常所指的内存条其实就是RAM,其主要的作用是存放各种输入、输出数据和中间计算结果,以及与外部存储器交换信息时做缓冲之用。

    结构

    1、PCB板

      内存条的PCB板多数都是绿色的。如今的电路板设计都很精密,所以都采用了多层设计,例如4层或6层等,所以PCB板实际上是分层的,其内部也有金属的布线。理论上6层PCB板比4层PCB板的电气性能要好,性能也较稳定,所以名牌内存多采用6层PCB板制造。因为PCB板制造严密,所以从肉眼上较难分辩PCB板是4层或6层,只能借助一些印在PCB板上的符号或标识来断定。

    2、金手指

      黄色的接触点是内存与主板内存槽接触的部分,数据就是靠它们来传输的,通常称为金手指。金手指是铜质导线,使用时间长就可能有氧化的现象,会影响内存的正常工作,易发生无法开机的故障,所以可以隔一年左右时间用橡皮擦清理一下金手指上的氧化物。 

    3、内存芯片

      内存的芯片就是内存的灵魂所在,内存的性能、速度、容量都是由内存芯片组成的。

    4、内存颗粒空位

           在内存条上你可能常看到这样的空位,这是因为采用的封装模式预留了一片内存芯片为其他采用这种封装模式的内存条使用。这块内存条就是使用9片装PCB,预留ECC校验模块位置。

    5、电容

      PCB板上必不可少的电子元件就是电容和电阻了,这是为了提高电气性能的需要。电容采用贴片式电容,因为内存条的体积较小,不可能使用直立式电容,但这种贴片式电容性能一点不差,它为提高内存条的稳定性起了很大作用。

    6、电阻

      电阻也是采用贴片式设计,一般好的内存条电阻的分布规划也很整齐合理。

    7、内存固定卡缺口

      内存插到主板上后,主板上的内存插槽会有两个夹子牢固的扣住内存,这个缺口便是用于固定内存用的。

    8、内存脚缺口

           内存的脚上的缺口一是用来防止内存插反的(只有一侧有),二是用来区分不同的内存,以前的SDRAM内存条是有两个缺口的,而DDR则只有一个缺口,不能混插。

    9、SPD

      SPD是一个八脚的小芯片,它实际上是一个EEPROM可擦写存贮器,这的容量有256字节,可以写入一点信息,这信息中就可以包括内存的标准工作状态、速度、响应时间等,以协调计算机系统更好的工作。从PC100时代开始,PC100规准中就规定符合PC100标准的内存条必须安装SPD,而且主板也可以从SPD中读取到内存的信息,并按SPD的规定来使内存获得最佳的工作环境。

    内存工作原理

    1、内存寻址

           首先,内存从CPU获得查找某个数据的指令,然后再找出存取资料的位置时(这个动作称为“寻址”),它先定出横坐标(也就是“列地址”)再定出纵坐标(也就是“行地址”),这就好像在地图上画个十字标记一样,非常准确地定出这个地方。对于电脑系统而言,找出这个地方时还必须确定是否位置正确,因此电脑还必须判读该地址的信号,横坐标有横坐标的信号(也就是RAS信号,Row Address Strobe)纵坐标有纵坐标的信号(也就是CAS信号,Column Address Strobe),最后再进行读或写的动作。

    2、内存传输

      为了储存资料,或者是从内存内部读取资料,CPU都会为这些读取或写入的资料编上地址(也就是我们所说的十字寻址方式),这个时候,CPU会通过地址总线(Address Bus)将地址送到内存,然后数据总线(Data Bus)就会把对应的正确数据送往微处理器,传回去给CPU使用。

    3、存取时间

      存取时间,指的是CPU读或写内存内资料的过程时间,也称为总线循环(bus cycle)。以读取为例,从CPU发出指令给内存时,便会要求内存取用特定地址的特定资料,内存响应CPU后便会将CPU所需要的资料送给CPU,一直到CPU收到数据为止,便成为一个读取的流程。因此,这整个过程简单地说便是CPU给出读取指令,内存回复指令,并丢出资料给CPU的过程。我们常说的6ns(纳秒,秒-9)就是指上述的过程所花费的时间,而ns便是计算运算过程的时间单位。我们平时习惯用存取时间的倒数来表示速度,比如6ns的内存实际频率为1/6ns=166MHz(如果是DDR就标DDR333,DDR2就标DDR2 667)。

    4、内存延迟

      内存的延迟时间(也就是所谓的潜伏期,从FSB到DRAM)等于下列时间的综合:FSB同主板芯片组之间的延迟时间(±1个时钟周期),芯片组同DRAM之间的延迟时间(±1个时钟周期),RAS到CAS延迟时间:RAS(2-3个时钟周期,用于决定正确的行地址),CAS延迟时间 (2-3时钟周期,用于决定正确的列地址),另外还需要1个时钟周期来传送数据,数据从DRAM输出缓存通过芯片组到CPU的延迟时间(±2个时钟周期)。一般的说明内存延迟涉及四个参数CAS(Column Address Strobe 行地址控制器)延迟,RAS(Row Address Strobe列地址控制器)-to-CAS延迟,RAS Precharge(RAS预冲电压)延迟,Act-to-Precharge(相对于时钟下沿的数据读取时间)延迟。其中CAS延迟比较重要,它反映了内存从接受指令到完成传输结果的过程中的延迟。大家平时见到的数据3—3—3—6中,第一参数就是CAS延迟(CL=3)。当然,延迟越小速度越快。

    展开全文
  • Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。  1. 物理结构   物理数据库结构是由构成数据库的操作系统文件所决定,Oracle数据库文件包括:  1.1.数据文件(Data File) ...

    Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。  

    1. 物理结构  

       物理数据库结构是由构成数据库的操作系统文件所决定,Oracle数据库文件包括:  
    1.1.数据文件(Data File) 
       数据文件用来存储数据库中的全部数据,例如数据库表中的数据和索引数据.通常以为*.dbf格式,例如:userCIMS.dbf 。
    1.2.日志文件(Redo Log File) 
       日志文件用于记录数据库所做的全部变更(如增加、删除、修改)、以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。  
    1.3.控制文件(Control File) 
        每个Oracle数据库都有相应的控制文件,它们是较小的二进制文件,用于记录数据库的物理结构,如:数据库名、数据库的数据文件和日志文件的名字和位置等信息。用于打开、存取数据库。名字通常为Ctrl*ctl 格式,如Ctrl1CIMS.ctl。  
    1.4.配置文件 
       配置文件记录Oracle数据库运行时的一些重要参数,如:数据块的大小,内存结构的配置等。名字通常为init*.ora 格式,如:initCIMS.ora 。  

    2 逻辑结构  

      Oracle数据库的逻辑结构描述了数据库从逻辑上如何来存储数据库中的数据。逻辑结构包括表空间、段、区、数据块和模式对象。数据库的逻辑结构将支配一个数据库如何使用系统的物理空间.模式对象及其之间的联系则描述了关系数据库之间的设计.  
      一个数据库从逻辑上说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库,每一个表空间是由段(segment)组成,一个段是由一组区(extent)所组成,一个区是由一组连续的数据库块(database block)组成,而一个数据库块对应硬盘上的一个或多个物理块。一个表空间存放一个或多个数据库的物理文件(即数据文件).一个数据库中的数据被逻辑地存储在表空间上。  
    2.1表空间(tablespace) 
      Oracle数据库被划分为一个或多个称为表空间的逻辑结构,它包括两类表空间,System表空间和非System表空间,其中,System表空间是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。除此之外,还能包含用户数据。。
      一个表空间包含许多段,每个段有一些可以不连续的区组成,每个区由一组连续的数据块组成,数据块是数据库进行操作的最小单位。  
      每个表空间对应一个或多个数据文件,每个数据文件只能属于一个表空间。  
    2.2.数据库块(database block) 
      数据库块也称逻辑块或ORACLE块,它对应磁盘上一个或多个物理块,它的大小由初始化参数db-block-size(在文件init.ora中)决定,典型的大小是2k。Pckfree 和pctused 两个参数用来优化数据块空间的使用。  
    2.3.区(extent) 
      区是由一组连续的数据块所组成的数据库存储空间分配的逻辑单位。  
    2.4.段(segment) 
      段是一个或多个不连续的区的集合,它包括一个表空间内特定逻辑结构的所有数据,段不能跨表空间存放。Oracle数据库包括数据段、索引段、临时段、回滚段等。  
    2.5.模式对象(schema object) 
      Oracle数据库的模式对象包括表、视图、序列、同意词、索引、触发器、存储.过程等,关于它们将重点在后面章节介绍。  

    3.Oracle Server系统进程与内存结构  

      当在计算机服务器上启动Oracle数据库后,称服务器上启动了一个Oracle实例(Instance)。ORACLE 实例(Instance)是存取和控制数据库的软件机制,它包含系统全局区(SGA)和ORACLE进程两部分。SGA是系统为实例分配的一组共享内存缓冲区,用于存放数据库实例和控制信息,以实现对数据库中数据的治理和操作。  
      进程是操作系统中一个极为重要的概念。一个进程执行一组操作,完成一个特定的任务.对ORACLE数据库治理系统来说,进程由用户进程、服务器进程和后台进程所组成。  
      当用户运行一个应用程序时,系统就为它建立一个用户进程。服务器进程处理与之相连的用户进程的请求,它与用户进程相通讯,为相连的用户进程的ORACLE请求服务。  
      为了提高系统性能,更好地实现多用户功能,ORACLE还在系统后台启动一些后台进程,用于数据库数据操作。  

    4.系统进程的后台进程主要包括:

      SMON 系统监控进程:(system monitor)负责完成自动实例恢复和回收分类(sort)表空间。 
      PMON 进程监控进程:(PRocess monitor)实现用户进程故障恢复、清理内存区和释放该进程所需资源等。 
      DBWR 数据库写进程:数据库缓冲区的治理进程。
    在它的治理下,数据库缓冲区中总保持有一定数量的自由缓冲块,以确保用户进程总能找到供其使用的自由缓冲块。 
      LGWR 日志文件写进程:是日志缓冲区的治理进程,负责把日志缓冲区中的日志项写入磁盘中的日志文件上。每个实例只有一个LGWR进程。
      ARCH 归档进程:(archiver process)把已经填满的在线日志文件拷贝到一个指定的存储设备上。仅当日志文件组开关(switch)出现时,才进行ARCH操作。ARCH不是必须的,而只有当自动归档可使用或者当手工归档请求时才发出。
      RECO 恢复进程:是在具有分布式选项时使用的一个进程,主要用于解决引用分布式事务时所出现的故障。它只能在答应分布式事务的系统中出现。
      LCKn 封锁进程:用于并行服务器系统,主要完成实例之间的封锁。 

    5.内存结构(SGA)

      SGA是Oracle为一个实例分配的一组共享内存缓冲区,它包含该实例的数据和控制信息。SGA在实例启动时被自动分配,当实例关闭时被收回。数据库的所有数据操作都要通过SGA来进行。  
      SGA中内存根据存放信息的不同,可以分为如下几个区域:
    5.1.Buffer Cache:存放数据库中数据库块的拷贝。
        它是由一组缓冲块所组成,这些缓冲块为所有与该实例相链接的用户进程所共享。缓冲块的数目由初始化参数DB_BLOCK_BUFFERS确定,缓冲块的大小由初始化参数DB_BLOCK_SIZE确定。大的数据块可提高查询速度。它由DBWR操作。

    5.2.日志缓冲区Redo Log Buffer:存放数据操作的更改信息。
        它们以日志项(redo entry)的形式存放在日志缓冲区中。当需要进行数据库恢复时,日志项用于重构或回滚对数据库所做的变更。日志缓冲区的大小由初始化参数LOG_BUFFER确定。大的日志缓冲区可减少日志文件I/O的次数。后台进程LGWR将日志缓冲区中的信息写入磁盘的日志文件中,可启动ARCH后台进程进行日志信息归档。
      
    5.3.共享池Shared Pool:包含用来处理的SQL语句信息。
        它包含共享SQL区和数据字典存储区。共享SQL区包含执行特定的SQL语句所用的信息。数据字典区用于存放数据字典,它为所有用户进程所共享。
      
    5.4.Cursors
    :一些内存指针,执行待处理的SQL语句 
    5.5.其他信息区:除了上述几个信息区外,还包括一些进程之间的通讯信息(如封锁信息);在多线索服务器配置下,还有一些程序全局区的信息,请求队列和响应队列等。

    --------------------------------------------------------------------------

    后台进程详解

    oracle中的进程共分为三类:用户进程、服务进程、后台进程。其中后台进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员。他们并不会直接给用户提供服务。
    一:database write(DBWn(n代表数字1..n,表示可能有几个DBW在运行) )--数据写入
       作用:把SGA中被修改的数据同步到磁盘文件中。保证Buffer Cache中有足够的空闲数据块数量。
       触发条件: 1、检查点
                 2、一个服务进程在设定的时间内没有找到空闲块
                 3、每三秒自动唤醒一次。
       设置:DB_WRITER_PROCESS用来定义DBWn进程数量。(commit命令只是把记录修改写入日志文件,不是把修改后的数据写入数据文件)

    二:log write(LGWR)--日志文件写入
       作用:把log buffer中的日志内容写入联机的日志文件中,释放log用户buffer空间。
       触发条件:1、用户发出commit命令。(在oracle中称为快速提交机制(fast commit)):把redo log buffer中的记录写入日志文件,写入一条提交的记录
                2、三秒定时唤醒。
                3、log buffer超过1/3,或日志数量超过1M。
                4、DBWR进程触发:DBWn视图将脏数据块写入磁盘先检测他的相关redo记录是否写入联机日志文件,如果没有就通知LGWR进程。在oracle中成为提前写机制(write ahead):redo记录先于数据记录被写入磁盘

    三:checkpoint(CKPT)-检查点事件
       作用:维护数据库一致性状态。检测点时刻数据文件与SGA中的内容一致,这不是一个单独的进程,要和前两个进程一起工作呦。DBWR写入脏数据,同时触发LGWR进程。
          CKPT更新控制文件中的检查点记录。
       触发条件:日志切换(log switch)会触发检查点。

    四:process monitor(PMON)--进程监控
       作用:1、发现用户进程异常终止,并进行清理。释放占用资源。(清理异常终止用户使用的锁)
            2、向监听程序动态的注册实例。
       触发条件:定时被唤醒,其他进程也会主动唤醒它。

    五:system monitor:(SMON)--系统监控
       作用:1、负责实例恢复,前滚(Roll Forward)恢复到实例关闭的状态,使用最后一次检查点后的日志进程重做。这时包括提交和未提交的事务。打开数据库,进行回滚(Roll Back):回滚未提交的事务。(oracle承诺commit之后数据不会丢失,现在我们可以大致的了解是如何实现这个承诺,以及在数据的安全性和数据库性能之间的平衡选择。)
            2、负责清理临时段,以释放空间
       触发条件:定期被唤醒或者被其他事务主动唤醒。

    六:archive:(ARCn)--归档操作
       作用:发生日志切换时把写满的联机日志文件拷贝到归档目录中。
       触发条件:日志切换时被LGWR唤醒。
       设置:LOG_ARCHIVE_MAX_PROCESSES可以设置oracle启动的时候ARCn的个数。

    七:manageability monitor:MMON--AWR主要的进程
       作用:1、收集AWR必须的统计数据,把统计数据写入磁盘。10g中保存在SYSAUX表空间中。
            2、生成server--generated报警
       每小时把shared pool中的统计信息写入磁盘,或者shared pool占用超过15%。

    八:manageability monitor light:MMNL:轻量级的MMON

    九:memory manager:MMAN:自动内容管理
       作用:每分钟都检查AWR性能信息,并根据这些信息来决定SGA组件最佳分布。
       设置:STATISTICS_LEVEL:统计级别
            SGA_TARGET:SGA总大小

    十:job queue coordinator:CJQ0--数据库定时任务

    十一:recover writer:RVWR
       作用:为flashback database提供日志记录。把数据块的前镜像写入日志。

    十二:change tarcking writer:CTWR
       作用:跟踪数据块的变化,把数据块地址记录到 change_tracking file文件中。RMAN的增量备份将使用这个文件来确定那些数据块发生了变化,并进行备份。

    以上是oracle中比较常见的后台进程,不是所有的进程。其中DBWn,ARCn可以设置数据库启动时的数量。这些进程在系统中可以不止一个。


    
    








    展开全文
  • linux内核源码分析之物理内存组织结构

    千次阅读 热门讨论 2022-04-30 15:11:16
    linux内核物理内存架构
  • 1、oracle内存由SGA+PGA所构成 2、oracle数据库体系结构 数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。     oracle工作原理: 1)、在数据库服务器上启动Oracle实例;...
  • 五、内存结构

    2022-02-17 14:00:05
    物理内存包括半导体内存和换页文件(磁盘)两部分。 虚拟内存物理内存之间存在对应关系,当应用程序访问虚拟内存时,系统内核会依据这种对应关系找到与之相应的物理内存。上述对应关系存储在内核中的内存映射表中...
  • 王道数据结构学习笔记
  • Linux内核的管理实际上是对如内存节点(pglist_data)、内存管理区(zone),虚拟内存页(page),mem_map[]数组,页表项(PTE),物理内存页框号(PFN),物理地址(paddress)等数据结构的管理。那么接下来我们把...
  • 文件物理结构

    千次阅读 2021-04-08 23:35:23
    文件的物理结构 一、概述 1. 什么是文件的物理结构 这要从操作系统的功能引入,我们都知道,操作系统是最接近硬件的系统软件,操作系统的功能之一就是对外设—磁盘的管理,而磁盘中通常存储了一系列文件数据,因此,...
  • 数据结构中的逻辑结构和物理结构

    千次阅读 多人点赞 2019-06-18 10:56:28
    按照视点的不同,我们把数据结构分为逻辑结构和物理结构。 一、逻辑结构:是指数据对象中数据元素之间的相互关系。 逻辑结构分为以下四种: 1、集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间...
  • 详解计算机内存 前言 计算机是进行数据处理的设备,而程序表示的就是处理顺序和数据结构。。由于处理对象数据是存储在内存和磁盘上...本文详解内存物理结构,逻辑结构以及利用内存构建各种各样数据结构的应用。 ...
  • 逻辑结构 存储关系 存储结构 如何存储表数据 表空间(tablespace) 常用表空间 表空间和数据文件的关系 ...Oracle系统体系结构由三部分组成:逻辑结构、物理结构和实例。 逻辑结构 Oracle的逻辑结构是一种...
  • 虚拟内存物理内存

    千次阅读 2021-06-16 23:03:41
    一、从程序到进程: 我们都知道Linux下一个C程序的生成分为...2.在编译阶段,编译器将以.i为扩展名的文本文件翻译成以.s作为扩展名的文本文件,它包含一个汇编语言程序。 3.在汇编阶段,汇编器将以.s为扩展名的文本文件
  • 1.逻辑结构: 所谓逻辑结构就是数据与数据之间的关联关系,准确的说是数据元素之间的关联关系。 注:所有的数据都是由...数据的物理结构就是数据存储在磁盘中的方式。官方语言为:数据结构在计算机中的表示(又...
  • 一文理解虚拟内存物理内存内存分配、内存管理 - 知乎 目录 一、虚拟内存物理内存 1.1 虚拟内存 1.2 虚拟内存物理内存 二、C/C++中虚拟内存分配模型 2.1 C语言中内存分配模型 2.2 C++语言中内存分配...
  • Oracle的物理存储结构

    千次阅读 2021-05-05 01:13:01
    Oracle数据库的体系结构是从某一角度来分析数据库的组成,工作过程以及数据库如何管理和组织数据的,主要包括物理存储结构,逻辑存储结构内存结构以及进程结构。Oracle的物理存储结构:Oracle物理存储结构主要包括...
  • 上一章我们梳理了Node, Zone, Page Frame的整个流程,本章就来整理其关系和数据结构之间的关系。 1. 基本概念 NUMA(Non-Uniform Memory ...每个CPU对应一个本地物理内存 在内核中用pg_data_t类型,表示节点的结构体成
  • 逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。 1.1 所谓集合结构: 表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据元素之间没有任何关系。如下图所示。 1.2 线性结构: ...
  • 写在前面 一、物理内存数据结构 二、物理内存初始化流程
  • 数据结构的逻辑结构及物理结构

    千次阅读 2019-05-17 14:11:19
    1、数据的逻辑结构 1.1、集合结构:集合中任何两个数据元素之间都没有逻辑关系,组织形式松散. 1.2、 线性结构:开始节点和终端节点都是唯一的,第一个节点认为是开始节点,第四个节点认为是终端节点。除了开始节点...
  • 一、文件的物理结构(文件实现) (一)文件块、磁盘块(二)文件分配方式1. 连续分配 连续分配 方式要求 每个文件在磁盘上占有一组连续的块 优点 :支持顺序访问和直接访问(即随机访问);连续分配的文件在顺序...
  • oracle数据库的物理结构及逻辑结构

    千次阅读 2017-09-02 18:24:17
    2.1 物理结构 ...常见的物理结构包括:控制文件、数据文件、重作日志文件、归档日志文件、初始化参数文件、还有其它文件(密码文件、报警日志文件和后台及用户跟踪文件)。  控制文件  Select* from
  • 逻辑结构和物理结构

    千次阅读 2019-01-12 16:51:26
    1、逻辑结构分为集合结构,线性结构(1对1),树形结构(1对多),图形结构(多对多)2、物理结构分为顺序存储结构(基于连续内存),链式存储结构(基于节点)。注:B树也是树形结构,是二叉搜索树的扩展。二叉搜索...
  • linux内存管理结构

    2013-04-21 16:38:05
    很清晰的描述了linux内存虚拟及物理内存的划分,包括: node介绍 zone介绍 3G~4G内核空间布局 内核整体mm管理结构
  • 文件的物理结构四种基本结构比较

    千次阅读 2020-07-09 18:04:38
    1、顺序结构 优点: 结构简单,实现容易,顺序存取速度快。 缺点: 1、用户创建文件时要给出文件的大小; 2、不利于文件的动态增加和修改; 3、对每个文件要求存放在存储介质上的 2、链接文件 优点: 1、提高了磁盘...
  • 物理内存内存碎片、伙伴系统、slab分配器
  • 数据库原理(十 )- 物理结构设计前言 前言
  • ORACLE内存结构

    千次阅读 2019-04-06 23:19:16
    为了对ORACLE数据库有一个基本的了解,我们首先需要理解ORACLE的内存结构。           可以大体上将ORALCE内存分为以下几类: System Global a...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 299,961
精华内容 119,984
关键字:

内存的物理结构包括