信息(数据)是存在生命周期的,以最常见的OLTP(Online Transaction Processing 联机事务处理)系统为例,数据在刚产生时是较活跃的,会被频繁的查询。但随着时间流逝,数据被查询的频率越来越低,直至某一时间点,数据符合的归档要求,可以归档。
目录
一、典型数据生命周期
一个典型的数据生命周期示例即商业订单数据:
- 订单当产生时,客户可能会频繁查询订单状态,此时数据属于热点数据。
- 订单完成后,客户可能再也不会查询该数据了,但季度、年度统计报表可能会查询该数据。
- 随着时间增长,数据彻底变为历史数据,基本不再需要查询和统计。
从数据的产生和消亡,根据不同阶段的数据特点,可以将数据划分为不同的生命周期。而针对不同的生命周期实施合适的存储和访问策略即是信息生命周期管理(Information Lifecycle Management ILM)。
二、在线归档简介
当数据处于生命末期时,基本已经不需要再被查询。但由于部分行业存在数据管理法规,数据必须保留必须满足规定时长。而由于历史数据过于庞大,留在数据库中会影响性能,因此需要对历史数据进行归档。
传统归档方案是从数据库中移除历史数据,压缩后转移到廉价的存储介质(例如磁带)长期保存。当需要查询历史数据时,再将归档中取回并加载进数据库。
而采用在线归档的技术,可以让数据留存在数据库中,或者传输到归档数据库。如果是传输到归档数据库,Oracle会采用可传输表空、分区移动等技术将数据作为一个整体高效移动。
在线归档最大的好处是数据一直是可用的,你依然可以使用各种压缩技术和大容量低成本存储来降低数据保存的成本(成本可能稍微比磁带高一点)。当需要查询的时候,不必像传统归档那样定位归档位置并重新加载进数据库。而且如果数据过于陈旧,可能归档数据与当前数据库结构早已不兼容,这使得获取归档数据需要额外的开发工作,而在线归档状态下,数据可以一直与当前数据库的格式保持同步,使用最新的应用可以直接访问历史数据。
虽然在线归档的数据都保存在数据库中,但其并不会影响当前数据库的备份时间和备份大小。因为归档数据通常是不会改变的,RMAN在备份的时候会只备份改变的数据。对于归档数据只会备份一次,后续的备份中将忽略。
三、数据生命周期管理策略
实施数据生命周期管理,即对数据生命周期进行分级,并根据数据不同分级数据的特点定制适合的存储和访问策略,制定管理策略大致分为下列几步:
- 首先是数据分级,根据自身需求为数据分级。
- 为不同分级的数据创建不同的存储层。
- 创建数据迁移和访问策略。
3.1 数据分级
数据分级即定义数据的访问等级,哪些数据最重要,数据生命周期如何演变,什么样的数据可以归档。是否有法律法规限制数据的保存时间?
绝大部分场景中,大部分用户访问近期数据,只有少部分用户会访问陈旧的数据,如下图所示:
活跃数据的整体数据量较小,但访问频率很高。随着时间,活跃数据逐渐不活跃,访问频率逐渐降低,但由于时间积累,数据量会越来越大。
因此,根据对数据的活跃度(访问频率)可以将数据归为以下4类:
- 活跃(Active)
- 次活跃(Less Active)
- 历史(Historical)
- 可归档(Ready to Archive)
用户访问频率通常会随着时间降低。因此在数据生命周期管理中,分区表(特别是根据时间的范围分区)是特别契合的数据分级的管理方案。大部分情况下数据都可以根据时间进行分段管理,例如按月或者季度分区。
利用分区技术,不仅可以在逻辑上对数据进行分级,还可以在物理上分开存储。并且在数据发生生命周期切换时,可以将分区作为一个整体,方便移动数据到不同的存储层。
以上的示例是按访问频率进行数据分级,但有些场景可能需要其他的分级策略,例如按照数据机密程度等策略进行分级等,也可以将不同的分级策略结合使用,数据的分级方法并不固定,结合自身特点对数据进行分类。
3.2 存储层定义
完成了数据分级,你就可以根据不同分级数据的特点,将数据放在最合适的存储介质上。
Oracle有多种存储选项,你可以为不同生命周期的数据选择不同的存储选项,最典型的存储分层可分为4层:
- 高性能存储,存放最频繁访问的数据,例如高速磁盘或SSD。
- 低成本存储层,存放次频繁访问的数据,例如大容量磁盘。
- 在线归档存储层,存放基本不怎么访问的归档数据,例如附加存储。
- 离线归档存储层,只有当数据需要从数据库中移除时才会选择。
根据数据分级特点将其分布在不同的存储层上,将高频访问数据存储在高性能存储上。当数据访问的频率降低时,可以将其移动到低成本存储层。
为了满足数据保留策略,不再访问的数据可以移动到在线归档层,保留至足够期限。这种根据数据特点实施不同的存储策略,可以低成本,高效的利用存储资源。示例只是典型的分层,可以根据自身数据特点自行修改。
3.3 数据迁移和访问控制
完成数据分级和存储层定义后,第3步就是制定相应的策略,根据数据所处的生命周期将其自动移动到对应的存储层上,并控制不同层级数据访问权限。
3.3.1 数据迁移
数据迁移在数据已实施分区的情况下可以很方便的实施,数据可以以分区为单位在物理层高效移动。且由于不同的存储层都在同一个数据库中,因此可以实施在线迁移。例如,在不影响应用访问的情况下,将数据从高性能存储层移动到低成本存储层。
3.3.2 访问控制
数据生命周期管理的另一项重要的部分就是数据的访问权限可能会随着生命周期的变化而改变。例如,数据随着时间增长可能有机密变为可公开,或者可以为不同的用户实施不同的访问权限。
Oracle可以通过视图、虚拟私人数据库(Virtual Private Database)等技术定制访问权限,这些策是在数据库层面实施,对应用完全是透明的。
以上即是信息生命周期管理(Information Lifecycle Management ILM)的基本介绍,了解基本概念后,后续将会介绍其相关的技术实现。