• ORACLE DB体系结构


    wpsEB6A.tmp

    实例:一组oracle后台进程、线程以及一个共享内存区.

    连接:用户进程和实例之间的通信

    会话:用户通过用户进程与实例建立的特定连接

    参数文件:包含控制文件的位置和名称

    分为pfile和spfile

    Pfile vi/vim可编辑 init SID.oracle

    Spfile 二进制文件 不可编辑 格式为spfile+SID.ora

    Pfile和spfile互相之间可以刷新

    SQL>show parameter spfile 查参数文件位置

    cd $ORACLE_HOME/dbs/ 参数文件位于此处

    Cat init.ora 查看许多重要参数

    参数文件记录控制文件信息

    create pfile from spfile;创建pfile,从spfile刷新过去

    create spfile from pfile;创建spfile,从pfile刷新过去

    存放数据库的实际数据:数据文件

    控制文件:包含联机重做日志文件和数据文件的位置和名称,

    当前的日志序号,

    备份集的详细信息,

    SCN(系统更改号)(只读不可写)。

    控制文件一般存两份,两份里面内容完全一样

    控制文件最重要

    SQL>show parameter control_files 查控制文件位置

    select * from v$controlfile;查控制文件信息

    Cd  /u01/app/oracle/oradata/vdedu/

    联机重做日志文件:存放数据改变的记录,记录了数据库所有的更改

    里面记录了指明事物开始时的指示器、

    事物名、

    正在被更新的数据对象、

    事物的前影响(更改之前的数据)、

    事物的后影响(更改之后的数据)、

    指明事物是否完成和何时完成的提交指示器

    SQL>select * from v$logfile 查找日志文件

    SQL>select file_name from dba_data_files查找数据文件

    口令文件orapw+SID 也在$ORACLE_HOME/dbs下

    预警日志和跟踪文件

    Show parameter user_dump_dest

    Ll -lrt显示最近的

    逻辑数据库结构:段、区、块

    段存在于表空间中

    段是区的集合

    区是数据块的集合

    数据块会映射到磁盘块

    ORACLE数据块是最小单位,不能读磁盘块,只能读oracle数据块

    多个段可以组成一个表空间

    逻辑和物理数据库结构

    wpsEB7A.tmp

    如何看oracle数据块大小

    Show parameter db_block

    NAME      TYPE  VALUE

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

    db_block_buffers      integer  0

    db_block_checking      string  FALSE

    db_block_checksum      string  TYPICAL

    db_block_size      integer 8192

    表空间和数据文件

    表空间由一个或多个数据文件组成

    数据文件仅属于一个表空间

    所以数据文件和段一个级别的

    一个数据文件里允许有多个段

    一个表一个段 可以放在多个数据文件里(数据文件和段是多对多的关系)

    一个表空间可以有多个表

    wpsEB8D.tmp

    SGA系统全局区

    数据库高速缓冲区是磁盘和内存之间的容器,每个查询都是要先访问共享池再到这个容器。数据库高速缓冲区里包含了保持池,回收池和默认池

    重做日志缓冲区通过DML操作对数据库所做的更改的必要信息写入联机重做日志文件

    共享池库高速缓存是缓存PLSQL的代码,是共享访问用的,提供查询性能

    数据字典高速缓存,保存重要的数据字典信息

    分配和重用共享池中的内存:服务器进程检查共享池以查看相同语句是否已存在共享SQL区域,服务器进程分配一个代表会话的专用SQL区域

    大型池为以下内容提供大型内存分配:共享服务器的会话内存和ORACLE XA接口

    I/O服务器进程

    OracleDB备份和还原操作

    JAVA池存JAVA代码用的

    Oracle streams以独占方式使用流池内存来执行以下操作:

    —存储缓冲的队列消息

    —为oracle streams进程提供内存

    数据库缓冲区高速缓存包括:保持缓冲区池db_keep_cache_size(小的数据库对象 频繁访问的),回收缓冲区池db_recycle_cache_size(大的数据库对象,不频繁访问),默认缓冲区池db_cache_size(包含所有未分配给保持缓冲区和回收缓冲区的所有数据和对象)

    cat initVDEDU.ora

    VDEDU.__db_cache_size=654311424

    VDEDU.__java_pool_size=16777216

    VDEDU.__large_pool_size=33554432

    VDEDU.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

    VDEDU.__pga_aggregate_target=671088640

    VDEDU.__sga_target=989855744

    VDEDU.__shared_io_pool_size=0

    VDEDU.__shared_pool_size=251658240

    VDEDU.__streams_pool_size=16777216

    这些SGA里面各种内容和PGA的大小都写在了参数文件里

    Show SGA

    show sga

    Total System Global Area 1653518336 bytes

    Fixed Size     2253784 bytes

    Variable Size   956304424 bytes

    Database Buffers   687865856 bytes--数据库缓冲区

    Redo Buffers     7094272 bytes--重做日志缓冲区

    进程结构

    用户进程:-当数据库用户或批处理进程连接到oracle db时启动

    数据库进程:-服务器进程(PGA):可以连接到oracle实例,它在用户建立会话时启动。后台进程:在启动Oracle实例时启动

    DBWn:数据库写进程,将数据库缓冲区高速缓存中经过修改的缓冲区(灰数据缓冲区)写入磁盘的两种方式

    在执行其他处理时异步执行

    定期执行

    LGWR:日志写进程,将重做日志缓冲区写入磁盘上的重做日志文件中

    在以下情况执行写操作:

    用户进程提交事务处理时

    重做日志缓冲区的三分之一已满时

    在DBWn进程将经过修改的缓冲区写入磁盘之前

    每隔三秒

    CKPT:检查点进程,更新所有数据文件头用以记录检查点详细信息

    将检查点信息记录在以下位置

    控制文件

    每个数据文件头

    1. 把重做日志缓冲区的内容刷新到联机重做日志文件

    2. 把检查点的记录信息写入重做日志文件

    3. 把数据库缓冲区高速缓存的内容刷新到磁盘的数据文件

    4. 在检查点完成以后,更新数据文件头和控制文件

    PMON:进程监视器进程,清除完成后的进程和失败的进程

    SMON:系统监视器进程,在实例启动时执行恢复(执行崩溃恢复)并合并区

    ARCn归档进程:归档填满的联机重做日志文件,在发生日志切换之后,将重做日志文件复制到指定的存储设备。可以收集事物处理重做数据,并将该数据传输到备用目标位置

    RECO恢复器进程:用于分布式数据库配置,自动连接到其他那些与有问题的分布式事物处理有关的数据库,自动解决所有有问题的事物处理,删除对应于有问题的事物处理的所有行

    Emca -config dbcontrol db -repos recreate 重启enterprise

    启动和停止database control

    Emctl start dbconsole

    Emctl stop dbconsole

    初始化参数:示例

    Control_files 一个或多个控制文件名

    Db_files 最大数据库文件数

    Processes 可以同时连接的最大操作系统用户进程数

    Db_block_size 所有表空间使用的标准数据库块大小

    Db_cache_size标准块缓冲区高速缓存大小

    SGA_TARGET: 所有SGA组件的总大小

    MEMORY_TARGET: ORACLE系统范围内可用的内存

    PGA_AGGREGATE_TARGET分配给所有服务器进程的PGA内存量

    SHARED_POOL_SIZE 共享池大小(字节)

    UNDO_MANAGEMENT 要使用的还原空间管理模式

  • 相关阅读:
    欢迎大家来到氨帝萝卜的博客园
    Java利用自定义注解、反射实现简单BaseDao
    spring boot 2.0.1.RELEASE版本之消息总线 ConfigClient配置自动刷新
    spring cloud eureka server之端口8889之谜
    关于spring cloud “Finchley.RC2”版本在spring cloud config中的ArrayIndexOutOfBoundsException
    关于中间件、J2EE的一些概念
    IP地址 子网掩码 默认网关 DNS(转)
    知识点大图
    Javascript是单线程的深入分析(转)
    SQL查询--选择运算(1)
  • 原文地址:https://www.cnblogs.com/kawashibara/p/9113431.html
Copyright © 2020-2023  润新知