一种基于mysql的数据库云及其建立方法

文档序号:6511996阅读:212来源:国知局
一种基于mysql的数据库云及其建立方法【专利摘要】本发明涉及一种基于MYSQL的数据库云及其建立方法,该数据库云包括在云计算环境中两台宿主机的虚机上分别部署的MYSQL数据库以及在宿主机外设置的高性能存储设备,两MYSQL数据库均通过BONDING技术建立的网络通信接口与高性能存储设备相连,MYSQL数据库接收用户的数据库请求后将用户数据存储于宿主机外设置的高性能存储设备,MYSQL数据库进行心跳检测并且两MYSQL数据库实时同步。本发明所述数据库云能够实现数据库的热迁移快速部署,并提供高IO性能,还可以应对企业部分业务对数据库多样的需求。【专利说明】—种基于MYSQL的数据库云及其建立方法【
技术领域
】[0001]本发明涉及数据库【
技术领域
】,特别是一种基于MYSQL的数据库云及其建立方法。【
背景技术
】[0002]企业对数据库需求多样,尤其对于不同配置、不同容量、不同功能的完全资源隔离数据库产品的需求日益强烈,目前部署单一配置数据库产品难以应付企业的多样化需求。市场上存在的数据库产品基本是部署在物理服务器内的,这就导致迁移、备份和应对多种不同业务需求比较困难;若在云计算环境下的虚机上直接部署数据库,形成的单纯的数据库系统的IO性能满足不了需求,并且数据资源的安全性能也比较差。【
发明内容】[0003]本发明针对现有技术在物理服务器内部署数据库导致迁移和应对多种不同业务需求困难而单纯的虚机上部署数据库系统IO性能无法满足需求的问题,提供一种基于MYSQL的数据库云,能够实现数据库的热迁移快速部署,并提供高IO性能,还可以应对企业部分业务对数据库多样的需求。本发明还涉及一种基于MYSQL建立数据库云的方法。[0004]本发明的技术方案如下:[0005]一种基于MYSQL的数据库云,其特征在于,包括在云计算环境中两台宿主机的虚机上分别部署的MYSQL数据库以及在宿主机外设置的高性能存储设备,所述两MYSQL数据库均通过BONDING技术建立的网络通信接口与高性能存储设备相连,所述MYSQL数据库接收用户的数据库请求后将用户数据存储于宿主机外设置的高性能存储设备,所述MYSQL数据库进行心跳检测并且两MYSQL数据库实时同步。[0006]所述两MYSQL数据库以热备模式工作,所述两MYSQL数据库分别为主MYSQL数据库和备MYSQL数据库,所述主MYSQL数据库接收用户的数据库请求,并将用户数据实时同步备份至备MYSQL数据库,所述主MYSQL数据库和备MYSQL数据库均将用户数据存储至所述高性能存储设备;所述备MYSQL数据库在等待的状态下对主MYSQL数据库进行心跳检测,在检测到主MYSQL数据库故障时进行数据库主备切换进而由备MYSQL数据库接收用户的数据库请求。[0007]所述两MYSQL数据库以双主模式工作,所述两MYSQL数据库均为主MYSQL数据库,所述两主MYSQL数据库均接收用户的数据库请求,并将用户数据存储至所述高性能存储设备;所述两主MYSQL数据库相互心跳检测并进行用户数据的相互同步备份。[0008]所述数据库云中的高性能存储设备为SAN存储设备或NAS分布式存储设备。[0009]一种基于MYSQL建立数据库云的方法,其特征在于,该方法先在云计算环境中两台宿主机的虚机上分别部署MYSQL数据库,再通过MYSOL数据库接收用户的数据库请求并由BONDING技术建立的网络通信接口将用户数据存储于宿主机外设置的高性能存储设备,所述MYSQL数据库进行心跳检测并利用BINLOG实现两MYSQL数据库实时同步。[0010]所述方法将两MYSQL数据库分别设置为主MYSQL数据库和备MYSQL数据库,所述主MYSQL数据库接收用户的数据库请求并将用户数据实时同步备份至备MYSQL数据库,所述主MYSQL数据库和备MYSQL数据库均将用户数据存储至所述高性能存储设备;所述备MYSQL数据库在等待的状态下对主MYSQL数据库进行心跳检测,在检测到主MYSQL数据库故障时进行数据库主备切换进而由备MYSQL数据库接收用户的数据库请求。[0011]所述方法将两MYSQL数据库均设置为主MYSQL数据库,所述两主MYSQL数据库均接收用户的数据库请求,并将用户数据存储至所述高性能存储设备;所述两主MYSQL数据库相互进行心跳检测和用户数据的相互同步备份。[0012]所述方法中的高性能存储设备为SAN存储设备或NAS分布式存储设备。[0013]通过PLUGIN技术进行数据运维以处理用户的数据延迟或丢失的情况。[0014]所述两MYSQL数据库在实时同步时对传输的用户数据进行加密。[0015]本发明的技术效果如下:[0016]本发明涉及一种基于MYSQL的数据库云,包括在云计算环境中两台宿主机的虚机上分别部署的MYSQL数据库以及在宿主机外设置的高性能存储设备,该数据库云是建立在两台虚机上形成的MYSQL双机集群,并在接收用户的数据库请求后将数据存储在高性能存储设备上,使得数据库存储每秒可接受的随机访问的次数能够大大提高,故解决了高IOPS问题,避免了现有技术直接在虚机上部署数据库形成单纯的虚机数据库系统IO性能无法满足要求的问题。该数据库云通过一个MYSQL数据库利用自身的功能心跳检测另一MYSQL数据库的正常运行,保证用户的数据库请求的响应服务,设置两MYSQL数据库实时同步,使得一个MYSQL数据库在响应用户的数据库请求的同时可以通过对同步备份到另一MYSQL数据库的用户数据进行查看、处理等操作,而不影响在线上服务的MYSQL数据库,保证用户数据资源的安全性能,两台MYSQL数据库分别运行于两台不同的宿主机的虚机上,避免了单点故障,尽而实现数据库的负载均衡或读写分离,最大化保证了业务连续性和业务的性能。本发明的数据库云建立于云计算环境,基于两个MYSQL数据库以及额外的高性能存储设备共同配合工作,在增大数据库容量的同时,能够提高用户数据资源隔离的高可用的数据库性能,进一步增强了数据资源的安全性,又解决了单纯的虚机数据库性能不足的问题,还能够避免物理服务器数据库存在迁移备份困难又无法面对不同业务需求的问题,在云计算环境下可以迅速迁移和备份虚机上的MYSQL数据库形成新的数据库云,直接将虚机上的MYSQL数据库迁移到要部署的网络中即可,灵活性好,达到热迁移快速部署数据库产品的效果,且不需要再购买或搬移其它硬件,降低了人力、安装时间、安装成本和安装资源。本发明所述的数据库云可以为企业提供多样的数据库服务器,进而应对企业部分业务对数据库多样化的需求。[0017]根据企业的多样化需求,将本发明的数据库云中的两MYSQL数据库设置为热备模式或双主模式工作。在热备模式下形成主MYSQL数据库和备MYSQL数据库,主MYSQL数据库接收用户的数据库请求,备MYSQL数据库处于等待状态并对主MYSQL数据库进行心跳检测,在检测到主MYSQL数据库故障时进行数据库主备切换进而由备MYSQL数据库接收用户的数据库请求,这种热备模式工作的数据库云适用于数据库写入存储压力不大的情况,能够节约用户数据资源。对于数据库写入存储压力大的情况,数据库云以双主模式工作,两MYSQL形成两个主MYSQL数据库,这两个主MYSQL数据库均接收用户的数据库请求,相互心跳检测并进行用户数据的相互同步备份,完成两台数据库节点同时应对业务访问,能够提高数据库工作效率。本发明的数据库云中的两MYSQL数据库以热备方式或双主模式工作,结合以运维脚本实现数据库的高可用性,进一步保证了业务连续性和业务的性能。[0018]本发明还涉及一种基于MYSQL建立数据库云的方法,先在云计算环境中两台宿主机的虚机上分别部署MYSQL数据库,通过MYSOL数据库接收用户的数据库请求并由BONDING技术建立的网络通信接口将用户数据存储于宿主机外设置的高性能存储设备,该方法借助云计算环境,以两台宿主机上的虚机为单位,部署MYSQL双机集群,将用户数据存储于额外的高性能存储设备上,能够解决IOPS问题,提高IO性能,利用MYSQL数据库自带的BINLOG快速高效地实现两MYSQL数据库实时同步,保证了用户数据资源的完整性,两台MYSQL数据库分别运行于两台不同的宿主机的虚机上,避免了单点故障,设置两MYSQL数据库以热备方式或双主模式工作,结合以运维脚本实现数据库的高可用性,尽而实现数据库的负载均衡或读写分离,最大化保证了业务连续性和业务的性能,并可以避免将数据库部署在物理服务器或部署在虚机形成的单纯的虚机数据库系统导致的数据库产品迁移困难且单一配置或IO性能无法满足需求的问题,该数据库云的解决方案同时避免现有技术的各方面的弊端,热迁移快速部署数据库产品,提供高IO性能和安全性能,并且能够应对企业对数据库的多样化的需求。【专利附图】【附图说明】[0019]图1是本发明基于MYSQL的数据库云的结构示意图。[0020]图2是本发明基于MYSQL的数据库云的一种优选结构示意图。[0021]图3是本发明基于MYSQL的数据库云的另一种优选结构示意图。[0022]图4是本发明基于MYSQL建立数据库云的方法的一种优选流程图。[0023]图5是本发明基于MYSQL建立数据库云的方法的另一种优选流程图。【具体实施方式】[0024]下面结合附图对本发明进行说明。[0025]本发明涉及一种基于MYSQL的数据库云,其结构如图1所示,包括在云计算环境中两台宿主机的虚机上分别部署的MYSQL数据库以及在宿主机外设置的高性能存储设备,两MYSQL数据库均通过BONDING技术建立的网络通信接口I与高性能存储设备相连,MYSQL数据库接收用户的数据库请求后将用户数据存储于宿主机外设置的高性能存储设备,MYSQL数据库进行心跳检测并且两MYSQL数据库实时同步。[0026]根据不同企业的多样化的需求,基于MYSQL的数据库云可以有如图2和图3所示的优选结构,这两个实施例中的MYSQL数据库分别以热备模式和双主模式工作,选择的高性能存储设备为SAN存储设备,该SAN存储设备为可以提供裸盘的高性能存储设备,当然,也可以选择为如NAS分布式存储设备等其它高性能存储设备。[0027]在图2所示的实施例中,两MYSQL数据库以热备模式工作,两MYSQL数据库分别为主MYSQL数据库和备MYSQL数据库,对于用户的数据库请求是由主MYSQL数据库响应服务,而备MYSQL数据库处于等待状态。主MYSQL数据库接收用户的数据库请求并将用户数据实时同步备份至备MYSQL数据库,主MYSQL数据库和备MYSQL数据库均将用户数据通过BONDING技术建立的网络通信接口I存储至所述SAN存储设备。备MYSQL数据库在等待的状态下对主MYSQL数据库进行心跳检测,以检测其健康状态,在检测到主MYSQL数据库故障时进行数据库主备切换进而由备MYSQL数据库接收用户的数据库请求。当然,主MYSQL数据库也可以对备MYSQL数据库进行心跳检测,以检测备MYSQL数据库的健康状态。该实施例所述的热备模式工作的数据库云是一个MYSQL数据库工作,一个MYSQL数据库备用,适用于如网站访问等等数据库写入存储压力不大的情况,该主备模式能够节约用户数据资源。[0028]在图3所示的实施例中,两MYSQL数据库以双主模式工作,两MYSQL数据库均为主MYSQL数据库,对于用户的数据库请求这两个主MYSQL数据库均进行响应服务。这两个主MYSQL数据库均接收用户的数据库请求,相互进行心跳检测并进行用户数据的相互同步备份,即一个主MYSQL数据库对另一个主MYSQL数据库进行心跳检测并将自己存储的用户数据同步备份至另一个主MYSQL数据库,反之亦然。这两个主MYSQL数据库均将自己的用户数据通过BONDING技术建立的网络通信接口I存储至所述SAN存储设备。该实施例所述的双主模式工作的数据库云是两个主MYSQL数据库同时工作来完成两台数据库节点同时应对业务访问,适用于如银行办理存钱取钱业务等等数据库写入存储压力大的情况,该双主模式能够提高数据库工作效率。[0029]本发明还涉及一种基于MYSQL建立数据库云的方法,该方法也可以理解为是图1-3所述的基于MYSQL的数据库云的建立方法。本发明所述方法先在云计算环境中两台宿主机的虚机上分别部署MYSQL数据库,再通过MYSOL数据库接收用户的数据库请求进行响应服务,MYSQL数据库进行心跳检测并利用BINLOG实现两MYSQL数据库实时同步,由BONDING技术建立的网络通信接口将用户数据存储于宿主机外设置的高性能存储设备。基于MYSQL建立数据库云的方法的核心原理是是借助云计算环境,以两台宿主机上的虚机为单位,部署MYSQL热备模式或双主模式的双机集群的数据库云,基于高性能存储设备(如SAN存储设备提供的裸盘)提高IO性能,使用BONDING技术建立的网络通信接口,利用MYSQL数据库自带的BINLOG快速高效地实现两MYSQL数据库实时同步。[0030]本发明基于MYSQL建立数据库云的方法,以两个虚机内分别部署热备模式的MYSQL数据库为例,一种优选流程如图4所示,包括如下步骤:[0031]A、在云计算环境中两台宿主机的虚机上分别部署MYSQL数据库;[0032]B、将两MYSQL数据库分别设置为主MYSQL数据库和备MYSQL数据库;具体脚本操作包括修改主MYSQL数据库(也可以称为是主节点数据库)和备MYSQL数据库(也可以称为备节点数据库)的配置文件,在主节点数据库创建备节点数据库用户并复制主节点数据库的数据到备节点数据库,即主节点数据库授权备节点数据库访问数据;[0033]C、主MYSQL数据库接收用户的数据库请求,将用户数据实时同步备份至备MYSQL数据库;具体脚本操作是备节点数据库在关闭库的状态下,进行修改动作后,实现两MYSQL数据库初始手动同步,启动检测状态;启动库进行状态检测,当脚本出现两个Yes时,证明实时同步备份开始工作;[0034]SIave—IO—Running:Yes[0035]Slave—SQL—Running:Yes[0036]在主MYSQL数据库添加用户数据在从MYSQL数据库检验,同步备份成功;[0037]D、对两MYSQL数据库进行健康检查,通过心跳检测执行,主要包括备MYSQL数据库对主MYSQL数据库进行心跳检测;在检测到主MYSQL数据库故障时,执行步骤E,否则仍由主MYSQL数据库接收用户的数据库请求,即返回步骤C并执行步骤F,在执行步骤C时省略其初始手动同步的步骤,直接将用户数据实时同步备份至备MYSQL数据库;[0038]E、在检测到主MYSQL数据库故障时通过内置数据库检测脚本实现数据库主备切换,由备MYSQL数据库接收用户的数据库请求;[0039]F、无论是主MYSQL数据库还是备MYSQL数据库均将用户数据通过BONDING技术建立的网络通信接口存储至高性能存储设备如SAN存储设备或NAS分布式存储设备。[0040]图5为本发明基于MYSQL建立数据库云的方法的另一种优选流程图,仍以两个虚机内分别部署热备模式的MYSQL数据库为例,包括如下步骤:[0041]A、在云计算环境中两台宿主机的虚机上分别部署MYSQL数据库;[0042]B、将两MYSQL数据库分别设置为主MYSQL数据库和备MYSQL数据库;[0043]C、两MYSQL数据库相互进行心跳检测,主要包括备MYSQL数据库对主MYSQL数据库进行心跳检测,备MYSQL数据库对于用户数据库请求并不进行响应服务,而是处于等待状态;[0044]D、在检测到主MYSQL数据库正常时,由主MYSQL数据库接收用户的数据库请求并将用户数据实时同步备份至备MYSQL数据库;[0045]E、在检测到主MYSQL数据库故障时通过内置数据库检测脚本实现数据库主备切换,由备MYSQL数据库接收用户的数据库请求;[0046]F、无论是主MYSQL数据库还是备MYSQL数据库均将用户数据通过BONDING技术建立的网络通信接口存储至高性能存储设备如SAN存储设备。[0047]本发明所述基于MYSQL建立数据库云的方法中的心跳检测和两数据库实时同步这两个进程可以同时进行或先后进行。当然,还可后续增加步骤来处理意外情况,如网络压力大导致大量数据堵塞,或者是网络不稳定或意外中断,心跳检测出错等情况,导致数据延迟或丢失或数据不一致,可以利用成熟的运维技术实现数据延迟或个别情况数据不一致的情况。从脚本上的操作是MYSQL在复制过程中会有复制不及时的现象,启用备用解决方案,对主MYSQL数据库和备MYSQL数据库分配置脚本,由PLUGIN技术进行数据运维,如部分命令:[0048]INSTALLPLUGINrpl_semi_sync_masterSONAME‘semisync_master.so,;[0049]SHOffVARIABLESLIKE‘rpl_semi_sync_master_enabled’值为ON,表不开启,否则检查失败原因;[0050]INSTALLPLUGINrpl_semi_sync_sIaveSONAME‘semisync_slave.so’;[0051]SHOffVARIABLESLIKE‘rpl_semi_sync_slave_enabled’值为ON,表不开启;否则失败检查原因;[0052]防止主MYSQL数据库意外崩溃产生的数据损失,主主MYSQL数据库启用sync_binlog选项。[0053]此外,优选地,两MYSQL数据库在实时同步时可以对传输的用户数据进行加密,以预防用户数据泄露的危险。[0054]除图4所示实施例外,本发明基于MYSQL建立数据库云的方法还可以在两个虚机内分别部署双主模式的MYSQL数据库,具体是将两MYSQL数据库均设置为主MYSQL数据库,这两主MYSQL数据库均接收用户的数据库请求,并将用户数据存储至所述SAN存储设备;两主MYSQL数据库相互进行心跳检测和用户数据的相互同步备份。从脚本操作是先在两主MYSQL数据库所在服务器(也可称为虚机服务器)上各自建立一个具有复制权限的用户,如果此时两服务器为新创建,具无其它写入操作,各服务器只需记录当前自己二进制日志文件及事件位置,以之作为另外的服务器复制超始位置。各服务器接下来指定对另一台服务器为自己的主服务器,如示例:[0055]Mysqll>changemastertol72.20.80.72,master—log—file=,a,,master—log—POS=Ill;[0056]Mysql2>changemastertol72.20.80.71,master—log—file=,b,,master—log_pos=222;[0057]双主模式在业务中有较大风险,为了更好让双主模式服务于业务应用,可以采用更加专业的双主解决方案mysql-mmm还有实现数据备份、节点之间重新同步功能的脚本。可以先配置mysql-mmm代理和监控账号的权限,mysql-mmm所有的配置选项都集合在了一个口1I!etc/mysql-mmm/mmm_common.conf的单独文件中,启动mmm,利用mmm_contro1监控MYSQL数据库所在服务器状态,测试看两个服务器能否实现故障自动切换。解决数据不一致性问题,可以利用pt-table-checksum等命令,并且能实现自动故障转移功能;通过mysqljk程序判断数据库可用性。[0058]应当指出,以上所述【具体实施方式】可以使本领域的技术人员更全面地理解本发明创造,但不以任何方式限制本发明创造。因此,尽管本说明书参照附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换,总之,一切不脱离本发明创造的精神和范围的技术方案及其改进,其均应涵盖在本发明创造专利的保护范围当中。【权利要求】1.一种基于MYSQL的数据库云,其特征在于,包括在云计算环境中两台宿主机的虚机上分别部署的MYSQL数据库以及在宿主机外设置的高性能存储设备,所述两MYSQL数据库均通过BONDING技术建立的网络通信接口与高性能存储设备相连,所述MYSQL数据库接收用户的数据库请求后将用户数据存储于宿主机外设置的高性能存储设备,所述MYSQL数据库进行心跳检测并且两MYSQL数据库实时同步。2.根据权利要求1所述的基于MYSQL的数据库云,其特征在于,所述两MYSQL数据库以热备模式工作,所述两MYSQL数据库分别为主MYSQL数据库和备MYSQL数据库,所述主MYSQL数据库接收用户的数据库请求,并将用户数据实时同步备份至备MYSQL数据库,所述主MYSQL数据库和备MYSQL数据库均将用户数据存储至所述高性能存储设备;所述备MYSQL数据库在等待的状态下对主MYSQL数据库进行心跳检测,在检测到主MYSQL数据库故障时进行数据库主备切换进而由备MYSQL数据库接收用户的数据库请求。3.根据权利要求1所述的基于MYSQL的数据库云,其特征在于,所述两MYSQL数据库以双主模式工作,所述两MYSQL数据库均为主MYSQL数据库,所述两主MYSQL数据库均接收用户的数据库请求,并将用户数据存储至所述高性能存储设备;所述两主MYSQL数据库相互心跳检测并进行用户数据的相互同步备份。4.根据权利要求1至3之一所述的基于MYSQL的数据库云,其特征在于,所述高性能存储设备为SAN存储设备或NAS分布式存储设备。5.一种基于MYSQL建立数据库云的方法,其特征在于,该方法先在云计算环境中两台宿主机的虚机上分别部署MYSQL数据库,再通过MYSOL数据库接收用户的数据库请求并由BONDING技术建立的网络通信接口将用户数据存储于宿主机外设置的高性能存储设备,所述MYSQL数据库进行心跳检测并利用BINLOG实现两MYSQL数据库实时同步。6.根据权利要求5所述的基于MYSQL建立数据库云的方法,其特征在于,将两MYSQL数据库分别设置为主MYSQL数据库和备MYSQL数据库,所述主MYSQL数据库接收用户的数据库请求并将用户数据实时同步备份至备MYSQL数据库,所述主MYSQL数据库和备MYSQL数据库均将用户数据存储至所述高性能存储设备;所述备MYSQL数据库在等待的状态下对主MYSQL数据库进行心跳检测,在检测到主MYSQL数据库故障时进行数据库主备切换进而由备MYSQL数据库接收用户的数据库请求。7.根据权利要求5所述的基于MYSQL建立数据库云的方法,其特征在于,将两MYSQL数据库均设置为主MYSQL数据库,所述两主MYSQL数据库均接收用户的数据库请求,并将用户数据存储至所述高性能存储设备;所述两主MYSQL数据库相互进行心跳检测和用户数据的相互同步备份。8.根据权利要求5至7之一所述的基于MYSQL建立数据库云的方法,其特征在于,所述高性能存储设备为SAN存储设备或NAS分布式存储设备。9.根据权利要求8所述的基于MYSQL建立数据库云的方法,其特征在于,通过PLUGIN技术进行数据运维以处理用户的数据延迟或丢失的情况。10.根据权利要求5所述的基于MYSQL建立数据库云的方法,其特征在于,所述两MYSQL数据库在实时同步时对传输的用户数据进行加密。【文档编号】G06F17/30GK103473328SQ201310424570【公开日】2013年12月25日申请日期:2013年9月17日优先权日:2013年9月17日【发明者】王贵宗,马洪军申请人:中电长城网际系统应用有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1