2021年Oracle基础架构PPT课件
内容提要,ORACLE的基础架构和主要组件 ORACLE的物理结构 ORACLE的内存结构和后台进程 ORACLE的规律结构 ORACLE的启动和关闭,ORACLE的基础架构和主要组件,Instance,SGA,Redo LogBuffer,Shared Pool,Data DictionaryCache,Library Cache,DBWR,SMON,PMON,CKPT,LGWR,Others,Userprocess,Serverprocess,PGA,Control files,Data files,Database,DatabaseBuffer Cache,Redo Log files,Java Pool,Large Pool,Parameter file,Archived Log files,Oracle服务器,ORACLE服务器: 数据库治理系统,供应开放,全面,完整的信息解决方案 包括实例和数据库,Oracle实例,Oracle实例: 拜望数据库的方式 对应着一个数据库 包括内存结构和后台进程,后台进程,内存结构,Instance,SGA,Redo LogBuffer,Shared Pool,Data DictionaryCache,Library Cache,DBWR,SMON,PMON,CKPT,LGWR,Others,DatabaseBuffer Cache,Java Pool,Large Pool,Oracle数据库,Oracle数据库: 数据的集合,是一个整体 包括三类文件,ORACLE的物理结构,ORACLE的物理结构包括: 把握文件 数据文件 在线日志文件,Control files,Data files (includes Data Dictionary),Header,Online Redo Log files,把握文件,二进制文件 定义了当前数据库的状态 疼惜数据完整性 用在: 数据库的mount阶段 操作数据库时 指向一个数据库 丢失需要复原 在创建数据库时定义了大小,Control files,Database,数据文件,数据库储备数据的文件: 只能属于一个数据库和表空间 用户对象的储备空间,数据库,表空间,数据文件,在线日志文件,在线日志文件的特点: 记录了全部数据库的变化 供应复原机制 依据组的形势进行治理 最少需要两组,Redo log files,ORACLE的内存结构,ORACLE的内存结构包括: 系统全局区 (SGA): 在数据库启动是支配,是ORACLE实例的基础 程序全局 (PGA): 在服务器进程启动时支配,系统全局区,系统全局区包括以下内存组件: 共享池(Shared Pool) 数据缓冲区(Database Buffer Cache) 日志缓冲区(Redo Log Buffer ) 其他内存结构 (锁和闩的治理,统计信息等) 系统全局区仍可以配置以下额外的组件: 大池(Large Pool) Java池(Java Pool),系统全局区,可以动态调整 大小由 SGA_MAX_SIZE 参数把握 系统全局区的内存组件依据粒度来治理: 连续的内存区域 粒度的大小由 SGA_MAX_SIZE预备,共享池,用于存放: 最近执行的SQL语句 最近使用的数据字典信息 包含两个: 库缓存(Library Cache) 数据字典缓存(Data Dictionary Cache) 大小由SHARED_POOL_SIZE参数确定,Shared Pool,DataDictionary Cache,Library Cache,ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;,库缓存(Library Cache),储备了最近执行的SQL和PL/SQL语句信息 供应相同语句的共享 使用LRU算法治理 包括两个组件: 共享SQL区(Shared SQL area) 共享PL/SQL区( Shared PL/SQL area) 大小由共享池的大小预备,数据字典缓存(Data Dictionary Cache),储备了最近使用的数据字典信息 包括数据文件,表,索引,权限,用户等信息 在语句解析阶段,ORACLE服务器查看数据字典来验证语句的信息 缓存数据字典信息能够提高DML语句和查询语句的速度 大小有共享池大小预备,数据缓冲区(Database Buffer Cache),缓存了从数据文件获得的块信息 在发生查询,更新操作时,能够极大的提升性能 由LRU算法治理 大小由DB_BLOCK_SIZE大小预备,Database BufferCache,数据缓冲区(Database Buffer Cache),包括以下三个子结构: DB_CACHE_SIZE DB_KEEP_CACHE_SIZE DB_RECYCLE_CACHE_SIZE 可以动态调整 设置DB_CACHE_ADVICE来收集数据缓冲区的使用信息 统计信息可以通过 V$DB_CACHE_ADVICE视图查看,ALTER SYSTEM SET DB_CACHE_SIZE = 96M;,日志缓冲区(Redo Log Buffer),记录了全部数据库发生的变化 主要用于数据库复原 数据库转变为日志记录 日志记录包含了结构转变的信息 大小由LOG_BUFFER预备,Redo LogBuffer,大池,系统全局区中的可选组件 用于减轻共享池的负担 使用于: 共享服务器模式下的会话内存 (UGA) I/O 服务器进程 RMAN备份和复原时使用 当配置参数PARALLEL_AUTOMATIC_TUNING 为TRUE时使用 不使用 LRU 列表 由LARGE_POOL_SIZE参数把握大小 可以动态调整,Java池,用于解析JAVA应用 假如使用JAVA应用,需要配置JAVA池 由JAVA_POOL_SIZE参数指定大小,程序全局区,连接到oracle服务器的用户进程的保留地址 当进程创建时被支配 进程终止时回收 只能被一个进程使用,Userprocess,PGA,Serverprocess,进程结构,ORACLE有多种进程结构: 用户进程: 当用户发起连接到数据库服务器时生成 服务器进程: 当用户发出连接恳求时生成,并 后台进程: Started when an Oracle instance is started,用户进程,用来拜望ORACLE服务器的客户端进程 第一需要建立连接 不直接拜望ORACLE服务器,和服务器进程进行交互,Database user,Serverprocess,Userprocess,Connectionestablished,服务器进程,在ORACLE服务器上生成,直接和ORACLE服务器进行交互 完成调用并返回结果 可分为共享服务器和独占服务器,Connection established,Session created,Database user,Userprocess,Serverprocess,后台进程,疼惜内存和物理文件之间的关系: 必需的后台进程: DBWnPMONCKPT LGWRSMON 可选的后台进程: ARCnLMDn QMNn CJQ0LMON RECO DnnnLMS Snnn LCKnPnnn,数据写进程 (DBWn),DBWn将数据缓冲区中转变的数据写回到数据文件,发生于: 检查点发生 脏数据库达到阈值 没有剩余缓冲区时 超时发生 RAC 模式下发生ping操作 表空间离线 表空间只读 删除或截断表 表空间至于备份状态,Instance,SGA,Control files,Data files,Redo Log files,Database,DBWn,Database BufferCache,日志写进程 (LGWR),将日志缓冲区的日志写入日志文件,发生于: 提交操作 日志缓冲区1/3满 Redo达到1mb时 每3秒钟 在每次DBWn前,Instance,SGA,Control files,Data files,Redo Log files,Database,Redo Log Buffer,DBWn,LGWR,系统监控进程 (SMON),用于: 实例复原 应用在线日志中的日志 打开数据库 回滚未提交的事务 整合空余空间 回收临时段,Control files,Data files,Redo Log files,Database,Instance,SGA,SMON,进程监控进程 (PMON),当进程失败时: 回滚事务 释放锁 释放其他资源 重启崩溃的派遣器进程,PGA area,Instance,SGA,PMON,检查点进程 (CKPT),用于: 触发DBWn进程写脏数据 更新数据文件头中的检查点信息 更新把握文件中的检查点信息,Instance,SGA,DBWn,LGWR,CKPT,归档进程 (ARCn),可选的后台组件 当设置为归档模式时,自动归档写满的日志文件 储存了数据库中全部的转变,ARCn,Archived redo log files,ORACLE的规律结构,指示数据库的物理空间的使用 包括表空间( tablespaces),段(segments), 区(extents), 块(blocks),Tablespace,Datafile,Segment,Blocks,Extent,Segment,ORACLE的启动和关闭,初始化参数 ORACLE的启动 ORACLE的关闭,初始化参数文件,用于启动数据库时指定参数 参数的两种类型: 显式:在初始化参数文件进行了定义 隐式:在初始化参数文件中没有进行了定义,使用该参数的默认值 记录转变是否生效取决于参数文件的类型: 静态的初始化参数, PFILE 永久的服务器初始化参数, SPFILE,STARTUP 命令,参数文件的启动次序: spfileSID.ora Default SPFILE initSID.ora Default PFILE 指定启动时的pfile 指定启动时的spfile,STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora,Startup SPFILE = /database/startup/spfileDBA1.ora,启动ORACLE数据库,OPEN,MOUNT,NOMOUNT,SHUTDOWN,打开全部的数据库文件,数据库打开,打开把握文件,启动实例,STARTUP,SHUTDOWN,ALTER DATABASE 命令,转变数据库的 NOMOUNT 模式到 MOUNT: 以只读方式打开数据库:,ALTER DATABASE db01 MOUNT;,ALTER DATABASE db01 OPEN READ ONLY;,限制模式打开数据库,使用startup restirct命令限制用户的登陆: 使用 ALTER SYSTEM 命令将启动的实例转变为限制模式,STARTUP RESTRICT,ALTER SYSTEM ENABLE RESTRICTED SESSION;,只读方式打开数据库,数据库只读: 可以执行: 查询语句 可以将数据库文件改为离线和在线 对离线数据进行复原,STARTUP MOUNT ALTER DATABASE OPEN READ ONLY;,