OCP/OCA认证考试指南全册OracleDatabase11g(1Z0-051,1Z0-052,1Z0-053)练习与知识点Author:Deerfer@20140630第一章OracleDatabase11g体系结构概述本章学习内容解释内存结构描述进程结构讲述存储结构练习1-1研究所在环境的DRMS确定自己所在的环境使用的应用程序、应用服务器和数据库服务器。然后集中精力研究数据库,体验一下数据库的规模和忙碌程度。考虑用户数量、数据易失性以及数据量。最后考虑它们对组织的重要程度:就每个应用程序和数据库而言,允许多长的停机时间?允许损失多少数据?可以使用财务数字定量分析吗?利用研究的结果,可以了解DBA角色的重要性。应用程序:MDS计量生产调度平台应用服务器:OracleWebLogicServer11g数据库服务器:OracleDatabase11g数据库规模:数据量大小、数据库对象多少、用户数、访问并发量、数据库节点格式(RAC环境)平均无故障时间MTBFMeanTimeBetweenFailure平均故障修复时间MTTRMeanTimeToRepair练习1-2确定数据库是单实例还是分布式系统的一部分运行查询来确定数据库是独立系统,还是更大的分布式环境的一部分。(1)作为用户SYSTEM连接到数据库。(2)确定实例是否为RAC数据库的一部分:SELECT*FROMv$instance;SELECTparallelFROMv$instance;--NO:单实例数据库YES:RAC数据库(3)确定数据库是否通过备用数据库的保护来防止数据丢失:SELECT*FROMv$database;SELECTprotection_levelFROMv$database;--UNPROTECTED数据库未受到保护(4)确定是否数据库中配置了流:SELECT*FROMdba_streams_administrator;--如果尚未配置流,那么将不返回任何行Tips1:OracleStreamOracleStream功能是为提高数据库的高可用性而设计的,在Oracle9i及之前的版本这个功能被称为AdvanceReplication。OracleStream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现数据库之间的同步。这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。练习1-3了解实例的内存结构运行查询来确定构成实例的不同内存结构的当前大小。(1)作为用户SYSTEM连接到数据库。(2)显示可以动态重设大小的SGA组件的当前、最大和最小的容量:SELECTcomponent,current_size,min_size,max_sizeFROMv$sga_dynamic_components;查询结果如下:显示的实例不包括流,因此流池的大小为零。自从启动实例后,大池和Java池都未发生变化,但共享池和数据库缓冲区缓存的大小发生了变化。仅配置了数据库缓冲区缓存的默认池,除进行大量调整的数据库外,通常都是这样的配置。(3)确定已经(以及当前为)程序全局区分配了多少内存:SELECTNAME,VALUEFROMV$PGASTATWHERENAMEIN('maximumPGAallocated','totalPGAallocated');练习1-4了解在实例中运行的进程将运行查询来查看在实例中运行的后台进程。(1)作为用户SYSTEM了解到数据库。(2)确定哪些进程正在运行,以及每个进程的数量有多少:SELECTprogramFROMv$sessionORDERBYprogram;--有哪些进程SELECTprogramFROMv$processORDERBYprogram;--每个进程的数量这些查询将得到相似结果:每个进程必须有会话(即使后台进程,也同样如此),而每个会话必须有进程。可多次出现的进程将有个数据后缀,但支持用户会话的进程除外:它们都使用同一个名称。查询结果如下:ORACLE.EXE(CJQ0)ORACLE.EXE(CKPT)ORACLE.EXE(DBW0)ORACLE.EXE(J000)ORACLE.EXE(LGWR)ORACLE.EXE(MMAN)ORACLE.EXE(MMNL)ORACLE.EXE(MMON)ORACLE.EXE(PMON)ORACLE.EXE(PSP0)ORACLE.EXE(QMNC)ORACLE.EXE(RECO)ORACLE.EXE(SMON)ORACLE.EXE(q000)ORACLE.EXE(q001)plsqldev.exeplsqldev.exeTips2:Oracle进程简要说明(1)CJQ:Jobqueue,oracle的JOB进程,停止后JOB会停止运行(2)CKPT:checkpoint,检查点进程,CKPT和LGWR这两个进程与DBWn进程互相合作,提供了既安全又高效的写脏数据块的解决方案。(3)DBW:DBWR,databasewriter,就是写数据文件的进程。(4)J000:ora_jxxx是系统job进程,可以用select*FROMDBA_JOBS_RUNNING查询。(5)LGWR:LogWriter,将日志缓冲区中的所有记录项写到日志文件中(6)MMAN:Memorymanager,内存管理进程,如果设定了SGA自动管理,MMAN用来协调SGA内各组件的大小设置和大小调整(7)MMNL:MemoryMonitorLight,用于填充自动工作负载存储库(AutomaticWorkloadRepository,AWR)MMNL进程会根据调度从SGA将统计结果刷新输出至数据库表。(8)MMON:ManageabilityMonitor,MMON从SGA定期捕获统计数据(默认是每小时一次),并将它们写入到数据字典中,在数据字典中,可以无限期地存储它们(不过,默认方式是只存储8天)。(9)PMON:ProcessMonitor,进程监控器,主要负责连接非正常中断后的清除工作,PMON负责释放相应的资源。(10)PSP0:启动其它的Oracle进程(10g新增加的后台进程)。(11)QMNC:监视高级队列,并警告从队列中删除等待消息的出队进程(12)RECO:DistributedDatabaseRecovery,负责在分布式数据库环境中自动恢复那些失败的分布式事务,保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;(13)SMON:SystemMonitor,系统监控进程,负责在实例启动时执行实例恢复,并清理不再使用的临时段。(3)通过计算服务器进程数量(Linux或Unix平台上)或Oracle线程数量(Windows上),演示会话生成后启动的服务器进程。(a)在Linux上,从操作系统提示符可以运行以下命令:ps–ef|greporacle|wc-1该语句将计算出名称中包含“Oracle”字符串的运行进程的数量,将包括所有会话服务器进程(或许还包括其它进程)。(b)在Windows上,启动任务管理器。对其进行配置,以便显示每个进程中的线程数量。练习1-5了解数据库的存储结构在本练习中,将创建一个表段,然后计算出它的物理位置。(1)创建一个未确定表空间的表—将在默认表空间中创建它,并包含一个区间:CREATETABLEtab24(c1VARCHAR2(10));(2)确定表所在的表空间、区间大小、区间所在的文件编号、以及作为区间开始位置的文件块:SELECTTABLESPACE_NAME,EXTENT_ID,BYTES,FILE_ID,BLOCK_IDFROMDBA_EXTENTSWHEREOWNER='SYS'ANDSEGMENT_NAME='TAB24';查询结果如下:(3)根据名称确定文件:在看到提示时,替代前面查询中的file_id:SELECTNAMEFROMv$datafileWHEREfile#=&file_id;查询结果如下:(4)精确计算出区间在文件中的位置(按它在文件中的开始字节数)。这要求找到表空间的块大小。在看到提示时输入(2)中查询返回的block_id和tablespace_name.SELECTBLOCK_SIZE*&BLOCK_ID/1024/1024FROMDBA_TABLESPACESWHERETABLESPACE_NAME='&tablespace_name';查询结果如下:由此可见,表存放于一个64KB的区间中。此区间位于文件“D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF”中,从文件的大约478MB处开始。本章知识点回顾单实例体系结构Oracle服务器是连接到数据库的实例。实例包括共享存储块以及一组后台进程。数据库是磁盘上的一组文件。用户会话是连接到数据库服务器进程的用户进程。实例内存结构实例共享内存是系统全局区(SGA)会话的专用区域是程序全局区(PGA)SGA由一组子结构构成,其中一些是必须的(数据库缓冲区缓存、日志缓冲区和共享池),而另一些是可选的(大池、Java池和流池)。可以动态重调SGA结构的大小,也可对其进行自动化管理,但日志缓冲区除外。实例进程结构当用户连接时,将根据需要启动会话服务器进程。后台进程在启动实例时启动,在关闭实例前一直存在。服务器进程从数据库读取,后台进程对数据库执行写操作。某些后台进行始终存在(特别是SMON、PMON、DBWn、LGWR、CKPT和MMON),而其它进程则根据启动的选项进行。数据库存储结构数据库中有三类必须的文件:控制文件、联机重做日志文件和数据文件。控制文件存储完整性信息以及指向数据库其它部分的指针。联机重做日志存储应用于数据库的最新变更向量。数据文件存储数据。外部文件包括:参数文件、口令文件、归档重做日志以及日志和跟踪文件。表空间将逻辑数据存储(段)从物理数据存储(数据文件)中抽象出来。表空间可有多个数据文件组成。一个段包含多个区间、一个区间包含多个Oracle块、一个Oracle块包含多个操作系统块。一个段可以包含位于多个数据文件的区间。第二章安装和创建数据库本章学习内容了解Oracle数据库管理工具规划Oracle数据库的安装使用OUI安装Oracle软件使用DBCA创建数据库练习2-1在Windows计算机上安装SQLDeveloper在本练习中,将在Windows计算机上安装SQLDeveloper。(1)下载安装SQLDeveloper(2)从命令行提示窗口运行sqldeveloper.exe可执行文件,确定完成安装。练习2-2确认可用的硬件资源在本练习中,将先后针对Windows和Linux检查哪些可用的资源。Windows:(1)右键MyComputer图标,打开Properties对话框。查看RAM容量。RAM至少为512MB,首选容量是1GB。(2)选择Advanced选项卡,此后,在Performance部分单击Settings按钮。(3)在PerformanceOptions对话框中,选择Advanced选型卡。查看虚拟内存设置。这至少应为步骤(1)中报告的内存量的1.5倍。(4)打开命令窗口,使用以下命令找到临时数据目录的位置:C:\echo%TEMP%这将返回与下面类似的位置:C:\Temp确认返回的文件系统(在本例中是驱动器C:)至少具有400MB的可用空间。(5)确定文件系统具有用于Oracle主目录和数据库的5GB空间。这必须是本地磁盘,不能是文件服务器。如果要复杂媒介安装程序(你很可能这样做吧),还需要另外1.5GB(可以在文件服务器上)。Linux:(1)在操作系统提示符下,运行free命令来显示主存和交换空间(理想情况下,至少