一种双机系统无共享存储实现OracleRAC的方法

文档序号:10488841阅读:1142来源:国知局
一种双机系统无共享存储实现Oracle RAC的方法
【专利摘要】本发明涉及Oracle数据库的RAC集群的领域,公开了一种双机系统无共享存储实现Oracle RAC的方法,包括第一服务器和第二服务器,通过两台服务器内各分配出一定的空间,经过块设备驱动将这两个空间分别生成块设备,然后将这两个块设备作为Oracle RAC中的Voting Disk,在一个块设备出现问题时另一块进行工作储存数据并且备份,可以在出现单点故障问题时Oracle RAC继续工作,保证了工作的连续性。在更换出现故障的块设备后就可以继续恢复正常工作,具有良好的复用性。在无第三方的存储或第三台机器的情况下,通过两台服务器来搭建Oracle RAC集群,从而实现了一种双机系统无共享储存Oracle RAC的方法。本发明只需2台服务器就能实现避免单点故障的Oracle RAC方案,提高了企业的经济效益。
【专利说明】
一种双机系统无共享存储实现OracIe RAC的方法
技术领域
[0001]本发明涉及Oracle数据库的RAC集群的领域,尤其涉及了一种双机系统无共享存储实现Oracle RAC的方法。
【背景技术】
[0002]Oracle RAC是数据库中的一种并行模式,并不是传统的数据库的主备模式,也就是说,RAC集群的所有成员都可以同时接收客户端的请求,Oracle RAC主要支持0racle91、10g、llg、12c版本,可以支持24x 7有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle公司集成提供了集群软件和存储管理软件,当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能,其有以下特征:
[0003](I)多节点负载均衡,数据库集群可由多台机器组成,每台机器都可以对等地、无限制提供数据库服务,应用可以连接任意一台数据库主机;
[0004](2)提供高可用:故障容错和无缝切换功能,硬件和软件错误造成的影响最小化;
[0005](3)通过并行执行技术可以利用多台机器或多个CPU,有效降低处理大查询的业务时间,这对于数据分析系统很有用;
[0006](4)通过横向扩展可以提高每秒交易数和连接数,这对联机事务系统很有用;
[0007](5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;
[0008](6)可扩展性好,可以方便添加删除节点,扩展硬件资源。
[0009]Oracle RAC的架构很灵活,但其有一个很强的限制,其必须架构在共享存储上,其是Shared-everything的架构,即每台机器必须要访问到一个相同的共享存储上,OracleRAC的数据库的数据文件以及Voting盘及OCR盘都必须是在共享存储上的。所以虽然OracleRAC能架构在廉价的X86的PC服务器上,而不必架构在昂贵的小型机上,但仍然需要有共享存储,而目前能达到几十万1PS的高性能共享存储设备通常都是通过SSD来实现的,其价格都非常昂贵,而如果不支持SSD的共享存储设备的性能又很低。如果能直接使用本机上的SSD硬盘或PCIE的闪存盘搭建Oracle RAC,将会得到一个有极高性能的Oracle RAC数据库服务,而成本又相对于高端存储相对比较低廉的技术方案。Oracle公司的Exadata—体机就是通过类似此技术实现的一种产品,目前国内、国外的一些其他Oracle数据库一体机也是通过类似技术实现的一种产品,但这些产品都是通过提供一种存储服务器来替代原先的共享存储来实现的一种架构:即其在内部的服务器,都分成数据库服务器与存储服务器两部分,相当于用存储服务器替换了原先的共享存储的功能,架构与原先传统的Oracle RAC的架构没有区别。这些架构中,至少都需要有η台存储服务器和m台数据库服务器,其中n>3,而m大于2,即至少5台服务器才能实现一套避免单点故障的Oracle RAC高可用集群。本发明实现了一种只需要2台服务器而不需要其实存储设备或存储服务器就能实现的一种避免单点故障的Oracle RAC的方案。这种实现思路是一种很新颖的想法,很多人认为其不可能实现,原因在于通常的Oracle RAC中的中的voting disk需要放在共享存储,在只有两台机器的情况下无法无法实现此功能。

【发明内容】

[0010]本发明针对现有技术中必须有支持SSD的共享储存设备、需要多台服务器的缺点,提供了一种双机系统无共享存储实现Oracle RAC的方法。在无第三方的存储或第三台机器的情况下,通过两台服务器来搭建Oracle RAC集群,从而实现了一种双机系统无共享存储Oracle RAC的方法。
[0011]为了解决上述技术问题,本发明通过下述技术方案得以解决:
[0012]一种双机系统无共享存储实现Oracle RAC的方法,包括第一服务器和第二服务器,包括以下步骤:
[0013](I)从第一服务器和第二服务器上分别分配一个相同的空间,通过一个块设备驱动,分别将第一服务器和第二服务器分配的空间生成第一块设备和第二块设备;
[0014](2)将第一块设备和第二块设备给Oracle RAC作为Voting Disk,当第一服务器上请求写入Voting Disk时,块设备驱动把写入请求发给本地的第一块设备,同时通过网络把写入请求发给第二服务器上的第二块设备,使第一块设备和第二块设备始终同步;当第二服务器上请求写入Voting Disk,块设备驱动把写入请求发给本地的第二块设备,同时通过网络把写入请求发给第一服务器上的第一块设备,使第二块设备和第一块设备始终同步;如果因为网络中断,则触发Voting Disk的脑裂处理机制;
[0015](3)在第一服务器上读取Voting Disk时,块设备驱动把读取请求发给本地的第一块设备或者发给第二服务器的第二块设备;在第二服务器上读取Voting Disk时,块设备驱动把读取请求发给本地的第二块设备或者发给第一服务器的第一块设备;
[0016](4)第一块设备损坏时,将写入和读取处理请求逻辑改成都发给第二块设备内,当换上新的第一块设备时,先把数据从第二块设备上全部同步过来,然后再将写入和读取处理请求恢复成第一块设备和第二块设备都能接收;第二块设备损坏时,将写入和读取处理请求逻辑改成都发给第一块设备内,当换上新的第二块设备时,先把数据从第一块设备上全部同步过来,然后再将写入和读取处理请求恢复成第一块设备和第二块设备都能接收;
[0017](5)在第一服务器和第二服务器之间有网络心跳,在网络中断时候会触发VotingDisk的脑裂处理机制;
[0018](6)在第一服务器和第二服务器上给Oracle数据库使用的磁盘通过iSCSI软件互相输出到对端,同时将两端服务器的磁盘两两成对放入Oracle ASM中组成镜像类型的Oralce Diskgroup给Oracle RAC集群使用。
[0019]作为优选,步骤(I)中第一服务器和第二服务器分配的空间大小相等。
[0020]作为优选,步骤(5)中脑裂机制为在第一服务器或第二服务器收到脑裂信号后,将脑裂的一方中的Voting Disk设置为不可读。
[0021]本发明由于采用了以上技术方案,具有显著的技术效果:通过两台服务器内各分配出一定的空间,经过块设备驱动将这两个空间分别生成块设备,然后将这两个块设备作为Oracle RAC中的Voting Disk,在一个块设备出现问题时另一块进行工作储存数据并且备份,可以在出现单点故障问题时Oracle RAC继续工作,保证了工作的连续性。在更换出现故障的块设备后就可以继续恢复正常工作,具有良好的复用性。
【附图说明】
[0022]图1是本发明一种双机系统无共享存储实现OracleRAC的方法的工作原理图。
【具体实施方式】
[0023]下面结合附图与实施例对本发明作进一步详细描述。
[0024]实施例1
[0025]如图1所示,一种双机系统无共享存储实现Oracle RAC的方法,包括第一服务器和第二服务器,包括以下步骤:
[0026](I)从第一服务器和第二服务器上分别分配一个相同的空间,通过一个块设备驱动,分别将第一服务器和第二服务器分配的空间生成第一块设备和第二块设备;
[0027](2)将第一块设备和第二块设备给Oracle RAC作为Voting Disk,当第一服务器上请求写入Voting Disk时,块设备驱动把写入请求发给本地的第一块设备,同时通过网络把写入请求发给第二服务器上的第二块设备,使第一块设备和第二块设备始终同步;当第二服务器上请求写入Voting Disk,块设备驱动把写入请求发给本地的第二块设备,同时通过网络把写入请求发给第一服务器上的第一块设备,使第二块设备和第一块设备始终同步;如果因为网络中断,则触发Voting Disk的脑裂处理机制;
[0028](3)在第一服务器上读取Voting Disk时,块设备驱动把读取请求发给本地的第一块设备或者发给第二服务器的第二块设备;在第二服务器上读取Voting Disk时,块设备驱动把读取请求发给本地的第二块设备或者发给第一服务器的第一块设备;
[0029](4)第一块设备损坏时,将写入和读取处理请求逻辑改成都发给第二块设备内,当换上新的第一块设备时,先把数据从第二块设备上全部同步过来,然后再将写入和读取处理请求恢复成第一块设备和第二块设备都能接收;第二块设备损坏时,将写入和读取处理请求逻辑改成都发给第一块设备内,当换上新的第二块设备时,先把数据从第一块设备上全部同步过来,然后再将写入和读取处理请求恢复成第一块设备和第二块设备都能接收;
[0030](5)在第一服务器和第二服务器之间有网络心跳,在网络中断时候会触发VotingDisk的脑裂处理机制;
[0031](6)在第一服务器和第二服务器上给Oracle数据库使用的磁盘通过iSCSI软件互相输出到对端,同时将两端服务器的磁盘两两成对放入Oracle ASM中组成镜像类型的Oralce Diskgroup给Oracle RAC集群使用。
[0032]本发明实现了一种只需要2台服务器而不需要其实存储设备或存储服务器就能实现的一种避免单点故障的Oracle RAC的方案。在一台服务器出现故障的时候,另外一台能够继续运行,保证了Oracle RAC正常工作,提高了可用性。相比传统中需要至少5台服务器才能实现一套避免单点故障的Oracle RAC可用集群,本发明只需2台服务器而不需要其他存储服务器就能实现避免单点故障的Oracle RAC方案,使使用成本大大降低,提高了企业的经济效益。
[0033]总之,以上仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
【主权项】
1.一种双机系统无共享存储实现OracleRAC的方法,包括第一服务器和第二服务器,其特征在于,包括以下步骤: (1)从第一服务器和第二服务器上分别分配一个相同的空间,通过一个块设备驱动,分别将第一服务器和第二服务器分配的空间生成第一块设备和第二块设备; (2)将第一块设备和第二块设备给OracleRAC作为Voting Disk,当第一服务器上请求写入Voting Disk时,块设备驱动把写入请求发给本地的第一块设备,同时通过网络把写入请求发给第二服务器上的第二块设备,使第一块设备和第二块设备始终同步;当第二服务器上请求写入Voting Disk,块设备驱动把写入请求发给本地的第二块设备,同时通过网络把写入请求发给第一服务器上的第一块设备,使第二块设备和第一块设备始终同步;如果因为网络中断,则触发Voting Disk的脑裂处理机制; (3)在第一服务器上读取VotingDisk时,块设备驱动把读取请求发给本地的第一块设备或者发给第二服务器的第二块设备;在第二服务器上读取Voting Disk时,块设备驱动把读取请求发给本地的第二块设备或者发给第一服务器的第一块设备; (4)第一块设备损坏时,将写入和读取处理请求逻辑改成都发给第二块设备内,当换上新的第一块设备时,先把数据从第二块设备上全部同步过来,然后再将写入和读取处理请求恢复成第一块设备和第二块设备都能接收;第二块设备损坏时,将写入和读取处理请求逻辑改成都发给第一块设备内,当换上新的第二块设备时,先把数据从第一块设备上全部同步过来,然后再将写入和读取处理请求恢复成第一块设备和第二块设备都能接收; (5)在第一服务器和第二服务器之间有网络心跳,在网络中断时候会触发VotingDisk的脑裂处理机制; (6)在第一服务器和第二服务器上给Oracle数据库使用的磁盘通过iSCSI软件互相输出到对端,同时将两端服务器的磁盘两两成对放入OracIe ASM中组成镜像类型的OralceDiskgroup给Oracle RAC集群使用。2.根据权利要求1所述的一种双机系统无共享存储实现OracleRAC的方法,其特征在于:步骤(I)中所述第一服务器和所述第二服务器分配的空间大小相等。3.根据权利要求1所述的一种双机系统无共享存储实现OracleRAC的方法,其特征在于:步骤(5)中所述脑裂机制为在所述第一服务器或所述第二服务器收到脑裂信号后,将脑裂的一方中的Voting Disk设置为不可读。
【文档编号】G06F17/30GK105843713SQ201610207114
【公开日】2016年8月10日
【申请日】2016年4月1日
【发明人】唐成, 李建辉
【申请人】杭州沃趣网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1