Oracle数据库维护管理方案.docx

上传人:b****5 文档编号:6787712 上传时间:2023-01-10 格式:DOCX 页数:27 大小:638.47KB
下载 相关 举报
Oracle数据库维护管理方案.docx_第1页
第1页 / 共27页
Oracle数据库维护管理方案.docx_第2页
第2页 / 共27页
Oracle数据库维护管理方案.docx_第3页
第3页 / 共27页
Oracle数据库维护管理方案.docx_第4页
第4页 / 共27页
Oracle数据库维护管理方案.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Oracle数据库维护管理方案.docx

《Oracle数据库维护管理方案.docx》由会员分享,可在线阅读,更多相关《Oracle数据库维护管理方案.docx(27页珍藏版)》请在冰豆网上搜索。

Oracle数据库维护管理方案.docx

Oracle数据库维护管理方案

 

Oracle数据库维护、管理

解决方案

 

盈动华建(北京)科技发展有限公司

2002年2月

 

目录

一、Oracle数据库维护、管理解决方案介绍

二、产品详细介绍

2.1.SpotlightonOracle

2.2.SpaceManager

2.3.SQLExpertProfessional

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存取尽可能少的数据块。

针对以上三方面的调优内容,我们提供了相应的工具,包括:

SpotlightonOracle、SpaceManagerforOracle、和SQLExpertProfessional,分别从系统诊断、空间管理和调优SQL三个方面帮助DBA和管理人员解决Oracle数据库的维护管理工作。

图1.1:

数据库管理、维护以及性能调整解决方案

表1.1Oracle数据库维护、管理解决方案

监测范围

名称

功能描述

使用场合

数据库

SpotlightonOracle

Instance诊断和监控

发现、分析、解决Instance问题

表空间

SpaceManager

空间管理

解决空间问题;建立空间管理机制

应用程序——SQL

SQLExpertProfessional

SQL调优

发现、分析、解决SQL问题

数据库和操作系统

I/Watch

系统和数据库监控

发现、分析、解决数据库及系统问题;建立监控和管理体系

 

二、产品详细介绍

2.1.SpotlightonOracle

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.SpaceManager

空间管理是影响数据库性能和稳定性的重要因素之一。

它主要包括以下四方面的内容:

Ø定期更新数据对象的空间使用信息:

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数据库现有存储状态、空间分布,在问题真正发生前解决问题,是OracleDBA所面临的重要挑战。

SpaceManager是一个全面的Oracle数据库存储空间管理软件,它可以帮助DBA很好地完成上述操作,以提高应用系统的执行效率。

SpaceManager具有如下主要功能和特点:

Ø收集空间使用的统计信息

SpaceManager可以收集数据库空间使用的统计信息,利用这些信息来检测空间使用状况,解决和空间使用相关的问题,进行容量规划,对数据库主动地进行空间管理。

SpaceManager收集的统计信息可以被Oracle基于成本的优化器使用。

SpaceManager提供两种方法来收集数据库空间使用的统计信息。

即analysisgroup和Instantanalysis。

这两种方法都使用OracleAnalysis命令,AnalysisGroup可以自动对多个对象有规律地收集统计信息,Instantanalysis可以对单一对象收集正确的统计信息。

SpaceManagerAnalysis操作可以减少对系统性能和可靠性的影响,减少DBA的工作负荷,并保证获得最新的统计数据。

用户还可以通过SpaceManager产生的报告了解数据库统计分析的状态。

Ø图形化表示表空间中空间使用和重组需求

SpaceManager可以图形化显示数据库空间的使用情况。

选择其中的某个表,可以标记出该表如何被存储,为表重组提供直观的依据。

见图2.2.1。

图2.2.1:

使用SpaceManager察看表空间的使用

Ø报表功能

SpaceManager提供大量空间使用报告,包括问题报告,容量规划报告、空间管理报告和统计分析确认报告。

这些报告可以让我们快速、简单地获得数据库中空间使用的信息,诊断现有问题、跟踪当前的空间使用情况,预测未来可能出现的问题,了解将来的空间需求,验证数据库对象的统计分析状态。

所有的空间报告都可以提供摘要信息和详细信息,可以显示、打印、存储为Excel和HTML格式、通过邮件发送给企业中的相关人员。

SpaceManager提供的报告包括:

✓Exceptionreports,识别与空间使用相关的问题。

用户可以使用这些报告分析数据库当前空间使用的问题,如丢失的索引、需要重组的表和索引,存在竞争现象的表和索引、高度行链接,数据库对象达到MaxExtent参数,数据库对象没有足够空间进行扩展等等。

这些报告不仅可以帮助DBA了解当前系统内的空间使用情况,也可以帮助其判断哪些对象需要进行相应的空间管理操作。

用户可以方便地使用SpaceManager提供的工具进行修补。

 

Capacityreports,提供容量规划信息来进行主动的空间管理。

这些报告提供很多有用的信息,如预测什么时间表空间会由于没有足够的空间而导致数据库对象分配失败,什么时间数据库对象将进行下一次分配以及将分配多大空间等等。

趋势分析报告可以对单个对象、一组对象、整个数据库预测未来的空间大小。

根据这些报告的内容,用户可以提供尽可能多的空间,使用SpaceManager来进行碎片重组,扩展表空间、建立另外的表空间等等。

见图2.2.2。

图2.2.2:

SpaceManager生成的趋势分析报告

✓Managerreports,根据统计分析结果描述空间使用情况。

使用户了解整个数据库、表空间和数据库对象的大小和其他参数。

如表空间的自由空间统计、表空间使用统计、表的空间使用统计、索引的空间使用统计等等。

✓AnalysisValidationreports,验证通过SpaceManager收集的统计信息的状态。

识别哪些数据库对象没有统计信息,哪些数据库对象在Oracle数据字典和SpaceManager中统计信息不同,哪些数据库对象已经不存在但统计信息仍然存在。

Ø使用重组工具修补空间使用问题

SpaceManager提供以下4种工具来修补发现的空间使用问题:

✓ReorgManager

ReorgManager提供对数据库中的表空间、表和索引的重组功能。

用户可以输入查询条件,选择需要进行重组的数据库对象,这些数据库对象可以在一个表空间,也可以分布在多个表空间。

在使用ReorgManager进行数据库碎片重组时,可以选择重组的方法(如使用SQL还是FastCopy,是否使用临时表空间),进行总体参数配置(如设置InitialExtent,PCTFree等等),对特定数据库对象设置存储参数,进行失败预测,选择脚本选项以及脚本调度方法。

ReorgManager提供快速、安全的数据库对象重组功能。

以表为例,SpaceManager在缺省情况下采用下述过程进行重组:

✓根据原始表的内容创建新表。

可以改变新表的存储参数和表空间定位。

✓删除原始表。

✓将新表的名字改为原始表的名字。

✓建立与表相关的各种对象。

这样的过程完全在数据库内部进行,保证了执行的效率和操作的安全。

重组中用到的所有SQL脚本由SpaceManager内功能强大的SQL编辑器产生。

脚本有SpaceManager模式和SQL*Plus模式两种。

这样,脚本既可以被交互地运行在SpaceManager的客户端,也可以被安排在服务器端执行。

DBA可以通过脚本了解工具将如何完成操作,增加了操作的透明度。

重组对象可以被指定到新的表空间,以实现数据分布。

如在重组某表空间时,可以指定所有的表放在某个表空间,而所有的索引被放在另一个表空间。

✓ReorgExpert:

帮助定制重组计划

ReorgXpert依赖精确计算提供专业的重组计划,通过最少的数据移动、最快的重组速度和最有效的表空间设计来优化重组工作。

ReorgExpert不需要通过复杂的查询和分析判断来决定如何进行重组,从而节省了宝贵的时间。

用户可以通过一个图形界面选择需要重组的数据库对象,ReorgXpert将计算重组这些对象对整个表空间的性能改进情况,例如,重组表空间中的一小部分数据库对象将对表空间的存储情况起到80%的作用。

ReorgXpert将在图形界面中标识到80%这个数据点,用户可以从维护窗口根据这个点选择重组计划。

✓修补行链接现象

SpaceManager可以通过删除并重新插入链接行完成此功能,用来修补那些链接行小于10%的表。

这样可以选择性地修补链接行而不必重组整个表。

从而减少在重组过程中对表可用性的影响。

✓优化参数配置

SpaceManager可以帮助正确、简单地配置存储参数,来避免数据库空间使用问题。

在使用ReorgManager或ReorgXpert来进行碎片重组时,SpaceManager可以帮助精确地估计一个表及其索引需要的空间。

SpaceManager可以根据多种条件来判断应该配置的存储参数,如根据表中的行数、每个数据块中的可用空间,每行使用的数据块,每个数据块中的行数等等。

SpaceManager可以让用户输入一个时间参数,来计算未来的参数配置。

如果我们可以确认未来时间表中的数据行,也可以直接输入数据行来计算空间需求的优化参数。

计算结果可以自动装载到ReorgManager或ReorgXpert中,数据库对象的参数根据这些值自动配置。

Ø调度和监控

SpaceManager可以调度AnalysisGroup和重组脚本的执行,指定操作执行的时间和频率。

例如每个月的某日、某时执行操作。

用户也可以方便地通过SpaceManager监控分析和重组的执行过程。

Ø浏览SpaceManagerRepository

SpaceManager提供一个服务器端的Repository,它记录了数据库的存储信息,统计分析组信息,重组操作的SQL脚本、执行统计、错误记录和调度信息。

SpaceManager可以通过资源管理器浏览Repository,获得通过SpaceManager进行数据库空间管理的总体信息。

SpaceManager支持的平台:

运行于Windows95/98/NT之上,通过SQL*Net可以连接任何版本的Oracle数据库。

2.3.SQLExpertProfessional

性能不佳的SQL语句往往是影响系统性能的主要因素之一。

因此,发现这些SQL语句,并改进这些SQL是提高系统性能的关键。

SQLExpert是目前市面上唯一全面性针对SQL性能调整和优化的解决方案,它透过内建的人工智能搜索引擎,对有问题的SQL指令进行探测和自动改写。

节省Tuning有问题的SQL指令所需的时间和精力,它甚至可以使一个SQL语言的初学者在短时间内变成TuningSQL指令的专家。

SQL指令容易撰写,但却不容易写得好,且随着数据库对象或数据量的改变,需要不断进行效能调整。

数据库应用程序中60%-90%的问题是由执行效能欠佳的SQL指令引起的。

几乎所有的SQL指令都可以透过等效的其它SQL指令来表示。

问题在于如何找到性能最好的SQL指令。

即使是经验丰富的SQLTuning人员所写的SQL语句也有30%可以经由进一步改写来提高性能。

通常我们都以为程序中SQL语句只要写完,抓取的资料正确即可,却忽略SQL指令本身是可以经由调整使其截取数据的速度加快。

就算是经过调校的SQL指令,在系统正式运作一段时间后,由于数据库中的数据量的改变,甚至于是数据库对象的增减改变,都会影响程序中原来已经写好的SQL指令的执行效能。

由于上述的原因,导致系统执行效能时好时坏。

总之,相同的SQL指令在不同的数据库架构下,执行效率通常是不相同的,这种情况在SQL语句愈复杂,数据库对象及彼此关联性愈多时,愈是显著。

由于这样的情形无法避免,定期调整系统程序中的SQL语句就变的非常必要的事了。

藉由SQLExpert可排除Oracle数据库或应用程序中有潜在问题的SQL指令,亦可针对目前正在执行的SQL指令进行监看(monitor),取得存取人、,存取时间与所下的SQL指令内容。

传统上,我们在遇到SQL的performance问题时,经常是使用TryandError的方式,运用以往的经验或专业知识,将sourceSQL改写成几个执行结果相同的SQL指令,再一个一个去测试,并下指令取得各个执行时间及耗用数据库的成本信息,也许两三天后,可将sourceSQLtuning成执行效能很好的SQL指令,但却已经精疲力竭,而且耽搁了其它更重要的事情的进度

而利用SQLTuningRules所做成的SearchingEngine,可以保证在短时间内(例如十分钟)将平常可能需要两三天工作量的TuningSQL工作完成,并且确保执行速度最佳和耗用成本最低。

对于属于SQLTuning功力较弱的人员,,藉由SQLExpert边做边学的方式,例如比较Tuning后SQL与sourceSQL的不同,以及藉由看懂SQL执行计划(ExecutionPlan)可训练其成为撰写SQL指令的高手。

图2.3.1:

SQLExpert界面

 

SQLExpert具有如下功能和特点:

ØPL/SQLPROGRAMMER

✓提供样版函式库,使用者可以快速产生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指令做分类。

ØSQLSCANNER

✓供扫描应用程序的原始码(SourceCodes)或编译后的档案(Binaryfiles),包括COBOL、Javaapplications、PowerBuilder、ASP、JSP、Servlets、SQLJ、C/C++、HTML、VisualBasic、Perl、Delphi等,在程序不须执行的情况下截取程序中的SQL指令。

✓供扫描应用程序,截取程序中以引号作区隔并相加的片段SQL指令,自动将此片段SQL指令组合成一完整SQL指令。

✓供将欲扫描的数据库对象及档案加以分类,以利管理的机制。

✓允许不须执行程序的情况下,即可侦测并取得程序原始码及数据库对象中可能有问题的SQL指令。

✓可取得来自SQLInspector所产生的档案中存在的SQL指令。

✓可依据执行效能的层级,或查询的table数,将可能有问题的SQL指令及查询计划(queryplan)作归类,分为Offensive、Complex、及Simple。

✓允许使用者自订门坎,将SQL指令归类为Offensive、Complex、或Simple,以利于找出最有可能造成执行效能问题的SQL指令。

✓提供扫描程序时,忽略程序批注中的SQL指令的功能。

✓提供扫描程序时,忽略程序中与数据库Tables不相关的SQL指令的功能。

✓提供扫描程序时,限制截取SQL指令的大小上限的功能。

✓提供扫描程序时,忽略程序中重复的SQL指令的功能。

✓提供报表,显示所截取的SQL指令及相关信息。

✓提供报表,依据不同的群组与分类,显示所截取的SQL指令的统计信息。

✓提供操作接口,使所监看到的SQL指令易于与最佳化SQL工具结合。

图2.3.2:

利用SQLExpertSQLscanner扫描SQL指令

ØSQLOPTIMIZER

✓提供改写SQL指令的功能,依据其FeedbackSearchingEngine将所有可能的型态列出。

✓可对任何SQL指令产生所有可能的查询计划。

✓提供所改写的SQL指令必与原始SQL指令有相同的执行结果之保证。

✓提供设定所要改写的SQL指令的上限数。

✓提供设定所要改写的SQL指令的Hints,使改写SQL指令的过程中参考或不参考这些Hints。

✓支持设定所要改写的SQL指令是否采用ANSIJOIN型态语法。

✓提供改写后的SQL指令下列信息:

☐每个SQL指令的查询计划(QueryPlan);

☐消逝时间(ElapseTime)与查询时间(ResponseTime);

☐专家等级(ExpertRank)与估计成本(OracleCost)。

✓提供原始SQL指令与改写后SQL指令相关信息的比较窗口,与原SQL语句不同之处以不同颜色表示,便于使用者进行比较。

✓提供改写后SQL指令全部或部分指定作实际测试,取得消逝时间(ElapseTime),回复时间(Res

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1