精华内容
下载资源
问答
  • 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可以设置数据库启动时的数量。这些进程在系统中可以不止一个。


    
    








    展开全文
  • 内存物理结构和工作原理

    千次阅读 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)。当然,延迟越小速度越快。

    展开全文
  • 1、oracle内存由SGA+PGA所构成 2、oracle数据库体系结构 数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。     oracle工作原理: 1)、在数据库服务器上启动Oracle实例;...

    oracle 体系结构

    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)、模式对象包括表、视图、索引、同义词、序列、过程和程序包等

    展开全文
  • 逻辑结构 存储关系 存储结构 如何存储表数据 表空间(tablespace) 常用表空间 表空间和数据文件的关系 ...Oracle系统体系结构由三部分组成:逻辑结构、物理结构和实例。 逻辑结构 Oracle的逻辑结构是一种...

    Oracle系统体系结构由三部分组成:逻辑结构、物理结构和实例。

    enter description here

    逻辑结构

    Oracle的逻辑结构是一种层次结构。主要由:表空间、段、区和数据块等概念组成。逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构。数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系。

    逻辑结构

    存储关系

    Oracle 数据库逻辑上是由一个或多个表空间组成的,表空间物理上是由一个或多个数据 文件组成的;而在逻辑上表空间又是由一个或多个段组成的。在Oracle 数据库中,通过为 每种不同的数据对象分配不同的段,来保存数据。例如EMP 表的所有数据会存放在EMP 段中。在Oracle 数据库中,段是由一个或多个区组成的,而区又是由连续存储的数据块所 组成的。块则是数据库的I/O 最小的单位。

    存储结构

    enter description here

    数据库可划分为被称为表空间的逻辑存储单元。每一个表空间可以包含很多的Oracle 逻辑数据块。DB_BLOCK_SIZE 参数指定了逻辑块的大小。逻辑块的大小范围为2 KB 至 32 KB,默认大小为8 KB。特定数目的相邻逻辑块构成了一个区。为特定逻辑结构分配 的一组区构成了一个段。Oracle 数据块是逻辑I/O 的最小单位。

    如何存储表数据

    创建表时,就会创建段来保存表数据。表空间包含一组段。从逻辑上讲,表包含由列值 组成的行。行最终将以行片段的形式存储在数据库块中。之所以称为行片段,是因为某些情 况下,不可以在一个位置存储一整行。当插入行由于太长而不适合单个块时,或者由于更 新而导致现有行大小超出了行的当前空间时,就会发生这种情况。

    enter description here

    表空间(tablespace)

    Oracle 数据库(tablespace)是由若干个表空间构成的。任何数据库对象在存储时都必 须存储在某个表空间中。表空间对应于若干个磁盘文件,即表空间是由一个或多个磁盘文件 构成的。表空间相当于操作系统中的文件夹,也是数据库逻辑结构与物理文件之间的一个映 射。每个数据库至少有一个表空间,表空间的大小等于所有从属于它的数据文件大小的总和。

    常用表空间

    1. 系统表空间
    2. SYSAUX 表空间
    3. 临时表空间
    4. 撤销表空间
    5. USERS表空间

    表空间和数据文件的关系

    enter description here

    • Oracle 数据库由一个或多个称为表空间的逻辑存储单元组成, 表空间作为一个整体存储数据库中的所有数据,并且一个表空
      间只能属于一个数据库。数据库的大小是该数 据库中所表空间 大小总和。
    • 从物理讲,Oracle 数据库内的每个表空间由一个或多数据文件 组成,并且一个数据文件只能属于一个表空间。表空间大是所有数据文件大小的总
      和。这些数据文件与Oracle 运行所在的操作系统的文件有一样的物理结构。
    • 数据库的所有数据都存储在数据文件中,数据库的每个表空间都由这些数据文件组 成。例如,最简单的Oracle
      数据库只有一个表空间和一个数据文件。

    段(Segment)

    段是由多个数据区构成的,它是为特定的数据库对象(如表段、索引段、回滚段、临时段)分配的一系列数据区。段内包含的数据区可以不连续,并且可以跨越多个文件。使用段的目的是用来保存特定对象。

    一个Oracle数据库有4种类型的段:

    • 数据段:数据段也称为表段,它包含数据并且与表和簇相关。当创建一个表时,系统自动创建一个以该表的名字命名的数据段。
    • 索引段:包含了用于提高系统性能的索引。一旦建立索引,系统自动创建一个以该索引的名字命名的索引段。
    • 回滚段:包含了回滚信息,并在数据库恢复期间使用,以便为数据库提供读入一致性和回滚未提交的事务,即用来回滚事务的数据空间。当一个事务开始处理时,系统为之分配回滚段,回滚段可以动态创建和撤销。系统有个默认的回滚段,其管理方式既可以是自动的,也可以是手工的。
    • 临时段:它是Oracle在运行过程中自行创建的段。当一个SQL语句需要临时工作区时,由Oracle建立临时段。一旦语句执行完毕,临时段的区间便退回给系统。

    数据区(Extent)

    数据区是一组连续的数据块。当一个表、回滚段或临时段创建或需要附加空间时,系统总是为之分配一个新的数据区。一个数据区不能跨越多个文件,因为它包含连续的数据块。使用区的目的是用来保存特定数据类型的数据,也是表中数据增长的基本单位。在Oracle数据库中,分配空间就是以数据区为单位的。一个Oracle对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。

    数据块(Data Blocks)

    数据块是Oracle最小的存储单位,Oracle数据存放在“块”中。一个块占用一定的磁盘空间。特别注意的是,这里的“块”是Oracle的“数据块”,不是操作系统的“块”。

    Oracle每次请求数据的时候,都是以块为单位。也就是说,Oracle每次请求的数据是块的整数倍。如果Oracle请求的数据量不到一块,Oracle也会读取整个块。所以说,“块”是Oracle读写数据的最小单位或者最基本的单位。

    块的标准大小由初始化参数DB_BLOCK_SIZE指定。具有标准大小的块称为标准块(Standard Block)。块的大小和标准块的大小不同的块叫非标准块(Nonstandard Block)。

    物理结构

    Oracle物理结构由多种物理文件组成。

    enter description here

    数据文件

    每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。数据文件有下列特征:
    一个数据文件仅与一个数据库联系。

    一旦建立,数据文件不能改变大小.

    一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。
    数据文件中的数据在需要时可以读取并存储在ORACLE内存储区中。

    日志文件

    每一个数据库有两个或多个日志文件(redo log file)的组,每一个日志文件组用于收集数据库日志。日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改是记录在日志中。在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到该修改,所以从不会丢失已有操作成果。
    日志文件主要是保护数据库以防止故障。为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。
    日志文件中的信息仅在系统故障或介质故障恢复数据库时使用,这些故障阻止将数据库数据写入到数据库的数据文件。然而任何丢失的数据在下一次数据库打开时,ORACLE自动地应用日志文件中的信息来恢复数据库数据文件。

    Oralce两种日志文件类型:

    • 联机日志文件 这是Oracle用来循环记录数据库改变的操作系统文件
    • 归档日志文件 这是指为避免联机日志文件重写时丢失重复数据而对联机日志文件所做的备份

    控制文件

    每一ORACLE数据库有一个控制文件(control file),它记录数据库的物理结构,包含下列信息类型:
    数据库名;
    数据库数据文件和日志文件的名字和位置;
    数据库建立日期。
    为了安全起见,允许控制文件被镜象。
    每一次ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们必须被打开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。数据恢复时,也要使用控制文件。

    参数文件

    除了构成Oracle数据库物理结构的三类主要文件外,Oracle数据库还具有另外一种重要的文件:参数文件。参数文件记录了Oracle数据库的基本参数信息,主要包括数据库名、控制文件所在路径、进程等。与旧版本的初始化参数文件INITsid.ora不同,在Oracle10g中还可以使用二进进制服务器参数文件,并且该服务器参数文件在安装Oracle数据库系统时由系统自动创建,文件的名称为SPFILEsid.ora,sid为所创建的数据库实例名。
    SPFILEsid.ora中的参数是由Oracle系统自动管理。如果想要对数据库的某些参数进行设置,则可能过OEM或ALTER SYSTEM命令来修改。用户最好不要用编辑器进行修改。

    实例(instance)

    数据库实例(也称为服务器Server)就是用来访问一个数据库文件集的一个存储结构及后台进程的集合。它使一个单独的数据库可以被多个实例访问(也就是ORACLE并行服务器– OPS)。

    实例在操作系统中用ORACLE_SID来标识,在Oracle中用参数INSTANCE_NAME来标识, 它们两个的值是相同的。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的 进程结构,内存区域和后台进程合称为一个Oracle实例。

    enter description here

    PGA与SGA的区别:

      PGA(程序缓存区)与SGA(系统全局区)类似,都是Oracle数据库系统为会话在服务器内存中分配的区域。不过两者的作用不同,共享程度也
    不同。SGA系统全局区顾名思义,是对系统内的所有进程都是共享的。当多个用户同时连接到一个例程时,所有的用户进程、服务进程都可以共
    享使用这个SGA区。为此这个SGA的主要用途就是为不同用户之间的进程与服务进程提供一个交流的平台。除了这个作用,另外有一个重要的作
    用就是各种数据库的操作主要就是在这个SGA区内完成。
    而PGA程序缓冲区则主要是为了某个用户进程所服务的。这个内存区不是共享的,只有这个用户的服务进程本身才能够访问它自己的PGA区

    展开全文
  • 数据库(Database) ...Oracle系统体系结构由三部分组成:逻辑结构、物理结构和实例。 一、Oracle的逻辑结构 Oracle的逻辑结构是一种层次结构。主要由:表空间、段、区和数据块等概念组成。逻辑结构是面
  •  oracle实例是由一组后台进程和内存结构组成,可以看成是用户与数据库之间的桥梁;   oracle数据库是一系列物理数据文件的集合(如控制文件,数据文件,参数文件,日志文件,临时文件等)。   它们的关系:...
  • 数据结构中的逻辑结构和物理结构

    千次阅读 多人点赞 2019-06-18 10:56:28
    按照视点的不同,我们把数据结构分为逻辑结构和物理结构。 一、逻辑结构:是指数据对象中数据元素之间的相互关系。 逻辑结构分为以下四种: 1、集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间...
  • oracle数据库的物理结构及逻辑结构

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

    千次阅读 2017-09-15 11:41:58
    linux虚拟内存物理内存描述
  • 数据结构的逻辑结构和物理结构

    千次阅读 多人点赞 2017-10-25 14:41:05
    数据结构:指的是数据之间的相互关系...数据结构在计算机中的表示(又称映像)称为数据的物理结构,或称存储结构。 数据的存储结构可采用顺序存储或链式存储的方法。 存储结构是数据的逻辑结构用计算机语言的实
  • 逻辑结构和物理结构

    千次阅读 2019-01-12 16:51:26
    1、逻辑结构分为集合结构,线性结构(1对1),树形结构(1对多),图形结构(多对多)2、物理结构分为顺序存储结构(基于连续内存),链式存储结构(基于节点)。注:B树也是树形结构,是二叉搜索树的扩展。二叉搜索...
  • lab2 系统内存的探测 参考博客 主要涉及操作系统的物理内存管理。 ...操作系统为了使用内存,还需高效地管理内存资源。...这里我们会了解并且自己动手完成一个...2. 然后了解如何建立对物理内存的初步管理,即了解连...
  • 逻辑结构  1, 线性  (1) 数组  (2) 链表  栈和队列是一种特殊的线性结构....  2, 非线性  (1) 树  (2) 图  物理结构  内存是线性的一维结构 逻辑结构有  1, 集合结构  2, 线性结构  3, 树
  • Oracle物理结构

    千次阅读 2009-04-10 10:29:00
    oracle物理结构在一个服务器中,每一个运行的数据库都有一个数据库实例(instancename) 相联系。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),即构成了oracle的内存结构。然后启动若干个常驻内存的...
  • 关于Linux 虚拟内存物理内存的理解。 首先,让我们看下虚拟内存: 第一层理解 1. 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构 2. 一个新进程建立的时候,将会建立起自己的内存空间...
  • 1.逻辑结构: 所谓逻辑结构就是数据与数据之间的关联关系,准确的说是数据元素之间的关联关系。 注:所有的数据都是由...数据的物理结构就是数据存储在磁盘中的方式。官方语言为:数据结构在计算机中的表示(又...
  • Oracle体系结构之物理结构

    千次阅读 2014-03-24 21:46:10
    Oracle体系结构之物理结构 以前对Oracle的了解少之又少,仅仅停留在最简单的使用层面,最近看《收获,不止Oracle》,对Oracle的整体结构有了大致的了解后再去看其他知识可能会更加容易理解一些。 一、首先Oracle是由...
  • 这涉及到数据库的物理结构和逻辑结构。 首先,你需要明白的一点是:数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为...
  • 文件系统笔记一、磁盘物理结构

    千次阅读 2018-01-11 16:31:24
    文件系统笔记一、磁盘物理结构 引言:文件系统从根本上说,就是操作系统对磁盘进行的抽象和装扮。故了解磁盘的物理结构,是我们学习文件系统的基础。 文件系统笔记一、磁盘物理结构 一、磁盘概念引入 二、...
  • JVM:图文详解Java虚拟机的内存结构

    万次阅读 多人点赞 2019-09-29 07:33:11
    本文将全面讲解Java虚拟机中的内存模型 & 分区,希望你们会喜欢
  • Linux 虚拟内存物理内存的管理

    千次阅读 2016-07-16 10:55:57
    1. 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构 2. 一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表...
  • 数据结构包括数据的逻辑结构和数据的物理结构。   1.逻辑结构 数据元素之间的逻辑关系称为数据的逻辑结构。数据的逻辑结构可以看作是从具体问题抽象出来的数学模型,它与数据的存储无关。从数学的角度观察...
  • 比如本文我们要讨论的JVM内存结构、JAVA内存结构、JAVA内存区域、Java内存模型,这就是几个截然不同的概念,但是很多人容易弄混。 可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、JAVA内存结构、JAVA内存...
  • 内存篇:JVM内存结构

    万次阅读 2019-11-01 19:50:24
    Java8相对之前的版本,JVM结构发生了较大的变化,取消了永久代,新增了元空间,同时,元空间不再与堆连续,而且是存在于本地内存(Native memory)。下面,以Java8为例,对JVM结构做一番总结。 JVM内存结构1 JVM结构...
  • 虚拟内存vs物理内存

    千次阅读 2016-08-16 15:39:27
    1. 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构   2. 一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由...
  • 虚拟内存物理内存映射解析

    千次阅读 2016-02-13 10:26:58
    在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量...
  • 数据结构的三要素是:逻辑结构,物理结构,数据的运算。 逻辑结构: 分为线性结构个非线性结构。 线性结构就是有一一对应的关系的,如A-B-C,这三个字母就符合线性结构。 非线性结构就是集合,树,图。集合就是...
  • 虚拟内存物理内存的区别和联系 在计算机的远古时代其实还没有虚存机制,程序指令所访问的内存地址就是物理内存地址. 也就是不得不把程序的全部装进内存当中,然后运行 . . 首先我们知道的物理内存其实...
  • JVM之内存结构详解

    万次阅读 2019-11-27 23:40:17
    对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。...下面,开启我们的第一篇文章《JVM之内存结构详解》。 思考一下 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 264,487
精华内容 105,794
关键字:

内存的物理结构包括