应用切换数据库IP的方法、存储介质与流程

文档序号:18414244发布日期:2019-08-13 19:08阅读:373来源:国知局
应用切换数据库IP的方法、存储介质与流程

本发明涉及数据库技术领域,具体涉及应用切换数据库ip的方法、存储介质。



背景技术:

现有的关于数据库ip动态切换的相关案例,在涉及到多服务器上的多应用,对所使用的同一数据库ip进行切换的问题上,还没有一个有效可行的解决方案。

例如申请号为cn201310537530.5,名称为《一种基于多数据库的动态切换方法和装置》这一专利申请,其通过拦截系统方法的调用,来指定数据库ip。但是,该方案存在后续维护成本高和性能降低的问题。因为在开发过程中,添加新的方法后,还要不断维护该配置文件,而且所有的非数据库操作方法也都要进行拦截判断,应用性能将会明显降低。因此该方案不能有效解决问题。



技术实现要素:

本发明所要解决的技术问题是:提供应用切换数据库ip的方法、存储介质,能在不影响应用性能的情况下,高效且灵活地同时切换多台服务器上应用的数据库ip。

为了解决上述技术问题,本发明采用的技术方案为:

应用切换数据库ip的方法,包括:

预设配置文件,并将其上传至各个服务器的指定目录,所述配置文件包括键值对,所述键值对的键为待替换数据库ip,值为目标数据库ip;

服务器上的应用程序进行数据库操作时,首先,解析应用程序传入的连接串,获取应用程序对应的数据库ip,然后,从所述指定目录读取配置文件,然后,匹配所获取的数据库ip与所读取的配置文件的键值对,若匹配成功,则依据所述键值对将所述连接串的数据库ip替换为目标数据库ip。

本发明提供的另一个技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器读取并执行时,能实现上述应用切换数据库ip的方法所包含的步骤。

本发明的有益效果在于:通过预设配置文件,以键值对这种直观、方便操作和管理的形式来配置待替换数据库ip和目标数据库ip的关系;在服务器上的应用程序进行数据库操作时,统一配置执行:获取应用程序对应数据库ip和匹配配置文件判断是否需要进行数据库ip替换,之后再调用数据库操作。以此在有数据库ip切换需求时,能采用统一方式对多台服务器上的多个应用程序所连接的数据库ip进行高效、灵活地切换,且不用关心数据库连接串的类型;更不涉及系统方法的拦截,因而在不降低应用性能的情况下大大,还能降低维护成本。

附图说明

图1为本发明实施例应用切换数据库ip的方法的流程示意图;

图2为本发明实施例一的应用切换数据库ip的方法的流程示意图;

图3为实施例一和实施例二的数据库调用方法的具体逻辑流程示意图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:预设记载有待替换数据库ip和目标数据库ip关系的配置文件;服务器上的应用程序进行数据库操作时,统一配置先执行:获取应用程序对应数据库ip和匹配配置文件判断是否需要进行数据库ip替换,之后调用数据库操作。

请参照图1,本发明提供应用切换数据库ip的方法,包括:

预设配置文件,并将其上传至各个服务器的指定目录,所述配置文件包括键值对,所述键值对的键为待替换数据库ip,值为目标数据库ip;

服务器上的应用程序进行数据库操作时,首先,解析应用程序传入的连接串,获取应用程序对应的数据库ip,然后,从所述指定目录读取配置文件,然后,匹配所获取的数据库ip与所读取的配置文件的键值对,若匹配成功,则依据所述键值对将所述连接串的数据库ip替换为目标数据库ip。

从上述描述可知,本发明的有益效果在于:在数据库发生异常时,能实现采用统一方式对多台服务器上的多个应用程序所连接的数据库ip进行快速、灵活地切换,且不用关心数据库连接串的类型;更不涉及系统方法的拦截,因而在不降低应用性能的情况下大大,还能降低维护成本。

进一步的,服务器上的应用程序进行数据库操作时,通过调用预设的数据库执行类执行所述首先,解析应用程序传入的连接串,获取应用程序对应的数据库ip,然后,从所述指定目录读取配置文件,然后,匹配所获取的数据库ip与所读取的配置文件的键值对,若匹配成功,则依据所述键值对将所述连接串的数据库ip替换为目标数据库ip。

由上述描述可知,通过统一数据库调用方法类来实现外部(各应用程序)再由调用数据库操作需求的时候,均需要使用该方法实现,以此在有切换数据库需求时实现高效、灵活、低成本且不影响应用性能的切换多台服务器上应用所连接的数据库ip。

进一步的,所述的将所述连接串的数据库ip替换为目标数据库ip,之后,还包括:

依据替换后的连接串和应用程序在传入连接串时一并传入的操作语句,调用对应的数据库操作方法。

由上述描述可知,将依据替换后的连接串执行对应新的数据库的相关操作,确保应用的数据库操作正常执行。

进一步的,所述解析应用程序传入的数据库串,获取应用程序对应的数据库ip,具体为:

依据应用程序传入的连接串的关键字得到对应的数据库类型;

依据所述数据库类型提取应用程序对应的数据库ip。

由上述描述可知,在一具体实例中,将对应不同数据库类型,按不同规则进行解析,而数据库类型的不同依据连接串的关键字确定。

进一步的,所述从所述指定目录上读取配置文件,具体为:

判断应用程序的缓存中是否存储有配置文件,若是,则读取缓存中的配置文件,若否,则从所述指定目录上读取配置文件并存至缓存。

由上述描述可知,可以事先将配置文件存储至各应用程序的缓存中,以实现快速读取,且具备灵活性。具体的,相较于所有应用程序都要从服务器的指定目录上提取,能避免消耗磁盘io,从而有效提高读取效率;而相较于固定存储在各应用的内存中,更具灵活性,不需要在ip变动时更新所有的应用程序。

进一步的,还包括:

预设应用程序的缓存超时时间;

若缓存中存储的配置文件的存储时长超过所述缓存超时时间,则删除缓存中的配置文件。

由上述描述可知,可以灵活设置配置文件的有效时间,避免反复读取,使数据库ip切换操作执行具备时效性。

进一步的,所述配置文件还包括与键值对一一对应的标识属性,所述标识属性用于标识所述键值对对应的切换规则是否启用;

所述从所述指定目录上读取配置文件时,只读取标识属性对应启用的键值对。

由上述描述可知,配置文件中可以同时配置多条切换规则,且通过标识属性标识是否启用;在读取配置文件时,将只读取启动的切换规则。从而实现可灵活配置当前启用的切换规则。

本发明提供的另一个技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器读取并执行时,能实现上述应用切换数据库ip的方法所包含的步骤。

从上述描述可知,对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。而所述流程的执行将带来以下有效效果:通过预设配置文件,以键值对这种直观、方便操作和管理的形式来配置待替换数据库ip和目标数据库ip的关系;在服务器上的应用程序进行数据库操作时,统一配置先执行:获取应用程序对应数据库ip和匹配配置文件判断是否需要进行数据库ip替换。之后再调用数据库操作。以此在有数据库ip切换需求时,能采用统一方式对多台服务器上的多个应用程序所连接的数据库ip进行高效、灵活地切换,且不用关心数据库连接串的类型;更不涉及系统方法的拦截,因而在不降低应用性能的情况下大大,还能降低维护成本。

实施例一

本实施例提供一种多服务器上多应用切换数据库ip的方法,其可以在有数据库ip切换需求的时候,让多服务器上使用的相同的数据库ip的多应用快速且有效地切换至指定的数据库ip。

请参阅图2,方法包括:

首先,预设配置文件(xml),并将配置文件上传至各个服务器的指定目录存储。

其中,所述配置文件包括至少一个的键值对,每一个键值对的键为待替换数据库ip,值为目标数据库ip;一个键值对对应一条切换规则,一个配置文件中支持通过同时配置多个键值对来实现预配置多条切换规则。

若配置文件中同时存储有多个键值对,且对应的切换规则存在矛盾时,可通过两种方式区分当前所启动的切换规则。第一,可通过在所述配置文件中同时配置与键值对一一对应的标识属性,通过所述标识属性标识所述键值对对应的切换规则是否启用。简而言之,该标识属性相当于开关,比如预设了10条常用切换规则,单次切换只切换其中的2条,然后再切换其中的3条,然后再5条,则可以通过修改标识属性有序且便捷地分步完成整个切换操作。其能更好地适用于要频繁进行切换的场景使用,比如主同步库异常,临时切换到另一个副同步库,待主同步库恢复,可以修改该标识快速切换回来的情况。第二,可采用添加和删掉键值对的方式来实现对应切换规则的启动与否。比如,添加至配置文件中的键值对即视为启用,从配置文件中删除的即视为关闭对应的切换规则。相较于第二种,第一种方式的使用更方便一些。

其中,将配置文件存储在各个服务器系统的指定目录,所有应用只有读取权限,由此能防止擅自修改配置文件,确保配置文件的安全性。

可选的,所述配置文件通过如ftp等上传工具同步至多服务器的指定目录。

然后,统一数据库方法类。

具体而言,将对服务器上所有需要调用数据库操作的应用程序,统一其具体数据库调用方法。通过统一各个应用的数据库调用方法,统一外部执行数据库操作的方式,从而实现高效、低成本且不影响应用性能地对各个应用所连接的数据库ip进行切换。

所统一的数据库调用方法的具体逻辑如图3所示,其包括:

1、在服务器上的应用程序进行数据库操作时,首先,解析应用程序传入的连接串,获取应用程序对应的数据库ip;

具体的,在应用需要调用数据库操作时,将传入应用的连接串和数据库操作信息(操作语句)。

而解析连接串获取应用程序对应的数据库ip的过程可以包括:

a、依据应用程序传入的连接串的关键字得到对应的数据库类型。例如,driver开头的是odbc类型的连接串;persistsecurityinfo开头的是mysql类型;包含port=的是sqlserver类型。

b、依据所述数据库类型提取应用程序对应的数据库ip。具体将依据不同数据库类型解析得到对应的数据库ip。例如,对应odbc类型的连接串,通过server=这个关键词后面的信息提取到数据库ip信息。

2、判断应用程序的缓存中是否存储有配置文件,若是,则读取缓存中的配置文件,若否,则从所述指定目录上读取配置文件并存至缓存。

在这之前,还将预设应用程序缓存的缓存超时时间。以此来限定缓存中存储的配置文件的有效时间。从而避免被反复读取执行操作。可选的,所述缓存超时时间可以是10秒或一分钟,依具体需求而定。优选地为5-20分钟。

对应应用程序的缓存中所存储的配置文件的由来,可以通过配置文件存储至指定目录后,即将其读取至各个应用缓存中,以便在应用调用数据库操作时从缓存中快速调用,且在缓存超时后自动清除。也可以不预先读取至应用缓存中,当应用第一次调用数据库操作时,从指定目录中读取配置文件后,将配置文件存至缓存中,然后依据缓存中的配置文件执行切换操作,缓存中的配置文件可以供应用在切换时效内(对应缓存的缓存超时时间)再次调用数据库操作时,直接从缓存中快速读取,从而提高应用本次切换操作的完成速度。

不管是上述哪一种方式,都能支持从缓存中高效读取配置文件,因此能有效缓解多应用频繁读取指定目录文件导致消耗磁盘io,读取速度降低的情况,进而提高多应用同时切换操作的效率;进一步的,相比直接将配置文件存储至各应用内存的方式,本实施例的方式在有ip变动时,将不需要通过同时更新多个应用程序才能实现配置文件的更新,因而更具实用性和便捷性。

需要同时说明的是,若使用标识属性来标识切换规则是否启用,则不管是从指定目录上或者是缓存中读取配置文件时,都只读取标识属性对应启用的键值对,即只将当前有效的切换规则读取出来。若使用添加或删除键值对的方式标识对应的切换规则是否启用,则读取配置文件的全部内容。

3、匹配所获取的数据库ip与所读取的配置文件中对应启用的键值对,若匹配成功,则依据所述键值对将所述连接串的数据库ip替换为目标数据库ip。

具体而言,由于上一步骤只读取有效的键值对(即对应的切换规则为启动的键值对),因此,在此可直接判断解析连接串所获取的数据库ip是否存在所读读的键值对的键值中,若是,则该数据库ip需要替换为对应值指向的目标数据库ip。

4、执行对应的数据库操作。

具体而言,依据替换后的连接串、连接串对应的数据库类型(步骤1中解析得到)和同连接串一并传入的操作语句,调用对应的数据库操作方法。

本实施例中,调用数据库操作都使用统一方法,无需关心数据库连接串类型,由此提高切换效率和操作便捷性;同时支持快速地通过更新配置文件,同时切换多台服务器上的应用程序所连接的数据库ip,具备较高实用性和灵活性。

实施例二

本实施例对应实施例一,提供一具体运用场景:

一个数据库有2个同步库,平时应用只用到其中1个,剩下1个备用。当主用同步库异常的时候,就需要切换到备用服务器使用。这时候可以设置配置文件的内容包括:以主同步库为键、备用同步库为值的键值对,以及对应该键值对的标识属性,且设置为启用。通过上传工具将配置文件推送到服务器上。

当服务器上的应用程序进行数据库操作时,调用指定的数据库方法类,该类会先解析应用传入的连接串,根据连接串的关键字得到数据库类型,例如driver开头,是odbc连接串,再通过“server=”这个关键词后面的信息提取到应用对应的数据库ip;然后开始处理缓存,如果应用的缓存为空,则从服务器读取配置文件,且只读取启用的配置,并写入缓存;再然后用连接串提取到的数据库ip对缓存中的配置文件进行匹配,看下是否存在对应的键值对。存在的情况下,对连接串的数据库ip进行替换;最后根据替换后的数据库ip、上面解析得到的数据库类型和传入的操作语句,调用对应的数据库操作方法,完成整个流程。

实施例三

本实施例对应实施例一或实施例二,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器读取并执行时,能实现上述实施例一或实施例二所述的应用切换数据库ip的方法所包含的步骤。具体的步骤内容在此不进行复述,详细请参阅实施例一或实施例二的记载。

其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

综上所述,本发明提供的应用切换数据库ip的方法、存储介质,不仅能够高效且灵活地同时切换多台服务器上应用的数据库ip;而且无需关心数据库连接串类型,切换效率更高,更不易出错;进一步的,支持多种具体实现方式,更具灵活性和实用性;再进一步的,还能不影响应用性能,成本也低。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1