CN112507031B - 一种数据库切换自动重连方法以及可读存储介质 - Google Patents
一种数据库切换自动重连方法以及可读存储介质 Download PDFInfo
- Publication number
- CN112507031B CN112507031B CN202011527583.5A CN202011527583A CN112507031B CN 112507031 B CN112507031 B CN 112507031B CN 202011527583 A CN202011527583 A CN 202011527583A CN 112507031 B CN112507031 B CN 112507031B
- Authority
- CN
- China
- Prior art keywords
- database
- switching
- datasource
- state
- dns
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库切换自动重连方法,所述数据库切换自动重连方法包括:S1:将各数据库的连接方式修改为使用域名进行连接;S2:将原有数据库设置为只读状态,切换后的数据库设置为可写状态;S3:修改DNS中数据库的连接域名对应的IP;S4:通过在DataSource中轮询DNS,发现数据库IP发生变化,且现有连接的数据库为只读状态,变化IP的数据库为可写状态时,关闭当前的DataSource,重现创建DataSource。通过本数据库切换自动重连方法在现有重启应用切换的基础上,保证了应用不重启就能完成数据库切换的功能。拥有切换稳定,数据丢失少和业务无感知的特点。
Description
技术领域
本发明属于数据库连接技术领域,尤其涉及-一种基于durid连接池能力的数据库切换自动重连方法以及可读存储介质。
背景技术
1.Mysql数据库多中心主从切换:
1)重新配置数据库IP和端口。
2)重启应用。
3)检查数据库是否切换成功。
2.Oracle数据库多中心主从切换:
1)使用多中心配置方式
2)发生切换后客户端自动切换到可写的Oracle RAC节点上
3)多中心不同节点的Oracle RAC使用共享存储的方式保证数据库数据一致性
3.其存在以下几点不足。
1.Mysql的方案需要重启应用,如果不重启应用,不会自动连接到新的数据库上。
2.Oracle的方案成本高昂、日常运行风险高、效率低。
发明内容
本发明的目的在于,为克服现有技术缺陷,提供了一种数据库切换自动重连方法以及可读存储介质,通过本数据库切换自动重连方法在现有重启应用切换的基础上,保证了应用不重启就能完成数据库切换的功能。拥有切换稳定,数据丢失少和业务无感知的特点。
本发明目的通过下述技术方案来实现:
一种数据库切换自动重连方法,所述数据库切换自动重连方法包括:S1:将各数据库的连接方式修改为使用域名进行连接;S2:将原有数据库设置为只读状态,切换后的数据库设置为可写状态;S3:修改DNS中数据库的连接域名对应的IP;S4:通过在DataSource中轮询DNS,发现数据库IP发生变化,且现有连接的数据库为只读状态,变化IP的数据库为可写状态时,关闭当前的DataSource,重现创建DataSource。
根据与一个优选的实施方式,所述步骤S1具体包括:修改配置,将数据库的IP修改为域名,并添加数据库切换插件。
根据与一个优选的实施方式,所述步骤S2还包括:切换数据库的状态,将原有的数据库状态切换为从状态,将需要切换的数据库状态设置为主状态。
根据与一个优选的实施方式,所述步骤S4具体包括:DataSource中轮询发现DNS发生数据库切换,检查数据库主从切换关系,主从发生切换则关闭当前DataSource,新建DataSource。
根据与一个优选的实施方式,所述步骤S4还包括:从新建的DataSource获取新的连接到新数据库检测是否切换成功。
根据与一个优选的实施方式,所述步骤S4中通过在DataSource中轮询DNS,发现数据库IP发生变化具体包括:在Druid连接池中增加filter,在该filter中定时检测DNS对应域名的IP是否发生变化。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述的数据库切换自动重连方法。
前述本发明主方案及其各进一步选择方案可以自由组合以形成多个方案,均为本发明可采用并要求保护的方案;且本发明,(各非冲突选择)选择之间以及和其他选择之间也可以自由组合。本领域技术人员在了解本发明方案后根据现有技术和公知常识可明了有多种组合,均为本发明所要保护的技术方案,在此不做穷举。
本发明的有益效果:本发明方法在现有重启应用切换的基础上,保证了应用不重启就能完成数据库切换的功能。拥有切换稳定,数据丢失少和业务无感知的特点。并且,本发明在现有的druid中增加filter,在filter中检测DNS,数据库主从状态。然后对DataSource进行重启。即是,无需重启应用就能进行数据库切换,通过修改域名对应的ip就能完成数据库切换。基于域名的自动切换主从数据库:无侵入,数据丢失少。
附图说明
图1是本发明数据库切换自动重连方法的流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,为使本发明实施例的目的、技术方案和优点更加清楚,下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
另外,本发明要指出的是,本发明中,如未特别写出具体涉及的结构、连接关系、位置关系、动力来源关系等,则本发明涉及的结构、连接关系、位置关系、动力来源关系等均为本领域技术人员在现有技术的基础上,可以不经过创造性劳动可以得知的。
实施例1:
参考图1所示,本发明公开了一种数据库切换自动重连方法。数据库切换自动重连方法包括:
步骤S1:将各数据库的连接方式修改为使用域名进行连接。
优选地,所述步骤S1具体包括:修改配置,将数据库的IP修改为域名,并添加数据库切换插件。
步骤S2:将原有数据库设置为只读状态,切换后的数据库设置为可写状态。
优选地,所述步骤S2还包括:切换数据库的状态,将原有的数据库状态切换为从状态,将需要切换的数据库状态设置为主状态。
步骤S3:修改DNS中数据库的连接域名对应的IP。
步骤S4:通过在DataSource中轮询DNS,发现数据库IP发生变化,且现有连接的数据库为只读状态,变化IP的数据库为可写状态时,关闭当前的DataSource,重现创建DataSource。
优选地,所述步骤S4具体包括:DataSource中轮询发现DNS发生数据库切换,检查数据库主从切换关系,主从发生切换则关闭当前DataSource,新建DataSource。
优选地,所述步骤S4还包括:从新建的DataSource获取新的连接到新数据库检测是否切换成功。
进一步地,所述步骤S4中通过在DataSource中轮询DNS,发现数据库IP发生变化具体包括:在Druid连接池中增加filter,在该filter中定时检测DNS对应域名的IP是否发生变化。
即是,本发明方法实现过程如下:
1)数据库连接不通过IP直接连接数据库,而是通过域名连接。
2)发生数据库切换的时候,修改DNS中的域名对应的IP。
3)在Druid连接池中增加filter,在该filter中定时检测DNS对应域名的IP是否发生变化。
4)检测原来数据库是否为只可读的状态。
5)和新数据库是否为可写的状态。
6)如果上面两个条件都满足,关闭当前所有数据库连接,重启DataSource。
7)从新建的DataSource中获取新的连接到新数据库检测是否切换成功。
本发明方法中业务透明切换,无需业务方操作,仅需要配置插件和修改为域名连接。并且,服务多种场景,支持多种数据库和数据库中间件。
本发明方法在现有重启应用切换的基础上,保证了应用不重启就能完成数据库切换的功能。拥有切换稳定,数据丢失少和业务无感知的特点。并且,本发明在现有的druid中增加filter,在filter中检测DNS,数据库主从状态。然后对DataSource进行重启。即是,无需重启应用就能进行数据库切换,通过修改域名对应的ip就能完成数据库切换。基于域名的自动切换主从数据库:无侵入,数据丢失少。
实施例2
本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例1中的数据库切换自动重连方法。
前述本发明基本例及其各进一步选择例可以自由组合以形成多个实施例,均为本发明可采用并要求保护的实施例。本发明方案中,各选择例,与其他任何基本例和选择例都可以进行任意组合。本领域技术人员可知有众多组合。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种数据库切换自动重连方法,其特征在于,所述数据库切换自动重连方法包括:
S1:将各数据库的连接方式修改为使用域名进行连接;
S2:将原有数据库设置为只读状态,切换后的数据库设置为可写状态;
S3:修改DNS中数据库的连接域名对应的IP;
S4:通过在DataSource中轮询DNS,发现数据库IP发生变化,且现有连接的数据库为只读状态,变化IP的数据库为可写状态时,关闭当前的DataSource,重现创建DataSource。
2.如权利要求1所述的数据库切换自动重连方法,其特征在于,所述步骤S1具体包括:修改配置,将数据库的IP修改为域名,并添加数据库切换插件。
3.如权利要求1所述的数据库切换自动重连方法,其特征在于,所述步骤S2还包括:切换数据库的状态,将原有的数据库状态切换为从状态,将需要切换的数据库状态设置为主状态。
4.如权利要求1所述的数据库切换自动重连方法,其特征在于,所述步骤S4具体包括:DataSource中轮询发现DNS发生数据库切换,检查数据库主从切换关系,主从发生切换则关闭当前DataSource,新建DataSource。
5.如权利要求4所述的数据库切换自动重连方法,其特征在于,所述步骤S4还包括:从新建的DataSource获取新的连接到新数据库检测是否切换成功。
6.如权利要求1所述的数据库切换自动重连方法,其特征在于,所述步骤S4中通过在DataSource中轮询DNS,发现数据库IP发生变化具体包括:在Druid连接池中增加filter,在该filter中定时检测DNS对应域名的IP是否发生变化。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527583.5A CN112507031B (zh) | 2020-12-22 | 2020-12-22 | 一种数据库切换自动重连方法以及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527583.5A CN112507031B (zh) | 2020-12-22 | 2020-12-22 | 一种数据库切换自动重连方法以及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112507031A CN112507031A (zh) | 2021-03-16 |
CN112507031B true CN112507031B (zh) | 2023-06-06 |
Family
ID=74923145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011527583.5A Active CN112507031B (zh) | 2020-12-22 | 2020-12-22 | 一种数据库切换自动重连方法以及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112507031B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116527486B (zh) * | 2023-07-03 | 2023-09-19 | 中国家用电器研究院 | 设备独立功能自适应管理方法、装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468764A (zh) * | 2015-12-02 | 2016-04-06 | 广州华多网络科技有限公司 | 一种数据处理方法、装置及集群服务*** |
CN106021370A (zh) * | 2016-05-11 | 2016-10-12 | 智者四海(北京)技术有限公司 | 内存数据库实例的管理方法及装置 |
CN111581284A (zh) * | 2020-04-29 | 2020-08-25 | 上海中通吉网络技术有限公司 | 一种数据库高可用性方法、装置、***和存储介质 |
CN111989681A (zh) * | 2017-12-08 | 2020-11-24 | 雷网有限责任公司 | 自动部署的信息技术(it)***和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015031356A1 (en) * | 2013-08-26 | 2015-03-05 | Seven Networks, Inc. | Enhanced caching of domain name system (dns) and reverse dns queries for traffic management for signaling optimization in a mobile network |
US10298543B2 (en) * | 2016-12-12 | 2019-05-21 | Verisign, Inc. | Real-time association of a policy-based firewall with a dynamic DNS hostname |
-
2020
- 2020-12-22 CN CN202011527583.5A patent/CN112507031B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468764A (zh) * | 2015-12-02 | 2016-04-06 | 广州华多网络科技有限公司 | 一种数据处理方法、装置及集群服务*** |
CN106021370A (zh) * | 2016-05-11 | 2016-10-12 | 智者四海(北京)技术有限公司 | 内存数据库实例的管理方法及装置 |
CN111989681A (zh) * | 2017-12-08 | 2020-11-24 | 雷网有限责任公司 | 自动部署的信息技术(it)***和方法 |
CN111581284A (zh) * | 2020-04-29 | 2020-08-25 | 上海中通吉网络技术有限公司 | 一种数据库高可用性方法、装置、***和存储介质 |
Non-Patent Citations (2)
Title |
---|
基于私有云集群部署开源智能DNS的创新与实践;蒋国明;黄文胜;柳晓佳;;中国教育信息化(第09期);93-96 * |
浦发银行网上银行安全体系的构建;秦文劭;《中国优秀硕士学位论文全文数据库 信息科技辑》(第03期);I138-97 * |
Also Published As
Publication number | Publication date |
---|---|
CN112507031A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1910854B (zh) | 使用元管理信息库的自动更新***以及方法 | |
CN112507031B (zh) | 一种数据库切换自动重连方法以及可读存储介质 | |
CN107332688B (zh) | 基于图数据库的电力信息通信***的建模方法及装置 | |
CN111641521B (zh) | 一种基于Ambari的云上部署大数据集群的方法 | |
CN106487864B (zh) | 数据连接的建立方法、服务端及移动终端 | |
CN113792008B (zh) | 网络拓扑结构的获取方法、装置、电子设备及存储介质 | |
CN111711698A (zh) | 一种智能设备入网方法、装置及智能设备控制***、方法 | |
CN116760834A (zh) | 一种负载均衡方法、***、设备以及存储介质 | |
CN112003943A (zh) | 语音数据同步方法和装置 | |
CN115883407A (zh) | 一种数据采集方法、***、设备及存储介质 | |
US20130091093A1 (en) | Method and device for managing information of a universal integrated circuit card | |
CN113765690A (zh) | 集群切换方法、***、装置、终端、服务器及存储介质 | |
CN107534598A (zh) | 一种媒体服务代理的方法、设备及*** | |
CN112367412B (zh) | 一种基于物联网的设备连接管理方法及装置 | |
CN111741457B (zh) | 一种蓝牙通讯方法、装置及计算机可读存储介质 | |
CN114915514A (zh) | 意图的处理方法和装置、存储介质及电子装置 | |
CN115663788A (zh) | 基于rtcn节点的分布式馈线自动化拓扑识别方法及*** | |
CN105207811B (zh) | 一种替换非AllJoyn设备的方法及装置 | |
CN109240260B (zh) | 基于总线自动切换和自由配置协议的远程故障诊断方法 | |
CN102088439A (zh) | 基于ie访问前端设备的方法 | |
CN115550424B (zh) | 一种数据缓存方法、装置、设备及存储介质 | |
CN110855803A (zh) | 一种数据采集方法和装置 | |
CN116389188B (zh) | 一种数据传输方法和相关装置 | |
CN115942429B (zh) | 公用家电控制方法、装置、电子设备及存储介质 | |
CN115695169B (zh) | 一种配置信息下发方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |