您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > ORACLE基本概念及操作
一.基本概念1.1数据库和数据库实例数据库(database)即数据的集合,数据库是用存储数据的一种媒介,Oracle数据库由参数文件,控制文件,数据文件,日志文件,口令文件等等文件组成。数据库实例(instance)就是我们访问数据库的通道,Oracle数据库实例由系统全局区(SystemGlobalArea,SGA)和后台进程(backgroundprocesses)组成。通常情况下,一个oracle实例只能同时打开一个oracle数据库。一个数据库能同时被多个实例打开(RAC)。1.2内存结构图Oracle内存结构SGASGA(SystemGlobalArea系统全局区域)是一组包含一个Oracle实例的数据和控制信息的共享内存结构。*是为Oracle系统分配的共享内存;*是实例的主要组成部分;*是影响数据库性能的非常重要因素;*随实例启动/关闭而被分配/回收。DBbuffercacheDatabasebuffercache:缓存了从磁盘上检索的数据块。SharedPool缓存了各会话间可共享的各种结构。Librarycache缓存了可执行的SQL和PL/SQL代码DataDictionaryCache缓存了数据字典ResultCache缓存查询结果和PL/SQL函数结果,可选LargePoollarge_pool用来分配大内存块,来处理sharedpool不适合处理的大内存分配。使用large_pool的对象主要有:*共享程服务器MTS:在SGA的large_pool中分配UGA;*语句的并行查询ParallelExection:用作进程间的消息缓冲器;*恢复管理器RMAN:备份时用作磁盘I/O缓冲器。RedoLogBuffer对数据库的任何修改都按顺序被记录在该缓冲区(插、删、改),然后由LGWR进程根据条件将更改信息批量写入磁盘的redolog文件,以节省磁盘IO。该缓存不参与ASMM的动态管理,不能自动调整大小。JavaPool保存了JVM中特定会话的javacode和数据PGAPGA(ProgramGlobalArea,程序全局区)是一个非共享的内存结构,包含了Oracle进程的独有数据和控制信息,PGA在Oracle进程启动时有OracleDatabase创建。一个PGA仅为一个服务进程或后来进程而存在,各个单独的PGA的结合称之为TotalInstancePGA或InstancePGA。PrivateSQLArea私有SQL区存储解析后的SQL语句信息和其他一些会话特有的信息,当服务进程执行SQL和PL/SQL代码时,进程使用私有SQL区来存储绑定变量,查询状态信息等。SQLWorkAreasSQL工作区也是一个私有的PGA内存区域,用于执行一些内存密集型的操作,例如,排序操作用sortarea来对一些行进行排序,hashjoin操作用hasharea创建hash表,bitmapmerge操作用bitmapmergearea来对多个bitmapindex进行merge操作。SessionMemory用于专用服务器模式时分配UGAUGAUGA(UserGlobalArea,用户全局区)存储会话变量,如登录信息等,以及其他一些数据库会话需要的信息。1.3专用服务器和共享服务器专用服务器进程(DedicatedServer,默认)每次在对Oracle进行访问的时候,Oracle服务器的Listener会得到这个访问请求,然后会为这个访问产生(在UNIX上,这是通过fork()和exec()系统调用做到的)一个新的进程来进行服务一个服务进程对应一个用户进程;优点:每个用户连接分配一个服务器进程,响应迅速及时;缺点:每个用户连接需分配一个PGA内存,资源耗费大。共享服务器进程(MultiTreadedServer)在数据库的初始化的时候就会创建一批服务器连接的进程,然后把这些连接进程放入一个连接池来进行管理。初始化的池中的进程数量在数据库初始化建立的时候是可以手动设置的。在连接建立的时候,Listener首先接受到客户端的建立连接的请求,然后Listener去生成一个叫做调度器(dipatcher)的进程与客户端进行连接。调度器把把客户端的请求放在SGA(系统全局域)的一个请求队列中,然后再共享服务器连接池中查找有无空闲的连接,然后让这个空闲的服务器进行处理。处理完毕以后再把处理结果放在SGA的相应队列中。调度器通过查询相应队列,得到返回结果,再返回给客户端。优点:共享服务器进程数量固定,占用内存资源少;缺点:大操作长时间占用共享服务器时易造成其他连接挂起。1.4进程结构图Oracle后台进程和SGA客户端进程(Clientprocesses):运行应用程序或Oracle工具代码Oracle进程:运行Oracle数据库代码,主要分为下列几种类型:后台进程(BackgroundProcesses):随实例启动而启动,执行一些维护任务,如:实例恢复,进程清理,写日志缓存/数据块缓存到磁盘等。服务进程(ServerProcesses):为客户端请求工作,如,解析SQL查询,将解析结果放入sharedpool,为每个查询语句创建执行计划,从databasebuffercache或磁盘读取数据块等。从属进程(Slaveprocesses):执行后台进程或服务进程的一些额外工作。ORACLE主要进程简述:进程名称进程完整名称简单描述完整描述属性ARCnArchiverProcess当redologfiles满或logfileswitch发生时将redologfiles归档ARCn进程仅当数据库在归档模式下切自动归档开启时存在,在这种情况下,在未完成归档时LGWR进程不能复用在线日志组。数据库会根据需要启动多个归档进程,编号从ARC0-ARC9,ARCa-ARCt.DatabaseinstanceCKPTCheckpointProcess在checkpoints点时通知DBWR进程,并将数据库最新的checkpoint更新到所有数据文件和控制文件在特定的时间CKPT通过通知DBWR进程开始写脏块的方式开始一个checkpoint请求,当各个checkpoint请求完成时,CKPT进程更新所有数据文件头和控制文件以记录最近一个checkpoint。DatabaseandASMinstancesDBWnDatabaseWriterProcess将修改过的数据块从databasebuffercache写到磁盘DBWR进程最主要的职责是写数据块到磁盘,它也处理Checkpoints,并记录数据块写入记录。DatabaseinstanceDIA0DiagnosticProcess检测并处理hang和死锁ASMandDatabaseinstancesDIAGDiagnosticCaptureProcess执行诊断日志dumpDIAG进程执行其他进程请求的诊断日志dump,并在实例或进程终止时触发dump。在ORACLERAC中,DIAG进程执行远程实例请求的全局诊断日志dump。ASMandDatabaseinstancesLGWRLogWriterProcess将redoentry写入在线日志文件Writesredoentriestotheonlineredologredologentries在SGA中的logbuffer中生成,LGWR将redologentry顺序地写入到redologfile中。如果数据库有多个日志文件,LGWR将redologentry写到一组redologfile中。DatabaseandASMinstancesMMANMemoryManagerProcess实例内存管理该进程执行实例内存组件的resizeDatabaseandASMinstancesMMONManageabilityMonitorProcess执行或计划很多管理性任务PerformsorschedulesmanymanageabilitytasksMMON进程执行很多与管理相关的任务,包括AWRsnapshot,ADDM(AutomaticDatabaseDiagnosticMonitor)分析DatabaseandASMinstancesPMONProcessMonitor监控其他后台进程并在服务进程或dispatcher进程异常终止时执行进程恢复PMON定期执行下列清理任务:*异常终止的进程*被kill的会话*被检测到的达到空闲超时时间的事务*被检测到的达到空闲超时时间的网络连接另外,PMON根据需要监控,产生,并终止下列进程:Dispatcher进程和共享服务进程Job队列进程可重起的后台进程PMON同时也负责将实例和dispatcher进程注册到监听DatabaseandASMinstancesPSP0ProcessSpawnerProcess在初始实例启动后产生ORACLE后台进程DatabaseandASMinstancesSMONSystemMonitorProcess执行一些如实例恢复,dead事务恢复等关键人物,以及一些临时空间事务,数据字典清理,undo表空间管理等管理性任务SMON执行很多数据库维护任务,包括:创建并管理临时表空间元数据*回收无主的临时段占用空间*维护undo表空间,如:online,offline,并根据undousagestatistics收缩undosegments*当数据字典不一致状态时执行清理*使用OracleFlashback特性维护SCN到时间的映射表在ORACLERAC数据库中,一个实例的SMON进程能在其他实例failed时为其他实例做实例恢复。Databaseinstance1.5物理结构数据库就是一组磁盘上存储了数据的文件的集合。构成数据库的文件包括:参数文件(parameterfile)设置内存各项参数,指定控制文件控制文件(controlfile)指定数据文件、临时文件、重做日志文件及其他控制信息数据文件(datafile)存放数据库全部数据在线日志文件(redologfile)存放所有事务日志归档日志文件(archivelogfile)重做日志文件的截断备份口令文件(passwordfile)对通过网络进行管理的用户进行验证警告文件(alertfile)记录数据库文件运行中主要时间的命令与结果跟踪文件(tracefile)记载后台进程遇到的重大事件信息1.6逻辑结构*数据库存储空间由一个或多个表空间构成;*表空间(tablespace)帮助组织数据库空间的逻辑结构,其对应物理结构是数据文件,一个表空间物理上由一个或多个数据文件组成,逻辑上由一个或多个数据段组成。*数据段(segment)是用以将逻辑对象进行分类的逻辑结构空间,如表段、索引段、回滚段等,段存储在表空间中,并对应一定的存储空间。数据段又划分为一个或多个区间。一个段只能在一个表空间中,但一个段可以包含来自同一个表空间的不同数据文件的区。*区间,简称区(Extent)区间是用于为数据一次性预留的一个逻辑上连续(物理上不一定连续)的一组磁盘空间(块),每个区间占用一定数量的数据块,区不能跨数据文件。*块(block)数据库最小的存储单位,是所有逻辑结构的基本分配单元。**区是最小的分配单元块是最小的读写单元*逻辑结构的组成示意图:逻辑结构和物理结构的关系:二.基本操作2.1查看实例进程查看smon进程:$ps-ef|grepsmonoracle31551008:30?00:00:00ora_smon_azdb命令输出结果中“ora_smon_”之后的字符串即为实例名查看所有进程:$ps-ef|grepSID|grep-vgrepSID即实例名,如:$ps-ef|grepazdb2.2sqlplus登录数据库(1)操作系统验证用户:操作系统层dba组用户:$sqlplus/assysdba操作系统层oper组用户:$sqlplus/assysoper(2)数据库验证用户(本地登录):$sqlpl
本文标题:ORACLE基本概念及操作
链接地址:https://www.777doc.com/doc-2847828 .html