【技术实现步骤摘要】
一种用于防止RAC实例间数据访问发生冲突的方法及系统
本专利技术涉及数据库应用
,更具体地,涉及一种用于防止RAC实例间数据访问发生冲突的方法及系统。
技术介绍
OracleRAC是一种提高系统高可用性的技术架构,同时也是一种集群技术,集群中节点的数量为2个及以上。许多计算机系统的后台数据库都采用了OracleRAC,大型企业或者集团级别的系统尤其如此。但困扰数据库设计和运维人员的主要难题是RAC实例间数据的访问冲突问题。Oracle数据库提供了冲突检测的方法和实例间数据共享的机制,但数据库架构的设计仍然至关重要,这是因为数据库设计决定了冲突发生的数量,从而决定了系统的性能。业界的广泛做法是业务分离或读写分离,然而,一方面读写分离开发难度大和开发周期长,另一方面如果单节点提供不了业务所需的处理能力,则只能选用更高档次的服务器了。Oracle分区技术是一种将大表转化为若干个小表的分而治之的技术,支持的分区方式包括范围分区、哈希分区、列表分区等。将大表分成小表后,逻辑上仍是一个表,对开发人员透明,同时又能提高系统的性能。现有技术(CN201610258541.3 ...
【技术保护点】
1.一种用于防止数据库RAC实例间数据访问发生冲突的方法,所述方法包括:基于组织ID创建业务表的列表分区,将客户的组织ID作为业务表的索引字段;通过所述路由规则将组织ID和客户端IP进行关联;获取提出访问请求的客户端的客户端IP,按照所述路由规则确定所述客户端IP所关联的组织ID对应的相同的列表分区;获取所述客户端针对所述相同的列表分区的访问请求,通过反向代理服务器将所述相同的列表分区的访问请求发送至对应的应用服务器的相同数据库实例。
【技术特征摘要】
1.一种用于防止数据库RAC实例间数据访问发生冲突的方法,所述方法包括:基于组织ID创建业务表的列表分区,将客户的组织ID作为业务表的索引字段;通过所述路由规则将组织ID和客户端IP进行关联;获取提出访问请求的客户端的客户端IP,按照所述路由规则确定所述客户端IP所关联的组织ID对应的相同的列表分区;获取所述客户端针对所述相同的列表分区的访问请求,通过反向代理服务器将所述相同的列表分区的访问请求发送至对应的应用服务器的相同数据库实例。2.根据权利要求1所述的方法,所述业务表的每个列表分区中,存储至少一个组织ID的数据。3.根据权利要求1所述的方法,所述每个列表分区的数据,只缓存在一个数据库实例中。4.根据权利要求1所述的方法,还包括:对于第一次发出请求的客户端,将所述客户端针对所述相同的列表分区的访问请求,通过所述反向代理服务器根据轮询算法将所述相同的列表分区的访问请求发送至对应的应用服务器的节点。5.根据权利要求4所述的方法,还包括:对于不是第一次发出请求的客户端,将所述客户端针对所述相同的列表分区的访问请求,通过所述反向代理服务器将所述相同的列表分区的访问请求发送至所述客户端第一次发出请求时对应的应用服务器的节点。6.根据权利要求1所述的方法,还包括:不同的数据库实例缓存所述业务表中所述不同的列表分区的数据。7.根据权利要求1所述的方法,还包括:所述每个应用服务器对应一个可用的数据库实例。8.一种用于防止数据库RAC实例间数据访问发生冲突的系统,所述系统包括:...
【专利技术属性】
技术研发人员:王恒峰,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。