巧用数据库归档技术解决性能下降问题
许多数据库管理员都会遇到这样的困惑:伴随着业务的不断进行,数据库文件的大小也在逐渐的增大。由此给数据库管理工作带来很大的困难,一方面要为在线业务提供越来越大的高性能磁盘容量,另一方面数据库的工作性能却越来越差。一种新兴的数据库归档技术则能很好地解决这个问题。
什么是数据库归档
简单地讲,数据库归档技术就是一种保持在线数据库规模大体不变、为用户应用提供稳定的数据库性能的方法。具体做法是,将数据库中不经常使用的数据迁移至近线设备,将长期不使用的数据迁移至文件形式归档。随着应用需要,数据在在线、近线和文件文档之间移动,比如应用需要访问许久以前的数据,它的物理位置在近线设备则自动移动到在线设备。而对用户的应用而言,这些都是透明的,就像所有数据都存放在在线设备一样,不会对数据库应用产生任何影响(原理图如下)。
数据库归档把信息生命周期管理的概念引入到应用程序数据管理中,可以监控、分析和预测数据量的增加,利用在线的数据库随时识别并定位不活动的数据或已经完成的业务交易,把长期不用的数据封装归档,这样就大幅降低活动数据的规模,数据库等应用程序运行时的效率可以大幅提升。经过归档,即使在应用程序本身已经废弃的时候还能够重新利用其数据,同时保持实时访问已归档数据的能力。
OuterBay公司(已经被HP公司收购)是数据库归档领域的一个著名厂商,其提供的数据库归档产品主要有三种:Relocator进行在线数据归档、打包归档产品将数据库归档成为文件(.XSD或者.XML格式)、子集拷贝产品为用户提供用于测试的数据库拷贝。
与文件归档存在明显的差异
首先讲解一下归档的概念,按照SNIA(存储网络工业协会)的定义,归档是数据集合的一致性拷贝,通常用以长期持久地保存事务或者应用状态记录。一般情况下,归档通常用以审计和分析的目的,而不是用于应用恢复。归档之后,文件的原件一般会被删除,并且需要通过前台的操作来恢复文件。普通的文件归档只能够对文件进行操作,而且归档后的文件一般不再产生变化。而数据库归档则不同,数据在归档之后仍然存在改变的可能,也随时会变成在线的活动数据。
OuterBay有两个主要的竞争对手,Princeton Softech和Applimation。前者产品主要针对大型机系统设计,而且产生的文件是专有格式;后者公司规模较小,其产品也可有效识别出数据库中访问频率较低的数据,并将其移出数据库,存入在线的历史数据库中。
事实上,所有的数据库厂商都提供了类似的数据库归档功能,但目前没有形成商用产品,用户可以使用命令或者编程进行相关操作。数据库归档的概念本身十分简单,把一条记录从生产数据库插入到历史数据库中,然后把该条记录在生产数据库中删除就实现了数据库归档的功能。
但是在线数据库需要高可靠性、错误处理、审计以及异常处理(如断电、数据库崩溃)等高级功能,这些都只能由专业的数据库归档产品提供。
对备份/恢复的影响
备份是存储管理员最重要的工作之一,如果没有进行数据库归档,那么不仅需要备份整个大型的数据库,而且备份窗口要求很长。在进行数据归档之后,由于已归档的数据库部分可以随时进行备份而不会影响在线数据库的应用,这部分数据库一般为长时间不活跃的数据,因此备份工作很容易完成,而在线的数据库部分也因为进行数据库归档后而瘦身,备份数据量减少,备份窗口减小,从而整体减少了需要备份的数据总量。
而对数据进行恢复的时候,可以在短时间内首先完成在线数据库恢复,之后在在线数据库工作的同时进行其他数据的恢复工作。
数据库归档市场目前还处于起步阶段,但有数字表明,目前这一市场的年复合增长率已达到50%,呈现出高速增长的态势。
============
最近一直悠着做一数据归档项目,网上资料实在是让人心痛。当此项目冒出了一系列技术问题时,往往之能痛并快乐着。在此我想结合自己感受,写心得一二。
9月11,美国的心痛之日,世贸变成废墟,为何在此事过后仅仅一周有余,世贸以前相关业务又能循序渐进的运行。相关数据依然存在。数据备份,就是它了,它能完成这样的任务。
从911事故以来,大型企业,金融机构等等反思了这个问题,数据如何在人力破坏下保存,如何进行有效的备份来应急紧急情况。我国后来一些大型企业马上学习了世贸关于数据方面备份的处理技术,因为引起我国在这块是属于纯净北极,造成解决方案不对称,反之给企业带来更大的经济负担。相关的解决方案不但不能解决问题,而且造成企业在这块数据的管理混乱,带来的是每年随着数据不断增多,不断更新,造成现有系统速度缓慢,更重要的是备份系统还原数据非常缓慢。这一系列的影响之后,数据归档也在国内趋于成熟化和理智化,现在随着企业应用从以前的应用为中心慢慢转化为以数据为中心的时,数据归档又开始发芽,各IT巨头提出了不同的解决方案。随着国内在数据管理方面的法制健全,一些相关数据必须进行备份,以防以后进行审查和核实。
随着时间的推进,企业会有越来越多的业务数据保存在在线数据库中,这些数据可能是很久以前的,有可能是很少去访问的,但是它会使数据库越来越大,出现大的数据库表,在现有的硬件环境下造成性能下降。
从上述原因考虑,企业如果能够采用适合自己的数据归档方案,能够给企业带来一定的承受风险能力,能解决数据库膨胀而造成的性能下降,同时还为企业在进一步采用商业智能等方面打下基础。