1、1内容提要内容提要ORACLE的基础架构和主要组件的基础架构和主要组件ORACLE的物理结构的物理结构ORACLE的内存结构和后台进程的内存结构和后台进程ORACLE的逻辑结构的逻辑结构ORACLE的启动和关闭的启动和关闭2PasswordfileORACLE的基础架构和主要组件的基础架构和主要组件InstanceSGARedo LogBufferShared PoolData DictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersUserprocessServerprocessPGAControl filesDatafiles Databa
2、seDatabaseBuffer CacheRedo Log filesJava PoolLarge PoolParameterfileArchived Log files3Oracle服务器服务器ORACLE服务器服务器:数据库管理系统,提供开放、数据库管理系统,提供开放、全面、完整的信息解决方案全面、完整的信息解决方案包括实例和数据库包括实例和数据库Oracle server4Oracle实例实例Oracle实例实例:访问数据库的方式访问数据库的方式对应着一个数据库对应着一个数据库包括内存结构和后台进程包括内存结构和后台进程后台进程后台进程内存结构内存结构InstanceSGARedo L
3、ogBufferShared PoolData DictionaryCacheLibraryCacheDBWRSMONPMONCKPTLGWROthersDatabaseBuffer CacheJava PoolLarge Pool5Oracle数据库数据库Oracle数据库数据库:数据的集合,是一个整体数据的集合,是一个整体包括三类文件包括三类文件PasswordfileParameterfileArchived Log filesControl filesDatafiles Redo Log filesOracle 数据库数据库6ORACLE的物理结构的物理结构ORACLE的物理结构包括的
4、物理结构包括:控制文件控制文件数据文件数据文件在线日志文件在线日志文件ControlfilesDatafiles(includes Data Dictionary)HeaderOnlineRedo Logfiles7控制文件控制文件二进制文件二进制文件 定义了当前数据库的状态定义了当前数据库的状态维护数据完整性维护数据完整性 用在用在:数据库的数据库的mount阶段阶段操作数据库时操作数据库时指向一个数据库指向一个数据库丢失需要恢复丢失需要恢复在创建数据库时定义了大小在创建数据库时定义了大小 Control filesDatabase8数据文件数据文件数据库存储数据的文件:数据库存储数据的文件
5、:只能属于一个数据库和表空间只能属于一个数据库和表空间用户对象的存储空间用户对象的存储空间数据库数据库表空间表空间数据文件数据文件9在线日志文件在线日志文件在线日志文件的特征在线日志文件的特征:记录了所有数据库的变化记录了所有数据库的变化提供恢复机制提供恢复机制按照组的形势进行管理按照组的形势进行管理最少需要两组最少需要两组Redo log files10ORACLE的内存结构的内存结构ORACLE的内存结构包括的内存结构包括:系统全局区系统全局区(SGA):在数据库启动是分配,是在数据库启动是分配,是ORACLE实例的基础实例的基础程序全局程序全局(PGA):在服务器进程启动时分配在服务器进
6、程启动时分配11系统全局区系统全局区系统全局区包括以下内存组件系统全局区包括以下内存组件:共享池共享池(Shared Pool)数据缓冲区数据缓冲区(Database Buffer Cache)日志缓冲区日志缓冲区(Redo Log Buffer)其他内存结构其他内存结构(锁和闩的管理锁和闩的管理,统计信息等统计信息等)系统全局区还可以配置以下额外的组件系统全局区还可以配置以下额外的组件:大池大池(Large Pool)Java池池(Java Pool)12系统全局区系统全局区可以动态调整可以动态调整大小由大小由 SGA_MAX_SIZE 参数控制参数控制系统全局区的内存组件按照粒度来管理系统
7、全局区的内存组件按照粒度来管理:持续的内存区域持续的内存区域粒度的大小由粒度的大小由 SGA_MAX_SIZE决定决定13共享池共享池用于存放用于存放:最近执行的最近执行的SQL语句语句最近使用的数据字典信息最近使用的数据字典信息包含两个包含两个:库缓存库缓存(Library Cache)数据字典缓存数据字典缓存(Data Dictionary Cache)大小由大小由SHARED_POOL_SIZE参数确定参数确定Shared PoolDataDictionaryCacheLibraryCacheALTER SYSTEM SET SHARED_POOL_SIZE=64M;14库缓存库缓存(L
8、ibrary Cache)存储了最近执行的存储了最近执行的SQL和和PL/SQL语句信息语句信息提供相同语句的共享提供相同语句的共享使用使用LRU算法管理算法管理包括两个组件包括两个组件:共享共享SQL区区(Shared SQL area)共享共享PL/SQL区区(Shared PL/SQL area)大小由共享池的大小决定大小由共享池的大小决定15数据字典缓存数据字典缓存(Data Dictionary Cache)存储了最近使用的数据字典信息存储了最近使用的数据字典信息包括数据文件包括数据文件,表表,索引索引,权限权限,用户等信息用户等信息在语句解析阶段在语句解析阶段,ORACLE服务器查
9、看数据字典来验证服务器查看数据字典来验证语句的信息语句的信息缓存数据字典信息能够提高缓存数据字典信息能够提高DML语句和查询语句的速度语句和查询语句的速度大小有共享池大小决定大小有共享池大小决定16数据缓冲区数据缓冲区(Database Buffer Cache)缓存了从数据文件获得的块信息缓存了从数据文件获得的块信息在发生查询、更新操作时,能够极大的提升性能在发生查询、更新操作时,能够极大的提升性能由由LRU算法管理算法管理大小由大小由DB_BLOCK_SIZE大小决定大小决定Database BufferCache17数据缓冲区数据缓冲区(Database Buffer Cache)包括以
10、下三个子结构包括以下三个子结构:DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE可以动态调整可以动态调整设置设置DB_CACHE_ADVICE来收集数据缓冲区的使用信息来收集数据缓冲区的使用信息统计信息可以通过统计信息可以通过 V$DB_CACHE_ADVICE视图查看视图查看ALTER SYSTEM SET DB_CACHE_SIZE=96M;18日志缓冲区(日志缓冲区(Redo Log Buffer)记录了所有数据库发生的变化记录了所有数据库发生的变化主要用于数据库恢复主要用于数据库恢复数据库改变为日志记录数据库改变为日志记录日志记录
11、包含了结构改变的信息日志记录包含了结构改变的信息大小由大小由LOG_BUFFER决定决定Redo LogBuffer19大池大池系统全局区中的可选组件系统全局区中的可选组件用于减轻共享池的负担用于减轻共享池的负担使用于使用于:共享服务器模式下的会话内存共享服务器模式下的会话内存(UGA)I/O 服务器进程服务器进程RMAN备份和恢复时使用备份和恢复时使用当配置参数当配置参数PARALLEL_AUTOMATIC_TUNING 为为TRUE时时使用使用不使用不使用 LRU 列表列表由由LARGE_POOL_SIZE参数控制大小参数控制大小可以动态调整可以动态调整20Java池池用于解析用于解析JA
12、VA应用应用如果使用如果使用JAVA应用应用,需要配置需要配置JAVA池池由由JAVA_POOL_SIZE参数指定大小参数指定大小21程序全局区程序全局区连接到连接到oracle服务器的用户进程的保服务器的用户进程的保留地址留地址当进程创建时被分配当进程创建时被分配进程终止时回收进程终止时回收只能被一个进程使用只能被一个进程使用UserprocessPGAServerprocess22进程结构进程结构ORACLE有多种进程结构有多种进程结构:用户进程用户进程:当用户发起连接到数据库服务器时生成当用户发起连接到数据库服务器时生成服务器进程服务器进程:当用户发出连接请求时生成,并当用户发出连接请求
13、时生成,并后台进程后台进程:Started when an Oracle instance is started23用户进程用户进程用来访问用来访问ORACLE服务器的客户端进程服务器的客户端进程首先需要建立连接首先需要建立连接不直接访问不直接访问ORACLE服务器,和服务器进程进行交互服务器,和服务器进程进行交互Database userServerprocessUserprocessConnectionestablished24服务器进程服务器进程在在ORACLE服务器上生成,直接和服务器上生成,直接和ORACLE服务器进服务器进行交互行交互完成调用并返回结果完成调用并返回结果可分为共享服
14、务器和独占服务器可分为共享服务器和独占服务器Connection establishedSession createdDatabase userUserprocessServerprocessOracle server25后台进程后台进程维护内存和物理文件之间的关系维护内存和物理文件之间的关系:必须的后台进程必须的后台进程:DBWnPMONCKPTLGWRSMON可选的后台进程可选的后台进程:ARCnLMDn QMNnCJQ0LMON RECODnnnLMS SnnnLCKnPnnn26数据写进程数据写进程(DBWn)DBWn将数据缓冲区中改变的数将数据缓冲区中改变的数据写回到数据文件,发生于
15、据写回到数据文件,发生于:检查点发生检查点发生脏数据库达到阈值脏数据库达到阈值没有剩余缓冲区时没有剩余缓冲区时超时发生超时发生RAC 模式下发生模式下发生ping操作操作表空间离线表空间离线表空间只读表空间只读删除或截断表删除或截断表表空间至于备份状态表空间至于备份状态InstanceSGAControl filesData files Redo Log filesDatabaseDBWnDatabaseBufferCache27日志写进程日志写进程(LGWR)将日志缓冲区的日志写入日将日志缓冲区的日志写入日志文件,发生于志文件,发生于:提交操作提交操作日志缓冲区日志缓冲区1/3满满Redo达
16、到达到1mb时时每每3秒钟秒钟在每次在每次DBWn前前InstanceSGAControl filesData files Redo Log filesDatabaseRedo LogBufferDBWn LGWR28系统监控进程系统监控进程(SMON)用于用于:实例恢复实例恢复应用在线日志中应用在线日志中的日志的日志打开数据库打开数据库回滚未提交的事回滚未提交的事务务整合空余空间整合空余空间回收临时段回收临时段Control filesData files Redo Log filesDatabaseInstanceSGASMON29进程监控进程进程监控进程(PMON)当进程失败时当进程失败
17、时:回滚事务回滚事务释放锁释放锁释放其他资源释放其他资源重启崩溃的派遣器进程重启崩溃的派遣器进程PGA areaInstanceSGAPMON30检查点进程检查点进程(CKPT)用于用于:触发触发DBWn进程写脏进程写脏数据数据更新数据文件头中的更新数据文件头中的检查点信息检查点信息更新控制文件中的检更新控制文件中的检查点信息查点信息 Control filesData files Redo Log filesDatabaseInstanceSGADBWn LGWRCKPT31归档进程归档进程(ARCn)可选的后台组件可选的后台组件当设置为归档模式时,自动归档写满的日志文件当设置为归档模式时,
18、自动归档写满的日志文件保存了数据库中所有的改变保存了数据库中所有的改变ARCnArchived redo log filesControl filesDatafiles Redo log files32ORACLE的逻辑结构的逻辑结构指示数据库的物理空间的使用指示数据库的物理空间的使用包括表空间(包括表空间(tablespaces),段(段(segments),区区(extents),块(块(blocks)TablespaceDatafileSegmentBlocksExtentSegment33ORACLE的启动和关闭的启动和关闭初始化参数初始化参数ORACLE的启动的启动ORACLE的关闭
19、的关闭34初始化参数文件初始化参数文件用于启动数据库时指定参数用于启动数据库时指定参数参数的两种类型参数的两种类型:显式显式:在初始化参数文件进行了定义在初始化参数文件进行了定义隐式隐式:在初始化参数文件中没有进行了定义,使用该参数在初始化参数文件中没有进行了定义,使用该参数的默认值的默认值记录改变是否生效取决于参数文件的类型记录改变是否生效取决于参数文件的类型:静态的初始化参数静态的初始化参数,PFILE 永久的服务器初始化参数永久的服务器初始化参数,SPFILE35STARTUP 命令命令参数文件的启动顺序参数文件的启动顺序:spfileSID.oraDefault SPFILEinitS
20、ID.oraDefault PFILE指定启动时的指定启动时的pfile指定启动时的指定启动时的spfileSTARTUP PFILE=$ORACLE_HOME/dbs/initDBA1.oraStartup SPFILE=/database/startup/spfileDBA1.ora36启动启动ORACLE数据库数据库OPENMOUNTNOMOUNTSHUTDOWN打开所有的数据库文件,数打开所有的数据库文件,数据库打开据库打开打开控制文件打开控制文件启动实例启动实例STARTUPSHUTDOWN37ALTER DATABASE 命令命令改变数据库的改变数据库的 NOMOUNT 模式到模式
21、到 MOUNT:以只读方式打开数据库以只读方式打开数据库:ALTER DATABASE db01 MOUNT;ALTER DATABASE db01 OPEN READ ONLY;38限制模式打开数据库限制模式打开数据库使用使用startup restirct命令限制用户的登陆命令限制用户的登陆:使用使用 ALTER SYSTEM 命令将启动的实例改变为限制模命令将启动的实例改变为限制模式式STARTUP RESTRICTALTER SYSTEM ENABLE RESTRICTED SESSION;39只读方式打开数据库只读方式打开数据库数据库只读数据库只读:可以执行可以执行:查询语句查询语句可以将数据库文件改为离线和在线可以将数据库文件改为离线和在线对离线数据进行恢复对离线数据进行恢复STARTUP MOUNTALTER DATABASE OPEN READ ONLY;