Oracle基础知识_第一讲

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一讲ORACLE数据库架构二零一零年六月总体介绍课程目的通过此门课程可以学习到的技能:安装、建立和管理ORACLE10G的企业版数据库Oracle数据库产品OracleDatabase10g提供了四个版本,每个版本适用于不同的开发和部署环境Oracle数据库10g标准版1Oracle数据库10g标准版2Oracle数据库10g企业版Oracle数据库10g个人版关系型数据库系统表属性行列数据如何组织EMPLOYEESDEPARTMENTS完整性约束结构化查询语言SQLStructuredquerylanguage(SQL):是一种用于获取及更改数据库信息的标准的交互式编程语言SQL语句可以完成各种任务,如:查询数据从表中插入、更改、删除数据建立,替代,更改和删除对象控制对数据库及其对象的访问保证数据库的一致性及完整性ORACLE数据库管理员的任务按优化顺序安排ORACLE数据库的设计、实现及维护工作:1.评估数据库服务器的硬件.2.安装ORACLE软件.3.规划数据库.4.建立并打开数据库.5.备份数据库.6.管理系统用户.7.执行数据库的设计.8.从故障中恢复数据库.9.监控数据库性能.ORACLE数据库体系结构目标学习此章,需要掌握以下知识:描述数据库体系结构理解实例结构Oracle的主要组成部分Oracle的主要组成部分Oracleserver由Oracleinstance和Oracledatabase组成。Oracleinstance由后台进程和内存结构构成。Oracledatabase由多个操作系统文件(数据库文件)构成。其它组成部分OracleServerOracleInstance用于存取Oracledatabase一次只能打开一个数据库建立连接与创建会话连接与会话连接(connection)连接是用户进程与服务器进程之间的一条通信路径。会话(Session)会话是用户到OracleServer的一次特定连接。OracleDatabase物理结构ORACLE数据库包含三种文件控制文件、数据文件、联机日志文件ControlfilesDatafiles(includesDataDictionary)HeaderOnlineRedoLogfiles控制文件包含数据库的物理结构信息多路复用防止损坏或丢失在实例启动时就需要控制文件分为两种类型可重用和不可重用控制文件为二进制文件通过alterdatabasebackupcontrolfiletotrace命令备份控制文件控制文件联机日志文件用来记录数据库的改变多路复用防止损坏或丢失RedologbufferLogwriterLGWRGroup1Group2Group3联机日志文件至少要有两组。只有记录的修改写入数据文件,(归档模式下已经归档)才会被重用。建议每组至少两个成员。联机日志文件io任务重,建议将数据文件和日志文件分开磁盘放置,联机日志文件和归档日志文件分开磁盘存放。表空间和数据文件表空间由一个或多个数据文件组成数据文件只属于一个表空间无法使system表空间或者含有活动回退段的表空间脱机USERSTablespaceDatafile1Datafile2ORACLE实例的管理SystemMonitorSMONDatabaseWriterDBW0LogWriterLGWRProcessMonitorPMONArchiverARC0SGAJavaPoolSharedPoolLargePoolStreamsPoolDatabaseBufferCacheRedoLogBufferCheckpointCKPTOracle的内存结构JavaPoolDatabaseBufferCacheRedoLogBufferSharedPoolLargePoolSGAStreamsPoolServerProcess1PGAServerProcess2PGABack-groundProcessPGAOracle的内存结构Oracle的内存结构由以下两个部分组成:SystemGlobalArea(SGA):OracleInstance的基本组成部分,在实例启动时分配。ProgramGlobalArea(PGA):当服务器进程启动时分配,在结束时回收SystemGlobalArea(SGA)SGA由以下内存结构构成SharedPoolDatabaseBufferCacheRedoLogBuffer其它结构还可以选择为SGA配置以下三个可选的内存结构:LargePoolJavaPoolStreamPoolSHOWSGA;SystemGlobalArea(SGA)可动态调整大小由SGA_MAX_SIZE/SGA_TARGET决定SGA的分配以GRANULE为单位连续的虚拟内存分配Granule的大小由sga_max_size决定SharedPoolSharedPool用于缓存最近被执行的SQL语句和最近被使用的数据定义。它主要由两个内存结构构成:LibrarycacheDatadictionarycache修改共享池的大小ALTERSYSTEMSETSHARED_POOL_SIZE=64M;LibraryCacheLibrayCache缓存最近被执行的SQL和PL/SQL的相关信息。实现常用语句的共享使用LRU算法进行管理由以下两个结构构成:SharedSQLareaSharedPL/SQLareaDataDictionaryCacheDatadictionarycache缓存最近被使用的数据库定义。它包括关于数据库文件、表、索引、列、用户、权限以及其它数据库对象的信息。在语法分析阶段,ServerProcess访问数据字典中的信息以解析对象名和对存取操作进行验证。将数据字典信息缓存在内存中有助于缩短响应时间。DatabaseBufferCacheDatabaseBufferCache用于缓存从数据文件中检索出来的数据块。可以大大提高查询和更新数据的性能。使用LRU算法进行管理Db_block_size决定数据库的primary数据块的大小DatabaseBufferCache由几个独立的子缓冲区组成DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE可以动态更改altersystemsetdb_cache_size=96MDB_CACHE_ADVICE用来提示DatabaseBufferCache的大小设置是否合适。RedoLogBufferCacheRedoLogBufferCache缓存对于数据块的所有修改。主要用于恢复其中的每一项修改记录都被称为redo条目。利用Redo条目的信息可以重做修改。由LOG_BUFFER设置大小LargePoolLargePool是SGA中一个可选的内存区域。可以减轻共享池的负担—SHAREDSERVER可以为备份、恢复等操作来使用可以用于并行操作不使用LRU算法来管理指定LargePool的大小ALTERSYSTEMSETLARGE_POOL_SIZE=64MJavaPoolJavaPool为Java命令的语法分析提供服务在安装和使用Java的情况下使用其大小由JAVA_POOL_SIZE指定STREAMPoolSTREAMPOOL为流池当使用流功能其大小由STREAM_POOL_SIZE指定ProgramGlobalArea(PGA)PGA是为每个连接到Oracledatabase的用户进程保留的内存。UserprocessPGAServerprocessProgramGlobalArea(PGA)PGA存储一个服务器进程或后台进程的数据和控制信息,并且只能由一个进程使用。它在进程创建时分配,在进程结束时被收回。进程Oracle拥有以下类型的进程:UserProcessServerProcessBackgroundProcess用户进程(UserProcess)是一个需要与OracleServer交互的程序运行于客户端当用户运行某个工具或应用程序(如SQL*Plus)时创建,当用户退出上述程序时结束向OracleServer发出调用,但它并不与OracleServer直接交互,而是通过ServerProcess与OracleServer进行交互。用户进程(UserProcess)DatabaseuserServerprocessUserprocessConnectionestablishedServerProcess是一个直接与OracleServer交互的程序。与OracleServer运行于同一台机器上使用PGA执行UserProcess发出的调用,并向UserProcess返回结果状态和结果信息。ServerProcessConnectionestablishedSessioncreatedDatabaseuserUserprocessServerprocessOracleserverBackgroundProcess后台进程用于维护物理存储与内存中的数据之间的关系。主要包括:必须的后台进程PMONCKPTLGWRSMONDBWn可选的后台进程ARCnDnnnDatabaseWriter(DBWn)DBWn在以下情况将数据写入磁盘:发生检查点达到脏缓冲区阈值没有可用的缓冲区超时将表空间设置为脱机或只读删除或截断表备份表空间LOGWriter(LGWR)LGWR在以下情况将缓冲区中的数据写入磁盘:事务提交三分之一的redo日志缓冲区已满Redo日志缓冲区中的内容超过1M每三秒钟在DBWn写磁盘之前SystemMonitor(SMON)负责检查和维护Oracledatabase的一致性。它主要完成以下工作:实例恢复重做已提交的事务打开数据库回滚未提交的事务合并数据文件中相邻的自由空间释放临时段的空间SystemMonitor(SMON)ControlfilesDatafilesRedoLogfilesDatabaseInstanceSGASMONProcessMonitor(PMON)当某个进程失效时,清除相关的资源。它主要负责以下工作:回滚用户的当前事务释放相关的锁释放其它相关的资源ProcessMonitor(PMON)PGAareaInstanceSGAPMONCheckpoint(CKPT)Checkpoint负责:使DBWn将SGA中所有被修改的数据库缓冲区的内容写入磁盘,无论事务是否被提交用检查点信息更新数据文件头用检查点信息更新控制文件它可以保证:将经常被修改的数据块写入磁盘简化实例恢复Checkpoint(CKPT)Archiver(ARCn)是一个可选的后台进程当把数据库设置为ARCHIVELOG模式时,可以自动归档联机redo日志能够保存所有对数据库所做修改的记录Archiver(ARCn)ARCnArchivedredologfilesControlfilesDatafilesRedologfiles逻辑结构描述数据库的物理空间如何被使用表空间、段、区及数据块的关系TablespaceDatafileSegmentBlocksExtentSegment段,区和块段存在于一个表空间中.一个或多个区组成一个段.一个或多个数据块组成一个区.数据块由一个或多个操作系统块组成.数据库中一个普通表就是一个段。分区表中每一个分区就是一个段。索引也是一个段。数据库中io以数据块为单位进行。段segment区extents数据块datablocks操作系统块osblocks2020/4/15数据库的逻辑和物理结构DatabaseL

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功