您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle基础架构
1ORACLE基础架构2内容提要•ORACLE的基础架构和主要组件•ORACLE的物理结构•ORACLE的内存结构和后台进程•ORACLE的逻辑结构•ORACLE的启动和关闭3PasswordfileORACLE的基础架构和主要组件InstanceSGARedoLogBufferSharedPoolDataDictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersUserprocessServerprocessPGAControlfilesDatafilesDatabaseDatabaseBufferCacheRedoLogfilesJavaPoolLargePoolParameterfileArchivedLogfiles4Oracle服务器ORACLE服务器:•数据库管理系统,提供开放、全面、完整的信息解决方案•包括实例和数据库Oracleserver5Oracle实例Oracle实例:•访问数据库的方式•对应着一个数据库•包括内存结构和后台进程后台进程内存结构InstanceSGARedoLogBufferSharedPoolDataDictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersDatabaseBufferCacheJavaPoolLargePool6Oracle数据库Oracle数据库:•数据的集合,是一个整体•包括三类文件PasswordfileParameterfileArchivedLogfilesControlfilesDatafilesRedoLogfilesOracle数据库7ORACLE的物理结构ORACLE的物理结构包括:•控制文件•数据文件•在线日志文件ControlfilesDatafiles(includesDataDictionary)HeaderOnlineRedoLogfiles8控制文件•二进制文件•定义了当前数据库的状态•维护数据完整性•用在:–数据库的mount阶段–操作数据库时•指向一个数据库•丢失需要恢复•在创建数据库时定义了大小ControlfilesDatabase9数据文件数据库存储数据的文件:•只能属于一个数据库和表空间•用户对象的存储空间数据库表空间数据文件10在线日志文件在线日志文件的特征:•记录了所有数据库的变化•提供恢复机制•按照组的形势进行管理•最少需要两组Redologfiles11ORACLE的内存结构ORACLE的内存结构包括:•系统全局区(SGA):在数据库启动是分配,是ORACLE实例的基础•程序全局(PGA):在服务器进程启动时分配12系统全局区•系统全局区包括以下内存组件:–共享池(SharedPool)–数据缓冲区(DatabaseBufferCache)–日志缓冲区(RedoLogBuffer)–其他内存结构(锁和闩的管理,统计信息等)•系统全局区还可以配置以下额外的组件:–大池(LargePool)–Java池(JavaPool)13系统全局区•可以动态调整•大小由SGA_MAX_SIZE参数控制•系统全局区的内存组件按照粒度来管理:–持续的内存区域–粒度的大小由SGA_MAX_SIZE决定14共享池•用于存放:–最近执行的SQL语句–最近使用的数据字典信息•包含两个:–库缓存(LibraryCache)–数据字典缓存(DataDictionaryCache)•大小由SHARED_POOL_SIZE参数确定SharedPoolDataDictionaryCacheLibraryCacheALTERSYSTEMSETSHARED_POOL_SIZE=64M;15库缓存(LibraryCache)•存储了最近执行的SQL和PL/SQL语句信息•提供相同语句的共享•使用LRU算法管理•包括两个组件:–共享SQL区(SharedSQLarea)–共享PL/SQL区(SharedPL/SQLarea)•大小由共享池的大小决定16数据字典缓存(DataDictionaryCache)•存储了最近使用的数据字典信息•包括数据文件,表,索引,权限,用户等信息•在语句解析阶段,ORACLE服务器查看数据字典来验证语句的信息•缓存数据字典信息能够提高DML语句和查询语句的速度•大小有共享池大小决定17数据缓冲区(DatabaseBufferCache)•缓存了从数据文件获得的块信息•在发生查询、更新操作时,能够极大的提升性能•由LRU算法管理•大小由DB_BLOCK_SIZE大小决定DatabaseBufferCache18数据缓冲区(DatabaseBufferCache)•包括以下三个子结构:–DB_CACHE_SIZE–DB_KEEP_CACHE_SIZE–DB_RECYCLE_CACHE_SIZE•可以动态调整•设置DB_CACHE_ADVICE来收集数据缓冲区的使用信息•统计信息可以通过V$DB_CACHE_ADVICE视图查看ALTERSYSTEMSETDB_CACHE_SIZE=96M;19日志缓冲区(RedoLogBuffer)•记录了所有数据库发生的变化•主要用于数据库恢复•数据库改变为日志记录•日志记录包含了结构改变的信息•大小由LOG_BUFFER决定RedoLogBuffer20大池•系统全局区中的可选组件•用于减轻共享池的负担•使用于:–共享服务器模式下的会话内存(UGA)–I/O服务器进程–RMAN备份和恢复时使用–当配置参数PARALLEL_AUTOMATIC_TUNING为TRUE时使用•不使用LRU列表•由LARGE_POOL_SIZE参数控制大小•可以动态调整21Java池•用于解析JAVA应用•如果使用JAVA应用,需要配置JAVA池•由JAVA_POOL_SIZE参数指定大小22程序全局区•连接到oracle服务器的用户进程的保留地址•当进程创建时被分配•进程终止时回收•只能被一个进程使用UserprocessPGAServerprocess23进程结构ORACLE有多种进程结构:•用户进程:当用户发起连接到数据库服务器时生成•服务器进程:当用户发出连接请求时生成,并•后台进程:StartedwhenanOracleinstanceisstarted24用户进程•用来访问ORACLE服务器的客户端进程•首先需要建立连接•不直接访问ORACLE服务器,和服务器进程进行交互DatabaseuserServerprocessUserprocessConnectionestablished25服务器进程•在ORACLE服务器上生成,直接和ORACLE服务器进行交互•完成调用并返回结果•可分为共享服务器和独占服务器ConnectionestablishedSessioncreatedDatabaseuserUserprocessServerprocessOracleserver26后台进程维护内存和物理文件之间的关系:•必须的后台进程:DBWnPMONCKPTLGWRSMON•可选的后台进程:ARCnLMDnQMNnCJQ0LMONRECODnnnLMSSnnnLCKnPnnn27数据写进程(DBWn)DBWn将数据缓冲区中改变的数据写回到数据文件,发生于:•检查点发生•脏数据库达到阈值•没有剩余缓冲区时•超时发生•RAC模式下发生ping操作•表空间离线•表空间只读•删除或截断表•表空间至于备份状态InstanceSGAControlfilesDatafilesRedoLogfilesDatabaseDBWnDatabaseBufferCache28日志写进程(LGWR)将日志缓冲区的日志写入日志文件,发生于:•提交操作•日志缓冲区1/3满•Redo达到1mb时•每3秒钟•在每次DBWn前InstanceSGAControlfilesDatafilesRedoLogfilesDatabaseRedoLogBufferDBWnLGWR29系统监控进程(SMON)用于:•实例恢复–应用在线日志中的日志–打开数据库–回滚未提交的事务•整合空余空间•回收临时段ControlfilesDatafilesRedoLogfilesDatabaseInstanceSGASMON30进程监控进程(PMON)当进程失败时:•回滚事务•释放锁•释放其他资源•重启崩溃的派遣器进程PGAareaInstanceSGAPMON31检查点进程(CKPT)用于:•触发DBWn进程写脏数据•更新数据文件头中的检查点信息•更新控制文件中的检查点信息ControlfilesDatafilesRedoLogfilesDatabaseInstanceSGADBWnLGWRCKPT32归档进程(ARCn)•可选的后台组件•当设置为归档模式时,自动归档写满的日志文件•保存了数据库中所有的改变ARCnArchivedredologfilesControlfilesDatafilesRedologfiles33ORACLE的逻辑结构•指示数据库的物理空间的使用•包括表空间(tablespaces),段(segments),区(extents),块(blocks)TablespaceDatafileSegmentBlocksExtentSegment34ORACLE的启动和关闭•初始化参数•ORACLE的启动•ORACLE的关闭35初始化参数文件•用于启动数据库时指定参数•参数的两种类型:–显式:在初始化参数文件进行了定义–隐式:在初始化参数文件中没有进行了定义,使用该参数的默认值•记录改变是否生效取决于参数文件的类型:–静态的初始化参数,PFILE–永久的服务器初始化参数,SPFILE36STARTUP命令•参数文件的启动顺序:–spfileSID.ora–DefaultSPFILE–initSID.ora–DefaultPFILE•指定启动时的pfile•指定启动时的spfileSTARTUPPFILE=$ORACLE_HOME/dbs/initDBA1.oraStartupSPFILE=/database/startup/spfileDBA1.ora37启动ORACLE数据库OPENMOUNTNOMOUNTSHUTDOWN打开所有的数据库文件,数据库打开打开控制文件启动实例STARTUPSHUTDOWN38ALTERDATABASE命令•改变数据库的NOMOUNT模式到MOUNT:•以只读方式打开数据库:ALTERDATABASEdb01MOUNT;ALTERDATABASEdb01OPENREADONLY;39限制模式打开数据库•使用startuprestirct命令限制用户的登陆:•使用ALTERSYSTEM命令将启动的实例改变为限制模式STARTUPRESTRICTALTERSYSTEMENABLERESTRICTEDSESSION;40只读方式打开数据库•数据库只读:•可以执行:–查询语句–可以将数据库文件改为离线和在线–对离线数据进行恢复STARTUPMOUNTALTERDATABASEOPENREADONLY;41关闭ORACLE数据库关闭模式:•A=ABORT•I=IMMEDIATE•T=TRANSACTIONAL•N=NORMALANoNoNoNoTNoNoYesYesINoNoNoYes关闭模式允许新的连接等待在线会话中断等待所有事务结束强制检查点发生NNoYesYesYes42关机选项关闭时:•数据库缓存中的脏数据写入数据文件•未提交的数据回滚•释放资源启动时:•实例不需要恢复SHUTDOWNNORMALorSHUTDOWNTRANSACTIONALorSHUTDOWNIMMEDIATE一致的数据库(cleandatabase)43关机选项启动时:•应用在线日志文件•回滚段数据进行回滚•释放资源SHUTDOWNABORT或InstanceFailure或STARTUPFORCE不一致数据库(dirtydatabase)关闭时:•数据库
本文标题:Oracle基础架构
链接地址:https://www.777doc.com/doc-11571 .html