可视化数据修复技术在分布式数据库系统中的应用

2017-11-09 11:57刘壮飞
电子技术与软件工程 2017年19期
关键词:修复

刘壮飞

摘 要随着我国IT系统建设取得阶段性成果,IT的发展由普遍建设向普遍运维转型,面对通信行业多级、分域、面向社会服务的特性,同时运营商的相关业务发展数据也日趋庞大,如何向用户提供高性能、高并发、高可用的应用,成了需要面对的问题。采用分布式数据库用以应对高并发、高性能的业务要求,这是一个比较理想的途径,而分布式数据库的数据修复则是其中一个重点难题,因此系统上线的同时必须充分考虑数据维护的运维手段。接下来,让我们来看看在分布式架构下,分布式数据修复存在哪些问题,我们又是怎么去解决的,又取得了怎样的成效呢。

【关键词】分布式数据库 修复 可视化数据修复 福富

1 系统现状

分布式数据库的使用,给运营带来了新的挑战,从数据操作形式、效率和操作结果等,则是在应用系统运维层面必须面对的问题。目前主要存在以下几个方面问题:

1.1 基于存储过程的修复不可用

原本单库的数据会散列到不同机器、数据库以及不同的分片下,将要面临重复创建,脚本一致性等问题,且有时分片的规则又复杂多变。难以保证事务的一致性,万一出错往往不知如何回滚。运维人员编写工作量大,无法保证操作的准确性。

1.2 关联查询数据的不准确

不同表之间的物理存储有可能不在一起,有些表虽然在同一个物理库上,但是他们的数据是落在不同的物理库,通过关联可能会丢失不在相同物理库上的数据。

1.3 修复数据人员要求高

对数据修复人员的要求较高,还要了解分布式数据的使用与限制,有时根本不知道自己操作的数据在哪里,以及在传统单库上正常执行的脚本,在分布式数据库上执行的异常一头雾水。

2 解决方案

本方案主要考虑“灵活配置”、“高性能”、“简单易用”、“可扩展行”等,确保该工具与现有运维数据修复习惯接近,提供简单易用,性能高效的数据修复工具。

系统的技术架构方面,使用责任链模式实现配置步骤的执行,采用观察者模式记录执行的相关信息;通过线程池,future等技术,提供高效的多线程并发执行的功能;通过对jdbc的封装使用,确保在不同物理库之间自由的切换查询,更新操作。前端使用bootstrap+angularjs,实现自适应的数据视图双向绑定的高效可视化配置操作界面。其技術原理如图1所示。

上图的系统架构图,其各个主要执行部件的主要功能如下:

配置执行:通过使用该工具对数据修复逻辑的配置,可解析并正确执行修复逻辑。

轮询配置执行:主要是通过调用分布式轮询平台,将已配置好的修复逻辑定时执行。

权限管理:针对于配置过程的查看,修改,执行等权限进行授权,或者角色授权,并允许进行授权的传递。

SQL审核:调用审核平台接口,对配置中sql进行审核,检查不被允许的操作,防范一些无权,危险操作。

日志分析:对关键执行信息的记录,并统计执行的效率,数据量等信息。

3 建设成效

本方案在解决分布式的数据库数据修复的过程中,主要从以下几个方面向运维人员,数据分析人员提供了便捷、安全、高效的操作:

(1)提供一个可视化数据修复配置,有效解决了人工编写代码修复分布式数据库中异常数据的问题,降低了修复的难度,提高数据修复的效率;

(2)利用记录各个执行状态的执行信息,提供中断继续执行功能,提升了数据修复的可操作性;

(3)提供了分布式并发调度执行的能力,提供多并发执行机制,极大的提升了数据修复的进度,具备动态扩缩数据修复能力,并能够实时记录执行现场信息,确保问题回溯和安全审计。

(4)能够针对不同的权限,提供相应的功能,并且审核配置的sql语句,严格规范生产数据操作,避免对生产数据的不受控制的操作;

(5)能够在SQL语句执行前进行相关的语法和执行下来的审核与校验,确保数据修复逻辑的正确和高效的执行。

(6)实现轮询调度的功能,避免运维人员需要7*24小时的值班,提升工作效率和节约工作成本。

4 总结

总而言之,在分布式数据库运维的数据操作上,提升了数据修复成功率,具备可回溯性,并具备一定的SQL审核校验和动态扩缩容能力,极大节约了运维人力成本,降低了数据修复的难度,提升了数据修复的效率和成功率,但在界面的友好性和易用性方面,还需要进一步完善。

作者单位

福富软件 福建省福州市 350003

猜你喜欢
修复
燃煤电厂湿法脱硫浆液循环泵耐磨修复新技术简介和应用
青铜器鉴定与修复初探
自体骨游离移植修复下颌骨缺损的临床研究
营口市典型区土壤现状调查与污染土壤的修复