用数据库归档技术解决性能下降问题


 许多数据库管理员都会遇到这样的困惑:伴随着业务的不断进行,数据库文件的大小也在逐渐的增大。由此给数据库管理工作带来很大的困难,一方面要为在线业务提供越来越大的高性能磁盘容量,另一方面数据库的工作性能却越来越差。一种新兴的数据库归档技术则能很好地解决这个问题。
什么是数据库归档

简单地讲,数据库归档技术就是一种保持在线数据库规模大体不变、为用户应用提供稳定的数据库性能的方法。具体做法是,将数据库中不经常使用的数据迁移至近线设备,将长期不使用的数据迁移至文件形式归档。随着应用需要,数据在在线、近线和文件文档之间移动,比如应用需要访问许久以前的数据,它的物理位置在近线设备则自动移动到在线设备。而对用户的应用而言,这些都是透明的,就像所有数据都存放在在线设备一样,不会对数据库应用产生任何影响
(原理图如下)。

数据库归档把信息生命周期管理的概念引入到应用程序数据管理中,可以监控、分析和预测数据量的增加,利用在线的数据库随时识别并定位不活动的数据或已经完成的业务交易,把长期不用的数据封装归档,这样就大幅降低活动数据的规模,数据库等应用程序运行时的效率可以大幅提升。经过归档,即使在应用程序本身已经废弃的时候还能够重新利用其数据,同时保持实时访问已归档数据的能力。

OuterBay公司(已经被HP公司收购)是数据库归档领域的一个着名厂商,其提供的数据库归档产品主要有三种:Relocator进行在线数据归档、打包归档产品将数据库归档成为文件(.XSD或者.XML格式)、子集拷贝产品为用户提供用于测试的数据库拷贝。

与文件归档存在明显的差异

首先讲解一下归档的概念,按照SNIA(存储网络工业协会)的定义,归档是数据集合的一致性拷贝,通常用以长期持久地保存事务或者应用状态记录。一般情况下,归档通常用以审计和分析的目的,而不是用于应用恢复。归档之后,文件的原件一般会被删除,并且需要通过前台的操作来恢复文件。普通的文件归档只能够对文件进行操作,而且归档后的文件一般不再产生变化。而数据库归档则不同,数据在归档之后仍然存在改变的可能,也随时会变成在线的活动数据。

OuterBay有两个主要的竞争对手,Princeton Softech和Applimation。前者产品主要针对大型机系统设计,而且产生的文件是专有格式;后者公司规模较小,其产品也可有效识别出数据库中访问频率较低的数据,并将其移出数据库,存入在线的历史数据库中。

事实上,所有的数据库厂商都提供了类似的数据库归档功能,但目前没有形成商用产品,用户可以使用命令或者编程进行相关操作。数据库归档的概念本身十分简单,把一条记录从生产数据库插入到历史数据库中,然后把该条记录在生产数据库中删除就实现了数据库归档的功能。

但是在线数据库需要高可靠性、错误处理、审计以及异常处理(如断电、数据库崩溃)等高级功能,这些都只能由专业的数据库归档产品提供。

对备份/恢复的影响

备份是存储管理员最重要的工作之一,如果没有进行数据库归档,那么不仅需要备份整个大型的数据库,而且备份窗口要求很长。在进行数据归档之后,由于已归档的数据库部分可以随时进行备份而不会影响在线数据库的应用,这部分数据库一般为长时间不活跃的数据,因此备份工作很容易完成,而在线的数据库部分也因为进行数据库归档后而瘦身,备份数据量减少,备份窗口减小,从而整体减少了需要备份的数据总量。

而对数据进行恢复的时候,可以在短时间内首先完成在线数据库恢复,之后在在线数据库工作的同时进行其他数据的恢复工作。

数据库归档市场目前还处于起步阶段,但有数字表明,目前这一市场的年复合增长率已达到50%,呈现出高速增长的态势

本文作者:



相关阅读:
DEDECMS数据库字典
使用Session记录页面地址和实现页面返回功能
金笛邮件服务器在Linux下的安装步骤
2.4 UltraDev与各种数据库的连接代码
JDBC连接MySQL出现的问题
asp.net下使用DbProviderFactories的数据库操作类
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
找出所有非xml索引并重新整理的sql
CSS小例子(只显示下划线的文本框,像文字一样的按钮)
教你在Windows 7中快速关闭程序窗口
一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)
把字符串转换成数据库SQL语句格式
php数据入库前清理 注意php intval与mysql的int取值范围不同
php的控制语句
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4