ORACLE开发基础培训集团讲师:伍瑞平东南融通版权所有2本次培训的“问题”和“方法”旨在解决的问题如何进行ORACLE开发?理解上述问题解决过程的根本方法:使用ORACLE工具和ORACLESQL、PL/SQL语言进行ORACLE应用开发。AppPL/SQLSQL基础ORACLE常用工具ORACLE体系结构4第一节Oracle体系结构基本组件概览口令文件基本组件概览例程SGA重做日志缓冲区共享池数据字典高速缓存库高速缓存DBWRSMONPMONCKPTLGWR其它用户进程服务器进程PGA控制文件数据文件数据库数据库缓冲区高速缓存重做日志文件Java池大型共享池参数文件归档日志文件Oracle服务器Oracle服务器:是一个数据库管理系统,它为信息管理提供了开放、综合和集成的方法包括Oracle例程和Oracle数据库Oracle服务器Oracle例程Oracle例程:是一种访问Oracle数据库的方式始终打开一个,并且只打开一个数据库由内存结构和后台进程结构组成后台进程结构内存结构例程SGA重做日志缓冲区共享池数据字典高速缓存库高速缓存DBWRSMONPMONCKPTLGWR其它数据库缓冲区高速缓存Java池大型共享池建立连接和创建会话连接到Oracle例程包括:建立用户连接创建会话创建的会话数据库用户用户进程服务器进程建立的连接Oracle服务器Oracle数据库Oracle数据库:是一个被统一处理的数据集合包括三类文件口令文件参数文件归档的日志文件控制文件数据文件重做日志文件Oracle数据库物理结构物理结构包括以下三种文件类型:控制文件数据文件重做日志文件控制文件数据文件(包括数据字典)标头联机重做日志文件物理结构-控制文件oracle的控制文件是Oracle中存放系统用的一些数据的文件,如数据文件的路径及文件名,初始化文件路径及文件名等都存放在控制文件中。它定义物理数据库的当前状态,是一组Oracle数据库实例在启动时被访问的内部二进制文件,它们所存放的路径由参数文件的control_files=参数来确定,当数据库处于mount状态时需要读控制文件。控制文件包括数据库名和identifier、数据库的创建时间、表空间名、数据文件和重做日志文件的名字和位置、当前重做日志文件的顺序号、checkpoint信息、归档和备份信息。select*fromv$database;--可以查看数据库名和identifier、数据库的创建时间select*fromv$logfile;--可以查看数据文件和重做日志文件的名字和位置select*fromv$log;--可以查看前重做日志文件的顺序号物理结构-数据文件1.一个数据文件仅仅关联一个数据库,Oracle数据文件与数据库之间对应关系是一对一关系,当然反过数据库与数据文件是一对多关系.2.数据文件可以自动扩展,当数据存储需要更多存储空间时候,就是存储数据的数据随存储数据量增大,数据文件也可以自动增长,以满足数据存储需要.3.一个或多个数据文件组成一个逻辑单元,称之为表空间.Oracle数据文件与表空间之间对应关系也是一对一关系,当然反过表空间与数据文件对应关系是一对多的关系.物理结构-重做日志文件每个Oracle数据库都包含至少两组到多组重做日志文件,重做日志文件主要是记录数据变化一过程.是记录一个延续变化过程.其实控制也记录Oracle变化过程,但是两都还是有很大区别的,控制记录着数据库体系结构的变化.一个架构的变化,重做日志文件当然也记录这些变化,但它记录更细数据库中数据变化.这些信息主要是用于数据库恢复操作.其他关键的物理文件DatabasePasswordfileParameterfileArchivedlogfiles内存结构Oracle的内存结构由两个内存区组成,分别是:系统全局区(SGA):在例程启动时分配,是Oracle例程的基本组件程序全局区(PGA):在服务器进程启动时分配系统全局区SGA包括以下几种内存结构:共享池数据库缓冲区高速缓存重做日志缓冲区其它结构(例如锁定和栓锁管理以及统计数据)在SGA中还可配置其它两种内存结构:大型共享池Java池系统全局区SGA是动态的大小由SGA_MAX_SIZE参数指定由SGA组件以粒组为单位进行分配和跟踪连续的虚拟内存分配粒组大小由估算的SGA_MAX_SIZE总计大小确定共享池用于存储:最近执行的SQL语句最近使用的数据定义它包括以下两个与性能相关的关键内存结构:库高速缓存数据字典高速缓存其大小由SHARED_POOL_SIZE参数确定共享池数据字典高速缓存库高速缓存ALTERSYSTEMSETSHARED_POOL_SIZE=64M;库高速缓存存储有关最近使用的SQL和PL/SQL语句的信息启用常用语句共享由“最近最少使用算法”(LRU)管理包括以下两个结构:共享的SQL区共享的PL/SQL区大小由共享池的大小确定数据字典高速缓存数据库中最近使用的定义的集合包括与数据库文件、表、索引、列、用户、权限和其它数据库对象相关的信息在语法分析阶段,服务器进程会在数据字典中查找用于解析对象名和验证访问的信息将数据字典信息高速缓存到内存中,可缩短查询和DML的响应时间大小由共享池的大小决定数据库缓冲区高速缓存存储已从数据文件中检索到的数据块的副本能够大幅提高获取和更新数据时的性能通过LRU算法管理主块的大小由DB_BLOCK_SIZE确定数据库缓冲区高速缓存数据库缓冲区高速缓存由独立的子高速缓存组成:DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE大小可以进行动态调整设置DB_CACHE_ADVICE可收集用于预测不同高速缓存大小行为的统计信息统计信息由V$DB_CACHE_ADVICE显示ALTERSYSTEMSETDB_CACHE_SIZE=96M;重做日志缓冲区记录对数据库数据块所做的全部更改主要用于恢复其中记录的更改称作重做条目重做条目包含用于重新构造或重做更改的信息大小由LOG_BUFFER定义重做日志缓冲区大型共享池SGA中的可选内存区分担了共享池的一部分工作用于:共享服务器的会话内存(UGA)I/O服务器进程备份和恢复操作或RMAN并行执行消息缓冲区将PARALLEL_AUTOMATIC_TUNING设置为TRUE不使用LRU列表大小由LARGE_POOL_SIZE确定Java池存储Java命令的服务分析要求在安装并使用Java时是必需的大小由JAVA_POOL_SIZE参数确定程序全局区为连接到Oracle数据库的每个用户进程保留的内存在创建进程时分配在终止进程时回收仅供一个进程使用服务器进程PGA用户进程进程结构Oracle利用了以下几种进程的优势:用户进程:在数据库用户请求连接到Oracle服务器时启动服务器进程:与Oracle例程相连接,在用户建立会话时启动后台进程:在Oracle例程启动时启动用户进程请求与Oracle服务器交互的程序必须先建立连接不与Oracle服务器直接交互数据库用户服务器进程用户进程建立的连接服务器进程直接与Oracle服务器交互的程序执行生成的调用并返回相关结果可以是专用服务器或共享服务器建立的连接创建的会话数据库用户用户进程服务器进程Oracle服务器后台进程维护并加强物理结构与内存结构之间的关系必备的后台进程:DBWnPMONCKPTLGWRSMON可选的后台进程:ARCnLMDnRECOCJQ0LMONSnnnDnnnPnnnLCKnQMNn数据库写入程序(DBWn)在以下情况下写入:出现检查点灰数据缓冲区达到阈值没有空闲缓冲区出现超时执行了RACping请求表空间处于OFFLINE状态表空间处于READONLY状态对表执行DROP或TRUNCATE操作对表空间执行BEGINBACKUP操作例程SGA控制文件数据文件重做日志文件数据库DBWn数据库缓冲区高速缓存日志写入器(LGWR)LGWR在以下情况下写入:提交时三分之一填满时有1MB的重做时每隔三秒DBWn写入前例程SGA控制文件数据文件重做日志文件数据库重做日志缓冲区DBWnLGWR系统监控程序(SMON)职责:例程恢复前滚重做日志中的更改打开数据库供用户访问回退未提交的事务处理合并空闲空间回收临时段控制文件数据文件重做日志文件数据库例程SGASMON过程监视器(PMON)例程失败后,通过以下方法进行清理:回退事务处理释放锁释放其它资源重新启动已失效的调度程序PGA区例程SGAPMON检查点(CKPT)职责包括:在检查点发信号给DBWn使用检查点信息更新数据文件的标头使用检查点信息更新控制文件控制文件数据文件重做日志文件数据库例程SGADBWnLGWRCKPT归档程序(ARCn)可选的后台进程设置ARCHIVELOG模式时自动归档联机重做日志保留数据库的全部更改记录ARCn归档的重做日志文件控制文件数据文件重做日志文件小结在oracle体系结构中,您应该能够掌握:解释数据库文件:数据文件、控制文件和联机重做日志解释SGA内存结构:数据库缓冲区高速缓存、共享池和重做日志缓冲区解释主要的后台进程:DBWn、LGWR、CKPT、PMON、SMON列出可选后台进程和条件后台进程38提问:想想看下面哪两个关于共享池的描述是正确的?a)共享池包含库高速缓存、数据字典高速缓存、共享SQL区、Java池和大型共享池。b)共享池用于存储最近执行的SQL语句。c)共享池用于可以全局共享的对象。d)库高速缓存包含共享SQL区和共享PL/SQL区。ORACLE开发基础培训AppPL/SQLSQL基础常用工具ORACLE体系结构40第二节ORACLE工具OEMPL/SQLDeveloperTOADSQL*PLUS工具41第二节ORACLE工具4-1OracleEnterpriseManager官方工具一组DBA工具一个知识库一个图形化显示的控制台42第二节ORACLE工具4-2PL/SQLDeveloper优秀的第三方工具偏重于开发,可用于开发、测试、调试和优化OraclePL/SQL存储程序单元,是一个集成开发IDE具有一定的数据库管理功能带有一组实用工具集官方网站工具4-3TOAD优秀的第三方工具偏重DBA功能可用于数据库开发带有实用工具官方网站第二节ORACLE工具4-4SQL*PLUS工具SQL*PLUS是Oracle提供的一个与oracle进行交互的客户端工具,它不仅可以用于测试,运行SQL语句和PL/SQL块,而且还可以用于管理Oracle数据库。在sql*plus中,可以运行sql*plus命令与sql*plus语句。sql*plus语句执行完后,会保存在一个被称为sqlbuffer的内存区域中,并且只能保存一条最近执行的sql语句。sql*plus命令不保存在sqlbuffer的内存区域中。45第二节ORACLE工具4-4SQL*PLUS工具启动SQLPLUSSQLPLUS的常用命令SQLPLUS的环境变量SQLPLUS中使用帮助46第二节ORACLE工具4-1启动SQLPLUS在命令行运行sql*plus。语法如下:sqlplus[username]/[password][@server]在windows环境中运行sql*plus。具体方法:开始-程序-Oracle-OraHome92-application