Oracle数据库维护管理方案.doc
Oracle数据库维护、管理解决方案盈动华建(北京)科技发展有限公司2002年2月目 录一、Oracle 数据库维护、管理解决方案介绍二、产品详细介绍2.1. Spotlight on Oracle 2.2.Space Manager 2.3.SQL Expert Professional 2.4. I/Watch三、成功案例3.1新疆移动通信公司3.2大唐电信软件公司3.3 中国工商银行北京市分行附录一、 其他解决方案1. 开发解决方案2. 数据库以及系统测试解决方案 3. 系统存储解决方案附录二、 数据库管理、维护以及优化1. 数据库管理、维护的主要任务2. 数据库调优的方法一、Oracle 数据库维护、管理解决方案介绍建立在Oracle数据库上的关键业务系统,是当今企业的核心应用。如何改善其性能和可用性,是包括系统设计、维护和管理人员的最大挑战。为了更好地维护系统和数据库,必须随时了解系统和数据库的运行状况。但由于数据库维护具有一定的复杂性,增加了维护工作的难度。优秀的数据库管理工具,可以大大简化生产环境下的应用维护和管理,提高IT人员的工作效率。数据库管理人员借助相应的工具可以主动、迅速、方便的监控系统的运行。对于 Oracle 数据库的管理,主要包括三方面的内容: 系统诊断,了解当前运行的Oracle 的状态,发现数据库性能瓶颈; 空间管理,即数据库存储结构的调优,包括定期检查数据库的存储结构,发现 Oracle 数据库存储中的主要问题(如数据库碎片),进行碎片重组和数据分布以及容量规划等; 调优SQL,分析对系统性能影响比较大的SQL 语句,调整SQL 语句的执行效率。使SQL 存取尽可能少的数据块。针对以上三方面的调优内容,我们提供了相应的工具,包括: Spotlight on Oracle、Space Manager for Oracle、和SQL Expert Professional, 分别从系统诊断、空间管理和调优SQL三个方面帮助DBA和管理人员解决Oracle 数据库的维护管理工作。图1.1: 数据库管理、维护以及性能调整解决方案 表1.1 Oracle 数据库维护、管理解决方案监测范围名称功能描述使用场合数据库Spotlight on OracleInstance诊断和监控发现、分析、解决Instance问题表空间Space Manager空间管理解决空间问题;建立空间管理机制应用程序 SQLSQL Expert ProfessionalSQL调优发现、分析、解决SQL问题数据库和操作系统I/Watch系统和数据库监控发现、分析、解决数据库及系统问题;建立监控和管理体系二、 产品详细介绍2.1. Spotlight on Oracle Spotlight是一个实时的Oracle数据库实例(Instance)监控工具,它非常直观地、全面地、详细地报告实例中各组成部分的活动,及各组成部分间的数据流动情况。使用Spotlight,DBA不仅可以立即了解数据库的运行情况,而且可以诊断和发现数据库中的性能问题,并进行相应的调优工作。图2.1.1:Spotlight主界面Spotlight包含如下主要特点:Ø 主界面实时地显示实例内各部分及各部分之间的活动。如实例与数据库文件间的I/O、SESSION和SQL活动、SGA使用、锁资源使用和磁盘I/O活动等等,单击某部分可以进入对该部分的详细监控和报告。见图2.1.1。Ø 磁盘I/O报告可以帮助DBA了解当前的I/O状况,决定是否应当将数据文件在磁盘间进行重新分布,以平衡总的磁盘I/O。Ø 细致的会话跟踪能力使DBA立即发现消耗系统资源多的会话,并从多方面报告这些会话的活动情况。包括会话中当前活动和最近活动的SQL语句、会话的资源消耗、会话等待的事件、会话的锁活动等等。见图2.1.2。图2.1.2:使用Spotlight跟踪会话Ø 全面的SQL监控能力为DBA列出当前主要消耗资源的SQL语句,并解释这些SQL的执行计划,帮助DBA判断需要进行调优的SQL。Ø 实例活动可以显示所有Oracle实例的行为,包括服务器、等待事件、锁、死锁等。Ø 配置和内存管理显示SGA区中的内存使用情况和Oracle 参数。用户可以在不重新启动数据库实例的情况下修改Oracle 参数。Ø 内置的报警功能可以监控Oracle实例中所有重要的事件。报警事件执行时可以改变视图中数据库组件的颜色、通过声音报警或触发桌面命令。使用者也可以定制报警响应的阈值。Ø Online的Oracle调优指南提供细节的性能调优和诊断指导,帮助DBA进行数据库调优。这些都可以帮助用户更好地理解Oracle数据库的系统结构,建立性能调优的基本概念。保证用户管理数据库的高效性。Spotlight支持的平台:运行于Windows95/98/NT之上,通过SQL*Net可以连接任何版本的Oracle数据库。2.2.Space Manager 空间管理是影响数据库性能和稳定性的重要因素之一。它主要包括以下四方面的内容:Ø 定期更新数据对象的空间使用信息:Oracle优化器需要利用数据字典中的数据对象存储信息优化SQL,因此需要定期更新数据对象的空间使用信息,Oracle在执行SQL之前利用优化器选择最优的SQL执行路径。Oracle7以后缺省采用基于代价的优化方法,这种方法需要根据SQL中引用对象的存储特性作出优化判断。Oracle为此提供了ANALYZE命令,以分析各种数据对象的空间使用特性。但不幸的是很多DBA不愿使用很不灵活的ANALYZE命令。结果系统运行一段时间后,可能因为没有数据对象最新的空间使用记录,而导致优化器作出错误的判断,最终降低SQL的执行效能。Ø 发现数据库碎片并进行碎片重组:一般的数据库在运行一段时间之后,由于数据的增、删、改操作,总会存在或多或少的碎片,碎片一般包括如下类型:ü 段级(SEGMENT)碎片:在创建表或索引时,存储参数定义的不合理。随着数据的增加,表和索引不得不分配过多的扩展块(EXTENT)。结果导致数据对象存储的不连续。ü 块级(BLOCK)碎片:数据块内的数据被删除或更改,导致数据存储不连续,浪费存储空间和影响存取性能。ü 行迁移:由于数据块内没有足够的空间存储块内被修改的数据,这些数据不得不迁移到其他数据块存储,导致数据存储不连续。ü 索引树失衡:一段时间的增、删、改操作后,B*TREE索引树叶子深度不一,导致索引不能提供最佳存取路径。大量的碎片不仅浪费存储空间,而且会严重影响系统的工作效率。因此DBA应当定期清除系统内的碎片。对表碎片清除的过程一般是:ü 输出表数据;ü 将原有的包含大量碎片的表删除;ü 创建表,并输入数据。ü 建立与表相关的索引,编译与表相关的存储过程等。可以看出碎片的清除是一个艰巨的任务,不仅耗时长,而且因为要删除原数据而存在一定的危险性。Ø 数据分布:数据分布将需要同时存取的数据,如表及其索引,分别存放在不同的磁盘上,可以让多个磁盘共同分担总的I/O,提高系统的性能。数据分布可以很好地减少磁盘I/O总的等待时间。但很多应用信息系统在建立时疏忽了这样的要求,结果大量的数据被放在同一个磁盘上,导致磁盘I/O不平衡。随着数据量的逐渐增加,影响将逐渐增大。而此时完成数据分布的难度很大。Ø 空间使用管理和容量规划Oracle数据库空间管理的一个重要课题是如何避免数据增长引起的数据库稳定性问题。例如,当一个表所分配的所有空间被占满后,Oracle需要为这个表分配新区域(Extent),但如果这个表所在的表空间剩余空间不够,或由于表空间碎片太多而没有连续自由空间时,会出现稳定性问题。如何了解Oracle数据库现有存储状态、空间分布,在问题真正发生前解决问题,是Oracle DBA所面临的重要挑战。Space Manager是一个全面的Oracle数据库存储空间管理软件,它可以帮助DBA很好地完成上述操作,以提高应用系统的执行效率。Space Manager具有如下主要功能和特点:Ø 收集空间使用的统计信息Space Manager 可以收集数据库空间使用的统计信息,利用这些信息来检测空间使用状况,解决和空间使用相关的问题,进行容量规划,对数据库主动地进行空间管理。Space Manager收集的统计信息可以被Oracle基于成本的优化器使用。Space Manager 提供两种方法来收集数据库空间使用的统计信息。即analysis group 和Instant analysis。这两种方法都使用Oracle Analysis命令,Analysis Group可以自动对多个对象有规律地收集统计信息,Instant analysis 可以对单一对象收集正确的统计信息。Space Manager Analysis操作可以减少对系统性能和可靠性的影响,减少DBA的工作负荷,并保证获得最新的统计数据。用户还可以通过Space Manager产生的报告了解数据库统计分析的状态。Ø 图形化表示表空间中空间使用和重组需求Space Manager可以图形化显示数据库空间的使用情况。选择其中的某个表,可以标记出该表如何被存储,为表重组提供直观的依据。见图2.2.1。图2.2.1:使用Space Manager察看表空间的使用Ø 报表功能Space Manager提供大量空间使用报告,包括问题报告,容量规划报告、空间管理报告和统计分析确认报告。这些报告可以让我们快速、简单地获得数据库中空间使用的信息,诊断现有问题、跟踪当前的空间使用情况,预测未来可能出现的问题,了解将来的空间需求,验证数据库对象的统计分析状态。所有的空间报告都可以提供摘要信息和详细信息,可以显示、打印、存储为Excel 和HTML 格式、通过邮件发送给企业中的相关人员。Space Manager提供的报告包括:ü Exception reports,识别与空间使用相关的问题。用户可以使用这些报告分析数据库当前空间使用的问题,如丢失的索引、需要重组的表和索引,存在竞争现象的表和索引、高度行链接,数据库对象达到MaxExtent 参数,数据库对象没有足够空间进行扩展等等。这些报告不仅可以帮助DBA了解当前系统内的空间使用情况,也可以帮助其判断哪些对象需要进行相应的空间管理操作。用户可以方便地使用Space Manager提供的工具进行修补。ü Capacity reports ,提供容量规划信息来进行主动的空间管理。这些报告提供很多有用的信息,如预测什么时间表空间会由于没有足够的空间而导致数据库对象分配失败,什么时间数据库对象将进行下一次分配以及将分配多大空间等等。趋势分析报告可以对单个对象、一组对象、整个数据库预测未来的空间大小。根据这些报告的内容,用户可以提供尽可能多的空间,使用Space Manager 来进行碎片重组,扩展表空间、建立另外的表空间等等。见图2.2.2。图2.2.2:Space Manager生成的趋势分析报告ü Manager reports,根据统计分析结果描述空间使用情况。使用户了解整个数据库、表空间和数据库对象的大小和其他参数。如表空间的自由空间统计、表空间使用统计、表的空间使用统计、索引的空间使用统计等等。ü Analysis Validation reports,验证通过Space Manager 收集的统计信息的状态。识别哪些数据库对象没有统计信息,哪些数据库对象在Oracle数据字典和Space Manager中统计信息不同,哪些数据库对象已经不存在但统计信息仍然存在。Ø 使用重组工具修补空间使用问题Space Manager提供以下4种工具来修补发现的空间使用问题:ü Reorg Manager Reorg Manager提供对数据库中的表空间、表和索引的重组功能。用户可以输入查询条件,选择需要进行重组的数据库对象,这些数据库对象可以在一个表空间,也可以分布在多个表空间。 在使用Reorg Manager 进行数据库碎片重组时,可以选择重组的方法(如使用SQL还是Fast Copy,是否使用临时表空间),进行总体参数配置(如设置Initial Extent,PCTFree等等),对特定数据库对象设置存储参数, 进行失败预测,选择脚本选项以及脚本调度方法。 Reorg Manager 提供快速、安全的数据库对象重组功能。以表为例,Space Manager在缺省情况下采用下述过程进行重组:ü 根据原始表的内容创建新表。可以改变新表的存储参数和表空间定位。ü 删除原始表。ü 将新表的名字改为原始表的名字。ü 建立与表相关的各种对象。 这样的过程完全在数据库内部进行,保证了执行的效率和操作的安全。重组中用到的所有SQL脚本由Space Manager内功能强大的SQL编辑器产生。脚本有Space Manager模式和SQL* Plus模式两种。这样,脚本既可以被交互地运行在Space Manager的客户端,也可以被安排在服务器端执行。DBA可以通过脚本了解工具将如何完成操作,增加了操作的透明度。 重组对象可以被指定到新的表空间,以实现数据分布。如在重组某表空间时,可以指定所有的表放在某个表空间,而所有的索引被放在另一个表空间。ü Reorg Expert:帮助定制重组计划 Reorg Xpert依赖精确计算提供专业的重组计划,通过最少的数据移动、最快的重组速度和最有效的表空间设计来优化重组工作。Reorg Expert不需要通过复杂的查询和分析判断来决定如何进行重组,从而节省了宝贵的时间。 用户可以通过一个图形界面选择需要重组的数据库对象,Reorg Xpert将计算重组这些对象对整个表空间的性能改进情况,例如,重组表空间中的一小部分数据库对象将对表空间的存储情况起到 80% 的作用。Reorg Xpert将在图形界面中标识到 80% 这个数据点,用户可以从维护窗口根据这个点选择重组计划。ü 修补行链接现象Space Manager可以通过删除并重新插入链接行完成此功能,用来修补那些链接行小于10%的表。这样可以选择性地修补链接行而不必重组整个表。从而减少在重组过程中对表可用性的影响。 ü 优化参数配置 Space Manager可以帮助正确、简单地配置存储参数,来避免数据库空间使用问题。在使用Reorg Manager 或Reorg Xpert来进行碎片重组时,Space Manager可以帮助精确地估计一个表及其索引需要的空间。 Space Manager可以根据多种条件来判断应该配置的存储参数,如根据表中的行数、每个数据块中的可用空间,每行使用的数据块,每个数据块中的行数等等。Space Manager可以让用户输入一个时间参数,来计算未来的参数配置。 如果我们可以确认未来时间表中的数据行,也可以直接输入数据行来计算空间需求的优化参数。计算结果可以自动装载到Reorg Manager或 Reorg Xpert中,数据库对象的参数根据这些值自动配置。Ø 调度和监控 Space Manager 可以调度Analysis Group 和 重组脚本的执行,指定操作执行的时间和频率。例如每个月的某日、某时执行操作。用户也可以方便地通过Space Manager监控分析和重组的执行过程。Ø 浏览Space Manager Repository Space Manager 提供一个服务器端的Repository,它记录了数据库的存储信息,统计分析组信息,重组操作的SQL脚本、执行统计、错误记录和调度信息。Space Manager 可以通过资源管理器浏览Repository,获得通过Space Manager进行数据库空间管理的总体信息。Space Manager支持的平台:运行于Windows95/98/NT之上,通过SQL*Net可以连接任何版本的Oracle数据库。2.3.SQL Expert Professional 性能不佳的SQL语句往往是影响系统性能的主要因素之一。因此,发现这些SQL语句,并改进这些SQL是提高系统性能的关键。SQL Expert是目前市面上唯一全面性针对SQL性能调整和优化的解决方案,它透过内建的人工智能搜索引擎,对有问题的SQL指令进行探测和自动改写。节省Tuning有问题的SQL指令所需的时间和精力,它甚至可以使一个SQL语言的初学者在短时间内变成Tuning SQL指令的专家。SQL指令容易撰写,但却不容易写得好,且随着数据库对象或数据量的改变,需要不断进行效能调整。数据库应用程序中60%-90%的问题是由执行效能欠佳的SQL指令引起的。几乎所有的SQL指令都可以透过等效的其它SQL指令来表示。问题在于如何找到性能最好的SQL指令。即使是经验丰富的SQL Tuning人员所写的SQL语句也有30可以经由进一步改写来提高性能。通常我们都以为程序中SQL语句只要写完,抓取的资料正确即可,却忽略SQL指令本身是可以经由调整使其截取数据的速度加快。就算是经过调校的SQL指令,在系统正式运作一段时间后,由于数据库中的数据量的改变,甚至于是数据库对象的增减改变,都会影响程序中原来已经写好的SQL指令的执行效能。由于上述的原因,导致系统执行效能时好时坏。总之,相同的SQL指令在不同的数据库架构下,执行效率通常是不相同的,这种情况在SQL语句愈复杂,数据库对象及彼此关联性愈多时,愈是显著。由于这样的情形无法避免,定期调整系统程序中的SQL语句就变的非常必要的事了。藉由SQL Expert可排除Oracle数据库或应用程序中有潜在问题的SQL指令,亦可针对目前正在执行的SQL指令进行监看(monitor),取得存取人、,存取时间与所下的SQL指令内容。传统上,我们在遇到SQL的performance问题时,经常是使用Try and Error的方式,运用以往的经验或专业知识,将source SQL 改写成几个执行结果相同的SQL指令,再一个一个去测试,并下指令取得各个执行时间及耗用数据库的成本信息,也许两三天后,可将source SQL tuning成执行效能很好的SQL指令,但却已经精疲力竭,而且耽搁了其它更重要的事情的进度而利用SQL Tuning Rules所做成的Searching Engine,可以保证在短时间内(例如十分钟)将平常可能需要两三天工作量的Tuning SQL工作完成,并且确保执行速度最佳和耗用成本最低。对于属于SQL Tuning功力较弱的人员,,藉由SQL Expert边做边学的方式,例如比较Tuning后SQL与source SQL的不同,以及藉由看懂SQL执行计划(Execution Plan)可训练其成为撰写SQL指令的高手。图2.3.1:SQL Expert界面SQL Expert具有如下功能和特点:Ø PL/SQL PROGRAMMERü 提供样版函式库,使用者可以快速产生PL/SQL语句。该样版函式库中的样版可依使用者需要自行增加,减少,及修改。ü 提供PL/SQL及SQL语法函式库,使用者利用现成的SQL及PL/SQL的语法架构快速开发PL/SQL及SQL语句。ü 提供拖曳式的图形接口及数据库对象快速浏览窗口,节省使用者开发PL/SQL的时间,并大量降低人工错误的机会。ü 提供自动侦测目前使用者撰写程序的状态,自动出现程序目前可以使用的对象,例如:schema,tables,views,aliases,以及fields以供程序撰写人员选择,加速程序撰写的速度并降低错误机率。ü 使用这可自行定义语法的显示颜色,以利进行除错。ü 提供PL/SQL语法除错功能,可自行于程序中设置定位点,依据程序执行的顺序进行PL/SQL语法的除错,且对于相关的语句一并进行除错。ü 支持除错前以及除错后的语句。ü 提供自行输入变量进行程序除错的功能,以便于除错过程中观看变量值的变化。ü 提供观看接口,使程序人员编辑SQL及PL/SQL时即可显示相关SQL指令的执行计划。ü 提供一次显示PL/SQL指令中的所有SQL指令的执行计划的功能,并可根据使用者设定的可调校程度,将SQL指令做分类。Ø SQL SCANNERü 供扫描应用程序的原始码(Source Codes)或编译后的档案(inary files),包括COBOL、Java applications、PowerBuilder、ASP、JSP、Servlets、SQLJ、C/C+、HTML、Visual Basic、Perl、Delphi等,在程序不须执行的情况下截取程序中的SQL指令。ü 供扫描应用程序,截取程序中以引号作区隔并相加的片段SQL指令,自动将此片段SQL指令组合成一完整SQL指令。ü 供将欲扫描的数据库对象及档案加以分类,以利管理的机制。ü 允许不须执行程序的情况下,即可侦测并取得程序原始码及数据库对象中可能有问题的SQL指令。ü 可取得来自SQL Inspector所产生的档案中存在的SQL指令。ü 可依据执行效能的层级,或查询的table数,将可能有问题的SQL指令及查询计划(query plan)作归类,分为Offensive、Complex、及Simple。ü 允许使用者自订门坎,将SQL指令归类为Offensive、Complex、或Simple,以利于找出最有可能造成执行效能问题的SQL指令。ü 提供扫描程序时,忽略程序批注中的SQL指令的功能。ü 提供扫描程序时,忽略程序中与数据库Tables不相关的SQL指令的功能。ü 提供扫描程序时,限制截取SQL指令的大小上限的功能。ü 提供扫描程序时,忽略程序中重复的SQL指令的功能。ü 提供报表,显示所截取的SQL指令及相关信息。ü 提供报表,依据不同的群组与分类,显示所截取的SQL指令的统计信息。ü 提供操作接口,使所监看到的SQL指令易于与最佳化SQL工具结合。图2.3.2:利用SQL Expert SQL scanner扫描SQL指令Ø SQL OPTIMIZERü 提供改写SQL指令的功能,依据其Feedback Searching Engine将所有可能的型态列出。ü 可对任何SQL指令产生所有可能的查询计划。ü 提供所改写的SQL指令必与原始SQL指令有相同的执行结果之保证。ü 提供设定所要改写的SQL指令的上限数。ü 提供设定所要改写的SQL指令的Hints,使改写SQL指令的过程中参考或不参考这些Hints。ü 支持设定所要改写的SQL指令是否采用ANSI JOIN型态语法。ü 提供改写后的SQL指令下列信息:¨ 每个SQL指令的查询计划(Query Plan);¨ 消逝时间(Elapse Time)与查询时间(Response Time);¨ 专家等级(Expert Rank)与估计成本(Oracle Cost)。ü 提供原始SQL指令与改写后SQL指令相关信息的比较窗口,与原SQL语句不同之处以不同颜色表示,便于使用者进行比较。ü 提供改写后SQL指令全部或部分指定作实际测试,取得消逝时间(Elapse Time),回复时间(Response Time)。ü 提供动态填入所要测试的SQL指令中所含的变量之数据型态(datatype)与值(value),便于最佳化应用程序中的SQL语句。ü 可将Database hints 适用到改写后的SQL指令,以产生更多不同的执行计划。ü 提供改写时间设定,使超过Source Code执行时间、目前执行最快的时间、或指定时间时,该改写出来的SQL的测试动作不再进行。ü 可对改写后的SQL指令全部或部分实际对数据库进行测试,取得消逝时间(Elapse Time),回复时间(Response Time)。ü 提供图形化设定,可动态指定SQL指令中含有的变量名称其数据型态与所代表的值。ü 提供图形化接口,比较Source SQL与改写后SQL指令的相同与相异处,并以颜色区分相异处。ü 提供报表,显示Source SQL与改写后SQL指令执行测试后的相关信息图2.3.2:利用SQL Expert 优化SQL指令Ø SQL INSPECTORü 提供侦测目前正在对数据库作存取的SQL指令,可依据SQL种类、SID、schema、操作系统使用者、前端程序等分类,取得使用者名称、存取时间与所执行的SQL指令内容。ü 提供撷取Oracle SQL Area的SQL语句及每个SQL语句相关的状态信息。ü 具备自动找出最耗系统资源的SQL语句的功能。ü 提供撷取动态产生的SQL语句,并进行效能最佳化的功能。ü 结合SQL Scanner,将自Oracle SQL Area所撷取到的所有SQL指令进行分类,以利使用者选择最具有效能调整空间的SQL语句进行最佳化。ü 支持设定监看的数据库范围,可监看整个数据库服务器,或针对一或多个ID作监看,或针对某个登录者作监看。ü 对于所监看的SQL指令,提供设定,将SQL指令分类,以利针对不同复杂度的SQL指令作效能调整。ü 提供操作接口,使所监看到的SQL指令易于与最佳化SQL工具结合。ü 提供设定,可定时对监看对象作数据截取的动作。ü 提供设定,可进行排程监看,或永远启动监看程序(ad-hoc monitor)。ü 提供操作接口,结合SQL FORMATTER,对所监看到的SQL指令作标准格式呈现(format),使SQL指令易于维护与修改。Ø SQL FORMATTERü 提供调整SQL指令成为一致性的格式与缩排,有利于阅读及程序维护。ü 检查SQL语句的有效性。ü 突显(highlight)变量、hints、备注文字、无效的tables、views、以及字段名称,以利于辨识与除错。Ø OBJECT EXTRACTORü 提供自数据库中截取出数据库对象的数据定义语言(DDL),以及对象之间的关联性(dependencies)。ü 自动产生数据库对象及Schemas的语句。Ø CODE FINDER找出数据库对象以及档案中的某段文字的位置。并分别列示每段符合搜寻字符串的文字,使数据库对象及档案轻易地从“PL/SQL Programmer”中显示出来。Ø DATABASE EXPLORER提供在数据库服务器中快速浏览各数据库对象详细数据的功能:¨ 显示数据库对象的定义(definition)、数据定义语言(DDL)、参考(references)及关联性(dependencies);¨ 显示tables及views的字段(columns)、索引(indexes)、keys、数据(data)。Ø IN-PROCESS TRAININGü 提供图形化接口,比较Source SQL与改写后SQL指令的相同与相异处,并以颜色区分相异处。ü 提供在线说明档,详细描述执行计划的单一或多个指令其意义。Ø LECCO ASSISTANT提供步骤说明与指引,让初学者在几分钟内即可熟悉接口的操作顺序。SQL Expert支持的平台:运行于Windows95/98/NT之上,数据库支持Oracle7.3及以上版本。2.4. I/WatchI/Watch是一个全面的系统监控工具,采用三层结构(如图2.4.1):图2.4.1:I/Watch的三层结构它可以监控企业范围内的数据库、应用程序和操作系统的活动,并且可以和流行的系统监控框架进行集成。它提供实施监控、报警、历史数据的存储与分析等功能。Ø Console:是I/WATCH的管理界面,可以用于浏览收集到的系统信息,并用于操作和管理整个I/WATCH。可以运行在Windows 95、98或NT上。见上图中的Windows PC。Ø Server:负责管理Agent和存储Agent收集的信息,接收Console的指令和向Console传递其需要的信息。运行于Windows NT上。见上图中的Server Process和Super Server Process等图标。Ø Agent:具体监控操作系统和数据库,接收Server的指令和向Server传递收集到的信息。可以运行在大多数主流操作系统上,包括:IBM AIX、DEC、Solaris、HP、Windows NT等等。见图中的Oracle、Unix等图标。I/Watch的主要功能如下:Ø I/Watch包含大量的预定义检索类型,负责收集和统计重要的系统和数据库性能数据。其中,监控的操作系统信息包括:ü CPU:处理器的各种状态和相关的使用信息。ü MEMORY:内存的消耗和相关使用内存的信息。ü PROCESS:所有进程的报告和其使用资源的统计。ü DISK:磁盘的空间使用和I/O状况。ü NETWORK:网络流量的相关报告。有关数据库的信息包括:ü 数据库实例的活动信息。ü 会话信息和SQL语句信息。ü 资源使用的相关信息。ü 模式对象的相关信息。ü 表空间使用的相关信息和数据文件的相关信息。ü SQL*Net信息。见图2.4.2。 图2.4.2:使用I/Watch监控数据库和操作系统Ø 主动报告DBA和系统管理员有关系统的潜在问题。当发现系统某一性能指标超出用户定义的入口值时,I/Watch向Console发出报警,也可以通过e-mail和呼机通知管理员采取措施。Ø 提供编程语言,使用户可以自己编写脚本,对I/WATCH报告的事件进行响应。使I/WATCH不仅起监控作用,而且起控制作用。Ø 记录历史信息,操作员可以通过浏览过去某段时间的性能数据来确定当时的系统问题,或将过去的系统和现在的系统进行比较。Ø 提供系统性能的调优建议。对每一个检索类型和告警,I/Watch提供相应的调优建议,帮助管理员决定采用什么样的操作行为。Ø 系统性能趋势分析。根据收集到的一段时间内的性能数据,I/Watch使用统计分析预测将来的资源使用趋势,帮助管理员主动地管理系统。见图2.4.3。 图2.4.3:使用I/Watch分析系统性能趋势Ø 提供接口,使用户可以根据需要编写新的检索类型,如监控某应用程序的检索类型。Ø 易于安装、使用和维护。Ø I/Watch既可以作为一个单独的解决方案,也可以和现存的企业管理平台进行集成。如HP-Openview,CA-Unicenter,IBM-Tivoli等等。I/Watch支持的平台:Ø Agent:支持大多数主流操作系统,包括:IBM AIX、DEC、Solaris、HP、Windows NT等等。Ø Server:支持Windows NT。Console:支持Windows 95/98/NT。三、成功案例3.1新疆移动通信公司新疆移动通信公司是国内大型的电信移动业务运营商,目前,新疆移动通信公司的GSM数字移动通信网已覆盖全疆所有的地、州、市的80多个县及广大的农牧团场和乡镇,客户总数由分营时的24.6万户增加到87万户,资产总额由分营时的15亿元增加到25亿元,网络交换容量由分营时的32万门增加到140.3万门,实现了企业高速发展和国有资产的保值增值。随着新用户的的不断增加,企业规模不断扩大。新疆移动通信公司需要建设新一代的BOSS(Business & Operation Support System,业务运营支撑系统)。以提高新疆移动通信公司的服务水平、管理水平和经营决策水平,为客户提供及时、准确和高质量的服务。新疆移动通信集团BOSS系统是基于计算机网络及相关应用技术、用以支持中国移动业务运营的系统。从功能上讲,BOSS系统涵盖了计费、结算、帐务、业务管理、客服等方面,并根据业务需要与相关外部系统进行互联。新的BOSS系统采用Oracle作为底层数据库,每天处理数据大量的交易,对于系统的可用性和性能有非常严格的要求。根据以往的管理经验,该公司意识到数据库管理是系统管理中的一个薄弱环节,同时也是最重要的环节,因为数据是他们一切业务的核心。为了确保新系统实施后的性能和客户满意度,新疆移动通信公司决定采用专门的管理工具,改善数据库和应用系统的性能及可用性。新疆移动通信集团产品选型最重要的标准是实用性。即管理工具能够在他们的业务系统中真正发挥作用。因此,他们对各种产品进行了反复的比较,从包括Oracle、 CA/Platinum 和BMC在内的多家厂商中选择了Quest Software。Quest产品在Oracle数据库的管理方面非常专业化,而且更容易安装、学习和使用。新疆移动通信集团选用了Quest的Spotlight on Oracle、Space Manager、SQLab Xpert 和Toad,这些工具互相结合,分别从Oracle实例管理、数据库空间管理、SQL语句优化以及数据库随机查询和DBA管理方面很好地满足了BOSS系统的业务需求。帮助从技术手段维护业务系统的可靠性、性能和可管理性。利用Quest Software的Oracle性能管理工具,新疆移动的数据库管理员们得以大幅提高工作效率,改善数据库的性能。 Quest产品提供了很好的可视性管理功能,可以充分实现数据库管理的自动功能,而不是采用输入/输出模式。Space Manager 可以更好地管理大型数据库的增长,更好地利用磁盘空间并实现了主动式的容量规划。Spotlight则实现了主动式和被动式的系统管理功能。SQLab Xpert则在BOSS系统的应用优化方面起到了很到的作用,在这些工具可以大大节省DBA的工作时间。 3.2 PaeTec改善数据库性能 利用Quest Software的Oracle性能管理工具, PaeTec Communications 的数据库管理员们得以大幅度减少应用开发时间,改善SQL语句的效率,进行工作调度和整体数据库性能改善和维护工作。过去需要数天才可以完成的开发和调试过程,现在只需要几分钟就可以。表空间的重组从过去需要三到四天的时间,减少到了几个小时。PaeTec Communications是一家集成化的通讯服务供应商,拥有1000多名员工,利用数据专线和数码设备向大型企业提供包括语音和数据在内的集成式长途及本地通讯服务。其业务模式能否成功,严重依赖于第三方的应用计费系统,后者可以从分布在国内的不同交换机获得数据并进行交易处理。该应用的底层采用了三个超大型的Oracle数据库 (运行规模为20 GB或更大) ,每天处理数据百万个交易。 最近,该公司意识到他们需要针对数据库扩容、重组、性能优化和监控的工具,来更好地维持数据库的良好状态。由于大