认证:DBA Fundamentals II.doc_第1页
认证:DBA Fundamentals II.doc_第2页
认证:DBA Fundamentals II.doc_第3页
认证:DBA Fundamentals II.doc_第4页
认证:DBA Fundamentals II.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

认证:DBA Fundamentals II认证:DBA Fundamentals II作者:Jim DiIanniOCP认证的概念和范例问题。本文是本专栏系列报道的第4篇,旨在帮助应试人员深入了解Oracle9i DBA认证考试所涵盖的技术。第2篇和第3篇(刊登在Oracle Magazine 2002年9/10月号和11/12月号上)主要阐述了Oracle9i DBA Oracle认证委员会推出的系列Or acle认证考试中Oracle9i DBA Fundamentals I考试所涵盖的Oracle9i数据库技术。本文提供您在Oracle9i DBA Fundamentals II考试中可能遇到的技术。Oracle9i DBA Fundamentals II是您为获取更高一级认证-Oracle认证的专业人员(OCP)所必须参加的两项考试之一。在本文中,我会就Oracle Net Services方面的大量DBA主题展开讨论。Oracle Net Services在Oracle数据库环境中,Oracle Net Services负责建立和维护运行某个应用程序的客户和该数据库之间的连接。当某个客户提出一个诸如SELECT语句的请求时,Oracle Net Services会将此请求从客户端传递到数据库,然后将结果集返回到客户端。客户与数据库之间的连接可以通过许多网络协议来建立。Oracle Protocol Support支持使用多个协议建立连接。Oracle数据库环境中的Oracle Net Services有何种用途?A. 在数据库中处理请求B. 建立客户端与数据库之间的连接C. 在客户应用程序中维护数据的完整性D. 启动监听进程虽然这不是一个很难的问题,但它为讨论其他结构性问题奠定了基础。B是正确答案。实际上,请求是在数据库由数据库端的服务器进程处理的。维护数据完整性是应用程序和数据库内数据完整性约束的一项功能。为了成功地进行Oracle Net Services的操作,必须启动监听进程。监听进程能够在系统启动时自动启动,或者由数据库管理员手工启动。监听进程监听输入的客户连接请求。出于均分负载和增强性能的目的,多个监听进程可在同一个机器上运行。监听器进程的默认名称是什么?A. LSNRCTLB. Listener01C. ListenerD. Listener_01正确答案是C。LSNRCTL是用于管理监听器进程的监听器实用程序的名称,所以A不正确。B和D是合法的监听器进程名称,但它们需要由数据库管理员来创建。Oracle9i支持动态的服务注册。动态服务注册不需要listener.ora文件,因此简化了数据库管理员的工作。当使用动态服务注册时,进程监视器(PMON)使用什么文件读取初始化参数?A. listener.oraB. tnsnames.oraC. sqlnet.oraD. init.ora正确答案是D。我们知道A是错误的,因为动态服务注册不需要listener.ora文件。B和C也是错误的,因为它们是分别用来建立别名和配置网络服务的。使用动态服务注册时,PMON会在数据库实例启动的时候,从相关联的init.ora文件中读取服务注册(服务名称、实例名称)信息。如果init.ora文件中没有该信息,则PMON将不会注册监听器。导致的结果是,PMON会继续联系监听器,但是监听器会拒绝连接。当您使用动态服务注册并发现监听进程不接受请求时,这可是一个帮助排除故障的技巧。必须设置哪两个init.ora文件参数,以支持动态服务注册?A. TNS_ADMINB. SERVICE_NAMESC. SID_NAMED. INSTANCE_NAMEB和D都是正确答案。SERVICE_NAMES指定数据库的服务名称,INSTANCE_NAME指定实例名称。例如,如果在域中有一个叫做jdiianni的服务名和一个叫做jdiianni的实例名,那么init.ora文件就会包括以下参数: SERVICE_NAMES=INSTANCE_NAME=jdiianni请记住,监听器进程和listener.ora文件存于主机节点。客户请求使用监听器进程是为了连接数据库。但是,取决于您的配置,可能会有几个指定主机名和连接信息的文件存放在客户机上。什么文件放在客户端机器上,用于存储Oracle Net Services名称?A. tnsnames.oraB. sqlnet.oraC. listener.oraD. init.ora正确答案是A。tnsnames.ora文件放在客户端机器上,并且在默认状态下存储在ORACLE_HOME/network/admin目录中。sqlnet.ora文件控制着客户端Oracle Net Services的行为,例如跟踪级别和会话特性。我们已经知道了listener.ora和init.ora文件的用途和位置。从根本上讲,当客户发出请求时,通过使用tnsnames.ora文件首先解析Oracle Net Services的名称。tnsnames.ora文件中的参数将该请求指引到适当的数据库节点。监听器进程监听客户请求,并且将其与一个服务器进程相连接。该请求将被处理,其结果被返回到客户端机器。创建或修改listener.ora、tnsnames.ora或者sqlnet.ora文件时,我强烈推荐您使用Oracle Network Configuration Assistant工具或者Oracle Network Manager工具。通常您可以在任何安装了Oracle Net Services的平台上运行Oracle Network Configuration Assistant。我推荐这些工具的原因是,直接编辑listener.ora和tnsnames.ora文件会使他们出现到格式化和语法错误,从而需要您另外进行解决故障的活动。我已经介绍了一些有关Oracle Net Services的基础知识。根据你的网络和数据库配置的不同,您所需要的文件也会不同。专用服务器和共享服务器是两个常用的服务器配置。在专用的服务器配置中,在处理请求期间,客户请求收到的是一个专用服务器进程。然而,在共享服务器配置中,一个服务器进程能够为多个客户请求服务。饭店与此很相似。一个服务员可为多个顾客服务,因此该服务员的时间得到更好地利用。尽管最好为每个顾客提供一个专职服务员,但这不利于该饭店充分利用其资源。关于专用服务器进程环境的哪四项描述是正确的?A. 用户进程和服务器进程是分离的B. 每个用户进程都有其自己的服务器进程C. 用户进程和服务器进程可以在不同的机器上运行,以充分利用分布式处理的好处D. 在用户进程和服务器进程之间存在着一个一对多的比率关系E. 即使用户进程没有发出数据库请求,专用服务器也存在,但只是处于空闲状态F. 处理结果将从服务器进程发送,来满足对调度程序进程的请求 正确答案是A、B、C和E。答案D和F适用于共享服务器环境处理情况。配置一个Oracle共享服务器进程环境需要哪两项参数?A. SHARED_SERVERSB. CIRCUITSC. MAX_SHARED_SERVERSD. DISPATCHERSE. MAX_DISPATCHERS正确答案是A和D。参数CIRCUITS、MAX_SHARED_SERVERS和MAX_DISPATCHERS是可选项。你能够查询哪些动态性能视图来确定是否使用一个共享的服务器进程实现了与数据库的连接?A. V$DISPATCHERB. V$SESSIONC. V$CIRCUITD. V$QUEUEE. V$SHARED_SERVER正确答案是C。V$CIRCUIT动态性能视图将会在每次的共享服务器连接显示一个条目。您可以作为一个用户,在共享环境中通过连接到数据库来尝试一下,并作为那个用户启动一个查询,然后查询V$CIRCUIT视图。Program Global Area(PGA)的内容会因专用和共享的服务器配置的不同而不同。在一个专用的服务器配置中,PGA的内容包括以下哪三方面的数据?A. User session dataB. Stack spaceC. Cursor stateD. Shared pool and other memory structuresA、B和C是正确答案。对于专用和共享的服务器配置来说,堆栈空间数据都存储在PGA中。在共享服务器配置中,用户会话数据和指针状态数据都存储在SGA中;在专用服务器配置中,此数据存储于PGA中。共享池和其他内存结构对于两种配置来说都存储在SGA中。充分理解Oracle Net Services的各个主题是非常重要的,因为您将经常需要利用Net Service来访问数据库以便作备份,或者连接到信息库或位于你网络环境中各节点上的备用数据库。诊断和调优工具用来衡量诊断和调优结果的基准是有效的性能调优的关键组成部分。数据库管理员能够通过收集不同负载情况下具有代表性的数据库运行期间的数据来确立性能基准。基准一经确立,数据库管理员就能够判断应用程序的运行是符合基准,还是出现了性能问题。数据库管理员可用于确立基准的一个诊断信息源就是alert.log文件。哪个初始化参数可用于指定alert.log文件的位置?A. CORE_DUMP_DESTB. USER_DUMP_DESTC. ALERT_DUMP_DESTD. BACKGROUND_DUMP_DEST正确答案是D。alert.log文件涵盖诸如检查点的时间间隔、内部ORA-600、死锁、超时错误等信息。数据库管理员还可以使用alert.log文件,通过定期检查,来前瞻性地监控数据库的正常运行情况。请注意,如果将参数LOG_CHECKPOINTS_TO_ALERT设置为TRUE,便能够在alert.log文件中记录检查点的开始和结束时间。数据库管理员可以使用STATSPACK实用程序收集性能和诊断信息。将STATSPACK活动(从第一套答案大写A到D中选择)与正确的表述(从第二套答案小写a到d中选择)匹配起来,以执行该活动。A. 安装STATSPACKB. 收集数据C. 自动收集数据D. 创建报表a. $ORACLE_HOME/rdbms/admin/ spauto.sqlb. $ORACLE_HOME/rdbms/admin/ spreport.sqlc. $ORACLE_HOME/rdbms/admin/ spcreate.sqld. execute STATSPACK.snap正确匹配是A 和c、 B和d、 C 和 a,以及D和b。使用等待事件是诊断性能问题的有效方法,因为它们使数据库管理员能将注意力集中到特定的问题上。需要再次说明的是,最好根据已经确定的基准分析所有的诊断信息。共享池数据库管理员能够根据Oracle9i数据库内存结构执行诊断和调优活动。可以使用所提供的诊断工具发现潜在问题的范围。例如,数据库管理员能够在借助UTLBSTAT/UTLESTAT工具生成的report.txt输出中以及在借助STATSPACK生成的报表输出中,发现与共享池和高速缓存相关的诊断信息。数据库管理员还可以通过查询动态性能视图来确定点击率和等待时间的统计数据。性能管理器(Performance Manager)和Oracle Expert提供了用于诊断和调优的GUI工具。哪两个内存区位于共享池中?A. Library cache(库高速缓存)B. Large pool(大池)C. Keep buffer pool(保持缓冲池)D. Dictionary cache(字典高速缓存)E. Default buffer pool(默认的缓冲池)正确答案是A和D。记住以下这一点很重要:存储在库高速缓存和字典高速缓存中的对象都是共享对象。未配置large pool时,共享池中的用户全局区储存着共享的服务器连接信息。管理性能的一个目标就是确保对象可以在多个服务器进程之间共享,以及对象在库高速缓存中重新加载的次数能够降到最少。执行SQL语句的时候,分析过程中的一个步骤检查该语句是否存在于库高速缓存的共享SQL区。由于Oracle9i数据库为了实现匹配而使用确定语句ASCII值的散列算法,所以这些语句必须具备相同的语法和大小写。因此,下述两个语句是不同的: select first_name from employee where first_name = james ;select first_name from employee where first_name = JAMES ;请注意,在每个语句中都使用了first_name的一个常数:在第一个语句中的 james 和第二个语句中的 JAMES 。大、小写不同的first_name值造成每个语句的不同ASCII值。执行SQL语句时,如在内存中发现了相同的SQL语句,则为命中;当在内存中没有发现所执行的SQL语句,则为未命中。通过对first_name值使用一个绑定变量(bind variable),上述例子将产生一个数据库管理员能够避免的点击失败。通过载入该first_name的值,多名用户能够共享一个语句,从而减少了点击失败的次数。该语句的代码如下所示: select first_name from employee where first_name = &first_name ;用户可以将 james 值或者 JAMES 值传给该语句。下述哪些活动可以通过将OLTP应用程序中的分析降到最少而削减SELECT语句的未命中次数?A. 在SELECT语句的搜索条件中使用常量。B. 通过分配足够的空间来防止语句过期。C. 在SELECT语句的搜索条件中使用绑定变量。D. 避免导致分析的无效语句。正确答案是B、 C和D。答案A不正确,因为正如上文范例中所示的那样,使用常量实际上会减少共享SQL语句的机会。GETHITRATIO确定找到共享指针(GETHITS/GETS)的分析呼叫的百分比。你经常看到一些建议,说该值对于OLTP应用程序应该在90-99范围内。虽然一般来说这可能是正确的,但是请务必切记,一定要将值与基准作一下对比。哪一个动态性能视图将为SQL语句提供GETHITRATIO值?A. V$SQLAREAB. V$SQLC. V$SGASTATDD. V$LIBRARYCACHEE. V$DB_OBJECT_CACHE正确答案是D,因为共享的SQL区存储在库高速缓存中。本人在本栏目中仅仅探讨了一些与共享池相关的诊断和调优活动。在为考试做准备的过程中,你还需要学习的其他主题是:共享池大小的确定、存储的执行计划、无效查询、重载和字典高速缓存。 高速缓存为了获得适当的性能,数据库管理员希望管理的另一个内存结构就是高速缓存(Buffer Cache)。高速缓存中的两个主要调优目标是:(1)让服务器在内存中发现数据,(2)在高速缓存中不造成等待。如果高速缓存的大小不合适,那么从前读入到该高速缓存中的信息块就会过期,从而为新的正在被读入的信息块腾出空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论