搞定数据归档,奥秘在这里

工业4.0时代,信息呈爆炸式增长,形形色色的系统、林林总总的需求同时也导致许多功能模块运行缓慢、响应时间滞后。那么如何未雨绸缪,保障系统的持续高效、稳定运行呢?

10月23日下午,由创新产品一部高级开发工程师朱老师在八楼中二会议室带来《数据归档设计方案》。采用“现场+网络视频接入”的形式,主要讲解数据归档方案的设计与分析、制定独立的、适用各种环境归档方案。

01

为什么要做数据归档

1)性能方面的考虑:

不管是什么系统,系统运行时间越长,系统数据库的数据就会越多,数据的访问和吞吐就会越来越慢,这个时候就需要考虑数据库优化,数据库的优化可以从两方面考虑,一个是数据层的优化,让数据的存储结构更合理,需要专业的dba去对数据存储进行考虑,优化主键、索引等各方面;二是减少数据量,对于增量数据比较多,数据访问比较频繁的表,通过有效的手段对其归档,增加这些表的访问效率。

2)安全方面的考虑:

对一些已经完结了的数据流水,固化了的数据信息,将其转移到归档库,防止信息篡改,进行数据隔离。

02

现有的归档手段

机房维护人员通过数据库工具进行操作,确定需要归档的表,构造归档表结构,导出需要归档的数据,之后再导入归档的数据。

这个过程一般需要很久,先要找系统相关人员,了解表结构,再有相关开发人员整理归档的sql,之后再发给客户,客户再评审,确定可行性,之后再操作线上数据,还需要做好归档备份。每做一次归档操作,都需要备份一次。

归档需求:

1)归档库和当前库不在同一个实例上

2)需要指定归档执行时间

3)需要根据归档时间指定归档库

4)需要记录每次归档的详细信息

5)要有高效的归档手段

6)归档的管理要便捷

03

数据归档设计思路

首先,需要确定对于归档之后的数据是否需要查询,是否需要进行关联表查询,如果需要进行查询,对于kjdp框架来说,必须要配置归档库的数据库链接,查询时,根据时间切换到归档库进行查询。

其次,对于配置要求,至少需要三个表,归档分区配置表,归档数据表配置表,归档日志表。

最后,选定归档方式,这里采用的BCP命令归档方式(SQLServer数据库可用,Oracle需要使用控制文件),能满足绝大多数性能要求,并且bcp过程中,不会影响表数据的正常操作。

04

数据归档实现方案

查询归档表配置,检查归档日期,是否需要归档。

查询归档分区设置,选定归档数据库,获取归档库信息。

是否需要备份,需要则执行备份操作。

归档数据,是否存在归档前SQL,存在则执行;根据数据库类型,选择归档方式,例如SQLserver,选择bcp的方式,Oracle采用exp/imp的方式;是否存在归档后SQL,存在则执行。

删除原表已归档数据。

愿景

从功能上,希望能有更优化的效率,更人性化的配置,让数据归档的操作简单可控,让复杂沉闷的工作有趣起来。

从系统上,希望数据归档这个体系能完善起来,能适用于各种类型的数据库,以及多样化的归档配置,独立于原有系统之外的单独系统。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181023G1GC7300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券