首页 > 范文大全 > 正文

焕发数据库的生命力

开篇:润墨网以专业的文秘视角,为您筛选了一篇焕发数据库的生命力范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

数据库在线重组是数据库优化的一个重要方式,可以在不间断业务条件下实现数据库性能的显著提升。

2007年10月30日,奥运门票官方网站由于购买者众多的技术问题而被迫暂停售票,我们在反思这一事件的同时,对通信、金融、电力、医疗、能源、交通、政府、大型企事业等各个行业的关键业务系统越来越担忧,如何通过技术手段保证这些IT基础设施能够长期有效运行,已经成为CIO们关注的问题。

尤其是作为IT系统核心基石的数据库系统,它的性能和可用性直接决定了整个业务系统的运行状态。高性能和高可用性的数据库管理现在已经成为IT系统运行维护的服务标准。这个高性能和高可用性的标准与宕机时间的高代价有关。针对这类环境开发的管理技术要求在执行标准的维护任务时,必须对系统的性能和可用性保证没有任何的影响。由于数据库所承载的业务系统都要求具有7×24小时的高可用性,即时短短一个小时的数据库或业务系统异常,给客户可能带来的损失也是不可估量。

目前,国内的大多数信息系统和核心业务均架构于Oracle数据库之上。因此,作为信息系统核心的Oracle数据库的性能、资源利用和可用性也就最终决定了整个信息系统的性能和可用性。由于Oracle存储管理及其体系结构的特征,为了更有效地利用存储空间,预防性能问题或者遵循新的硬件体系结构规范,数据库需要经常重组。

离线重组与在线重组

离线重组的数据库重组必须谨慎协调,尤其是在绝大多数OLTP环境中,维护的时间窗口通常都很小。任何错误如果不能迅速补救,都会造成巨大的财产损失,同时也对本来就已经严格控制的时间窗口增添了额外的压力。今天,有大型表和高可用性要求的数据库,为了最大化正常运行时间和性能,对在线的数据库重组能力产生了极大的需求。

企业级的商业应用程序必须对位于各个时区的全体用户可用。由于能够在线地执行大多数数据库重组任务,没有中断数据流,这提供了空前的时间优势。大多数用于ASP和金融环境的服务级别协议都要求99.9%的正常运行时间,从而只有极其短暂的维护窗口。非常昂贵的停机时间成本使得在线的数据库重组是和在线备份一样有价值的服务。有了在线的数据库重组,进行数据库重组时就不用再考虑时间限制。数据库性能管理方案提供了业务能力,可以在事务运行的同时,对表及其相应对象进行数据库重组。该技术的应用包括如下在线功能:

插入、重命名、重排序、或者删除表列;

添加、修改、以及删除约束(非主键)。

指定约束索引存储参数,

计划结构变化;

添加、修改和删除索引;

添加、修改和删除分区及其相应属性,

添加、修改和删除子分区;

对表进行分区和反分区;

将普通堆表修改为索引表。

数据库性能管理方案使用Oracle自带的复制技术。由于使用Oracle自身的机制,所以和Oracle一样可靠,在Oracle数据库上执行重组可以回收空间碎片和增加数据访问速度。重组数据通过优化数据库布局来提高可用性。数据重组通过消除查询时会产生额外I/O请求的行迁移,并优化索引来提高性能。

在线重组原理

设置阶段:通过适当的在线数据库重组(Online Reorganization)或者在线结构变化(Online Structural Change)对话框,使用被重组表的信息作模板,利用修改后的参数创建一个新表。

复制阶段:针对被重组表的DML语句被记录在一个日志表中,原来已经存在于原始表中的数据被载入到刚创建的重组表中。

同步阶段:数据库控制在线会不断地应用事务,来保持原始表和新建的重组表同步,直到主动刷新或切换阶段开始。在切换之前,主动刷新会一次性地直接对新建的重组表应用所有未应用的事务。

切换阶段:可以设置多个条件,如对表上的活动状态设置一个阈值,来控制切换什么时候开始。当切换时,新建的重组表取代原始表的标识,而原始表则被删除。

数据库重组工具其它功能

表空间图(Tablespace Map)。能帮助数据库管理员识别具有不恰当存储参数的数据库对象,同时,重组特性用来预防或更正空间分配的问题。一旦需要重组的对象确定后,数据库在线重组解决方案就能够按照传统的或在线的方式来进行重组或结构改变。

诊断(Diagnostics)。如果我们正在高效的使用空间,数据库在线重组解决方案的诊断能发现此类问题,比如:效率低下的索引,表中能明显降低性能的行链接以及从来没有执行过“AnalyseStatistics'’命令而导致产生低效查询计划的索引的索引和表。诊断可以对一个表,索引或整个表空间操作。

趋势分析(Trend Analysis)。趋势分析特性可以用来帮助数据库管理员确定当前空间利用问题,对未来空间的需求做出准确估计并确定低效索引,从而能提高空间利用效率和性能

调度程序(Scheduler)。有些数据库管理任务是耗时的,如果能调度这些任务并在非高峰时刻自动运行它们,这种功能可以使得数据库管理和数据库生产力获得极大收益。