一种数据库集群数据快速复制的方法技术

技术编号:7786548 阅读:216 留言:0更新日期:2012-09-21 07:37
本发明专利技术提供一种数据库集群数据快速复制的方法,该方法是从数据复制的先同步后处理的原理入手,引入了数据库的原子性和不可分割性,并利用集群数据库管理装置将用户提交的不同请求分割成数据原子的SQL语句,并传输给集群中各个服务器执行这些SQL语句,最终把执行的结果反馈给互用,从而确保数据库集群中每台数据库服务器的数据的一致性,也确保了整个集群的工作效率,对于用户提出的请求,按照数据库的原子性和不可分割性将其划分,并将它先同步到每台集群中的服务器中由集群中空闲的服务器处理执行后反馈给用户,实现快速同步每台数据库服务器的数据,由此实现集群中数据快速复制和服务器的高效管理。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体地说是。
技术介绍
信息技术(IT, Information Technology)系统经过长时期运行,将多台服务器联合起来组成集群来实现综合性能优于单个大型服务器的技术,于是数据库集群技术产生了,这种技术不但能满足应用的需要,而且大幅度地节约了投资成本。但是由于数据集集群的规模是多台服务器组成的,于是数据库集群技术都面临着类似如下一些问题 (1)如何实现集群中多台数据库服务器之间的数据同步 数据库集群是采用多台数据库服务器联合起来组成集群对外提供服务,从外层看来好像是一台数据库服务器在提供服务。这种工作模式可以实现综合性能优于单台大型服务器。这就要求各台数据库服务器同时协调工作,并且要求各台数据库服务器之间的数据要能够快速同步; (2)如何实现数据库集群中数据库服务器资源的动态增加 随着客户生产环境的扩大、数据量和业务的不断增加,数据库集群中也要动态的添加数据库服务器,以便于满足客户生产环境的需要。这就要求在不用重新部署集群的条件下如何实现数据库服务器资源的动态增加; (3)如何实现在有限的数据库服务器下资源利用率的最大化 目前虽然存在着一些数据库集群的软件,例如oracle RAC, sybase ReplicationServer等,他们也可以解决不同的数据库服务器之间的数据同步问题,但是同时也存在诸多不足,主要表现在如下一些方面 I)对于oracle RAC,它的工作原理是需要两台服务器共用一台存储,并且它是通过同步两台服务器上数据库的锁来实现数据的同步,这种方法需要消耗大量的系统资源,因为数据库的锁是需要占用很多的系统资源,所以无法实现对资源利用率的最大化。2)对于sybase Replication Server,它是通过记录数据库日志的变化来同步数据,这样的每次只会对变化的数据实现同步。也就是说在一个时间点上只能有一台数据库服务器在工作,数据变化之后再同步给其他的服务器,它无法实现服务器的并行工作,所以以它搭建的数据库集群资源利用率也不高。而且对于用户的请求,它是采用先处理后同步的办法。由于上述技术上的不足,使得IT人员难以解决其所面临的上述种种问题,导致出现不利于技术继续发展的瓶颈。
技术实现思路
本专利技术所要解决的技术问题是提供一种实现数据库集群快速复制的系统、装置及方法,能够确保异构下的客户业务数据平滑快速地迁移。本专利技术的目的是按以下方式实现的,从数据复制的先同步后处理的原理入手,弓丨入了数据库的原子性和不可分割性,并利用集群数据库管理装置将用户提交的不同请求分割成数据原子的SQL语句,并传输给集群中各个服务器执行这些SQL语句,最終把执行的结果反馈给互用,从而确保数据库集群中每台数据库服务器的数据的一致性,也确保了整个集群的工作效率; 集群管理装置先接受用户提交的SQL并放在编译队列中等待编译,SQL编译器把用户提交请求的SQL进行编译,井根据数据库的原子性和不可分割性,把不可分割的SQL绑定在一起,形成一个数据原子,这种数据原子的粒度小到是一条SQL语句,大到ー个事务,然后由集群管理软件中的传输进程建立传输队列,将这些已经经过编译过的数据原子从编译队列中传输到传输队列中去,再将传输队列中的数据原子分配给集群中的每台服务器去执行,同时由监听进程监听集群中各台服务器中的数据变化,并把空闲的服务器最快执行后的结果反馈给用户,具体步骤如下 1)接收用户提出的请求; 2)建立编译队列和传输队列,并建立编译进程、传输进程以及监听进程; 集群管理装置为各类用户数据和业务请求建立编译队列和传输队列,同时建立编译进程、传输进程以及监听进程; 3)判断编译队列是否有空闲空间,是则执行下列步骤,否则执行步骤9); 4)编译进程将用户请求放在编译队列中,并对用户请求进行编译和标记,形成不可再分的数据原子,并依次标记在编译队列中,并根据数据库的原子性和不可分割性,在专用SQL解译器中通过编译进程将编译队列中的不可分割的SQL语句标记绑定在一起,形成一个数据原子; 5)判断传输队列是否有空闲空间,是则执行下列步骤,否则执行步骤10),一旦传输队列空间满时,会触发解译进程停止解译,直到传输队列有空余空间时,再触发解译进程进行解译; 6)传输进程将传输队列中已经被标记好的SQL语句或数据原子传输给目集群中服务器的数据库,传输进程会将这些已经经过编译过的数据原子从编译队列中传输到传输队列中去,再将传输队列中的数据原子分配给集群中的每台服务器去执行,传输进程通过基于TCP/IP协议传输SQL语句,保证异地远距离传输,并且由于SQL语句本身占用带宽较小,故可减轻网络压カ; 7)监听进程依次监听集群中每台数据库服务器数据的变化,并将执行完成的标志反馈给用户,监听进程用于监听集群中每台服务器的数据变化和运行情況; 8)集群中数据库服务器执行由集群管理装置传输过来的SQL语句,并反馈给监听进程执行标志,并把执行结果反馈给用户; 9)编译进程停止编译,执行步骤5); 10)解译进程停止解译,执行步骤7)。本专利技术的有益效果是通过集群管理软件对用户提交上来的请求利用了数据库的原子性和不可分割性将其划分,并递交给集群中每台数据库服务器,并由空闲的数据库服务器来及时完成对数据的操作。这种利用了对于用户提交的数据库请求先同步后处理的办法,从而能够较好地实现数据库集群快速复制和集群的管理。从数据复制的先同步后处理的原理入手,引入了数据库的原子性和不可分割性,并利用集群数据库管理装置将用户提交的不同请求分割成数据原子的SQL语句,并传输给集群中各个服务器执行这些SQL语句,最終把执行的结果反馈给互用,从而确保数据库集群中每台数据库服务器的数据的ー致性,也确保了整个集群的工作效率,对于用户提出的请求,按照数据库的原子性和不可分割性将其划分,并将它先同步到每台集群中的服务器中由集群中空闲的服务器处理执行后反馈给用户,实现快速同步每台数据库服务器的数据,由此实现集群中数据快速复制和服务器的高效管理。附图说明图I是异构数据库数据迁移系统的结构框图; 图2是数据原子SQL语句结构示意 图3是实现异构数据库数据迁移的方法的流程图。具体实施例方式以下结合附图和优选实施例对本专利技术的技术方案进行详细地阐述。以下例举的实施例仅用于说明和解释本专利技术,而不构成对本专利技术技术方案的限制。高性能集群(High performance cluster, HPC),它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。该集群在天气预报、环境监控等数据量大,计算复杂的环境中应用比较多。负载均衡集群(Load balance cluster, LBC),它是利用一个集群中的多台单机,完成许多并行的小的工作。一般情况下,如果ー个应用使用的人多了,那么用户请求的响应时间就会増大,机器的性能也会受到影响,如果使用负载均衡集群,那么集群中任意一台机器都能响应用户的请求,这样集群就会在用户发出服务请求之后,选择当时负载最小,能够提供最好的服务的这台机器来接受请求并相应,这样就可用集群来増加系统的可用性和稳定性。这类集群在网站中使本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1. ー种数据库集群数据快速复制的方法,其特征在于从数据复制的先同步后处理的原理入手,引入了数据库的原子性和不可分割性,并利用集群数据库管理装置将用户提交的不同请求分割成数据原子的SQL语句,并传输给集群中各个服务器执行这些SQL语句,最终把执行的结果反馈给互用,从而确保数据库集群中每台数据库服务器的数据的一致性,也确保了整个集群的工作效率; 集群管理装置先接受用户提交的SQL并放在编译队列中等待编译,SQL编译器把用户提交请求的SQL进行编译,井根据数据库的原子性和不可分割性,把不可分割的SQL绑定在一起,形成一个数据原子,这种数据原子的粒度小到是一条SQL语句,大到ー个事务,然后由集群管理软件中的传输进程建立传输队列,将这些已经经过编译过的数据原子从编译队列中传输到传输队列中去,再将传输队列中的数据原子分配给集群中的每台服务器去执行,同时由监听进程监听集群中各台服务器中的数据变化,并把空闲的服务器最快执行后的结果反馈给用户,具体步骤如下 1)接收用户提出的请求; 2)建立编译队列和传输队列,并建立编译进程、传输进程以及监听进程; 集群管理装置为各类用户数据和业务请求建立编译队列和传输队列,同时建立编译进程、传输进程以及监听进程; 3)判断编译队列是否有空闲空间,是则执行下列步骤,否则...

【专利技术属性】
技术研发人员:徐国强
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1