CN114116671A - 数据库的迁移方法、系统、服务器和存储介质 - Google Patents
数据库的迁移方法、系统、服务器和存储介质 Download PDFInfo
- Publication number
- CN114116671A CN114116671A CN202111426243.8A CN202111426243A CN114116671A CN 114116671 A CN114116671 A CN 114116671A CN 202111426243 A CN202111426243 A CN 202111426243A CN 114116671 A CN114116671 A CN 114116671A
- Authority
- CN
- China
- Prior art keywords
- database
- service point
- application
- data
- proxy service
- 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.)
- Pending
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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库的迁移方法、系统、服务器和存储介质,方法包括:响应数据迁移指令,获取目标地址;根据所述目标地址修改代理服务点的配置信息;控制所述代理服务点按照修改后的配置信息运行,将应用的业务数据写入所述目标地址对应的目标数据库;通过代理服务点,将应用与数据库的连接导向代理服务点,摆脱应用和数据库之的强关联,仅通过修改代理服务点的代理目标地址完成数据库的迁移,不需要中断应用的业务,最大程度的减少中断应用对业务造成的损失。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种数据库的迁移方法、系统、服务器和存储介质。
背景技术
现有数据库有变更时,往往需要业务系统停机来支持数据库的变更,特别是当数据库需要迁移时,后端服务需要停机来中断新数据的写入,同时将数据库内的数据迁移到新的数据库实例上,再修改后端服务的数据库连接配置,然后再启动后端服务,由此来实现数据库的迁移。但当数据库内有几十上百G的数据或者有几十个后端服务同时使用这个数据库时,数据库迁移的停机时间往往需要超过几个小时,且迁移产生的风险往往是不可控的。
发明内容
本发明实施例提供一种数据库的迁移方法、系统、服务器和存储介质,解决数据库迁移过程后,需要中断(重启)后端服务的问题。
一方面,本申请实施例提供一种数据库的迁移方法,所述方法包括:
响应数据迁移指令,获取目标地址;
根据所述目标地址修改代理服务点的配置信息;
控制所述代理服务点按照修改后的配置信息运行,将应用的业务数据写入所述目标地址对应的目标数据库。
在本申请一些实施例中,所述响应数据迁移指令,获取目标地址之前,所述方法包括:
获取数据库与应用之间的访问方式;
根据所述访问方式对代理服务点进行配置;
控制所述代理服务点通过所述访问方式连接应用。
在本申请一些实施例中,所述根据所述访问方式对代理服务点进行配置包括:
若所述访问方式是第一访问方式,则获取所述数据库的端口地址,以及修改后端口地址;
将所述修改后端口地址设为代理服务点的代理目标地址,并将所述端口地址设为所述代理服务点的代理端口地址;
控制所述代理服务点重启,完成所述代理服务点的配置。
在本申请一些实施例中,所述根据所述访问方式对代理服务点进行配置包括:
若所述访问方式是第二访问方式,则获取所述数据库的初始域名地址;
将所述初始域名地址设为代理服务点的代理目标地址;
控制所述代理服务点启动,完成所述代理服务点的配置。
发送所述代理服务点的代理域名地址至所述应用。
在本申请一些实施例中,所述控制所述代理服务点通过所述访问方式连接应用之后,所述方法包括:
接收所述应用发起的访问请求;
根据所述访问请求访问所述数据库,进行数据处理;
根据数据处理结果,向所述应用发送访问反馈。
在本申请一些实施例中,响应数据迁移指令,获取目标地址之前,所述方法包括:
响应数据同步指令,获取数据库的数据量;
若所述数据量大于预设数据量阈值,则发出建立数据库从节点请求,获取所述数据库从节点的节点目标地址,根据所述节点目标地址修改所述数据同步指令,将修改后数据同步指令发送至所述数据库;
若所述数据量小于或等于预设数据量阈值,则发送所述数据同步指令至所述数据库;
若所述数据库的数据同步完成,则发出数据迁移请求。
在本申请一些实施例中,所述根据所述目标地址修改代理服务点的配置信息包括:
将所述目标地址设为代理服务点的新代理目标地址;
所述控制所述代理服务点按照修改后的配置信息运行,将应用的业务数据写入所述目标地址对应的目标数据库包括:
访问所述新代理目标地址,与所述目标地址对应的目标数据库连接;
响应应用的访问请求,将所述应用发送的业务数据写入目标数据库。
另一方面,本申请实施例提供一种数据库的迁移系统,所述数据库的迁移系统包括:
代理服务点、数据库、目标数据库和应用;
所述代理服务点分别与所述数据库和所述应用连接;
所述代理服务点,用于响应数据迁移指令,获取目标地址;
所述代理服务点,用于根据所述目标地址修改代理服务点的配置信息;
所述代理服务点,用于控制所述代理服务点按照修改后的配置信息运行,断开与所述数据库的连接,与所述目标数据库建立连接,将所述应用的业务数据写入所述目标地址对应的所述目标数据库。
另一方面,本申请实施例提供一种服务器,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行所述的数据库的迁移方法中的操作。
另一方面,本申请实施例提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执所述的数据库的迁移方法中的步骤。
本发明响应数据迁移指令,获取目标地址;根据所述目标地址修改代理服务点的配置信息;控制所述代理服务点按照修改后的配置信息运行,将应用的业务数据写入所述目标地址对应的目标数据库;通过代理服务点,将应用与数据库的连接导向代理服务点,摆脱应用和数据库之的强关联,仅通过修改代理服务点的代理目标地址完成数据库的迁移,不需要中断应用的业务,最大程度的减少中断应用对业务造成的损失。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的基于LAMP/LNMP的应用架构的一个实施例结构示意图;
图2是本申请实施例提供的基于LAMP/LNMP的应用架构的另一个实施例结构示意图;
图3是本申请实施例提供的数据库的迁移方法的一个实施例流程示意图;
图4是本申请实施例提供的数据库的迁移方法中插入代理服务点的一个实施例流程示意图;
图5是本申请实施例提供的数据库的迁移方法中配置代理服务点的一个实施例流程示意图;
图6是本申请实施例提供的数据库的迁移方法中配置代理服务点的另一个实施例流程示意图;
图7是本申请实施例提供的数据库的迁移方法中基于代理服务点的数据交互的一个流程示意图;
图8是本申请实施例提供的数据库的迁移方法中数据同步的一个实施例流程示意图;
图9是本申请实施例提供的基于LAMP/LNMP的应用架构的另一个实施例结构示意图;
图10本申请实施例提供的数据库的迁移方法的一个应用场景示意图;
图11是本申请实施例提供的数据库的迁移方法完成数据库的迁移后的一个示意图;
图12是本申请实施例提供的数据库的迁移系统的一个实施例结构示意图;
图13是本申请实施例提供的代理服务点的一个实施例结构示意图;
图14是本申请实施例提供的服务器的一个实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据库的迁移方法、装置、服务器和存储介质。根据本申请实施例提供的一种数据库的迁移方法的实施例,需要说明的是,在附图的流程示意图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且虽然在流程示意图示出了逻辑顺序,但是在某些情况下,可以以不同于此处的执行顺序执行所示出或描述的步骤。
在本申请一些实施例中,数据库的迁移方法指的是在基于LAMP/LNMP的应用架构上进行数据迁移,其中,基于LAMP/LNMP的应用架构指的是在Linux服务器上部署Apache/Nginx+PHP(Java/Python)+MySQL,其中通过Apache/Nginx中间件作为前置的流量入口和前端服务的入口,PHP/Java等动态语言实现的服务作为后端服务,数据持久化在MySQL中。基于LAMP/LNMP的网站/应用架构的前后端的服务拥有很好的扩展性,当业务增长时可以横向增加节点来实现扩容。示例性的,如图1所示,图1是本申请实施例提供的基于LAMP/LNMP的应用架构的一个实施例结构示意图,所示的基于LAMP/LNMP的应用架构包括后端应用101、主数据库102和从数据库103,其中,后端应用101分别连接主数据库102和从数据库103,用于访问主数据库102进行数据写入,以及访问从数据库103进行数据读取,主数据库102连接从数据,用于基于后端应用101的访问,将后端应用101写入的数据进行存储,并将写入的数据同步到从数据库103中,从数据库103接收主数据库102发送的数据进行数据同步,并响应后端应用101的访问,返回访问反馈以使后端应用101进行数据读取。其中,主数据库102通过Mixed的BinLog格式连接从数据。在本申请一些实施例中,如图1所示的基于LAMP/LNMP的应用架构在进行数据迁移时,为了不中断后端应用101的数据写入,在后端应用101与主数据库102和从数据库103之间分别插入代理服务,如图2所示,图2是本申请实施例提供的基于LAMP/LNMP的应用架构的另一个实施例结构示意图,所示的基于LAMP/LNMP的应用架构在图1所示的基于LAMP/LNMP的应用架构基础上还包括第一代理服务201和第二代理服务。其中,第一代理服务201第一端连接后端应用101,第二端连接主数据库102,第三端连接从数据库103,用于接收后端应用101的访问,将后端应用101发送的待写入的数据写入到主数据库102,以及同步到从数据库103;第二代理服务一端连接后端应用101,另一端连接从数据库103,用于响应后端应用101的访问请求,根据访问请求访问从数据库103进行数据处理,将数据处理结果作为访问反馈发送至后端应用101。在本申请一些实施例中,在进行数据迁移时,仅通过修改第一代理服务201和第二代理服务202的目标地址,使第一代理服务201和第二代理服务202分别连接到新的数据库,实现基于LAMP/LNMP的应用架构的数据迁移。
本申请实施例在后端应用101与主数据库102和从数据库103之间分别插入代理服务,摆脱后端应用101和数据库之的强关联,仅通过修改代理服务的目标地址以实现基于LAMP/LNMP的应用架构的数据迁移,避免中断后端应用101的数据写入,最大程度的减少业务停机对业务造成的损失。
在本申请一些实施例中,在基于LAMP/LNMP的应用架构进行数据迁移的方法如图3所示,图3是本申请实施例提供的数据库的迁移方法的一个实施例流程示意图,所示的数据库的迁移方法应用于代理服务点,其中代理服务点指的是图2中的第一代理服务201,所示的数据库的迁移方法包括步骤301~303:
步骤301,响应数据迁移指令,获取目标地址。
目标地址指的是数据迁移中目标数据库的地址,其中目标数据库指的数据迁移中待迁入的新的数据库。
在本申请一些实施例中,数据迁移指令可以是数据库发送的;也可以是后端服务器发送的,其中,后端服务器可以是与代理服务点连接的第三方服务器,用于监控基于LAMP/LNMP的应用架构的运行状态;还可以是代理服务点自己生成,例如代理服务点通过代理服务点中的指令模块生成数据迁移指令。响应数据迁移指令可以理解为:响应数据库发送的数据迁移指令,获取数据迁移指令中的目标地址,响应后端服务器发送的数据迁移指令,获取数据迁移指令中的目标地址,响应代理服务点中指令模块发出的数据迁移指令,获取数据迁移指令中的目标地址。
在本申请一些实施例中,获取目标地址可以是访问数据库获取目标地址,例如,响应数据迁移指令,访问数据库,查询数据库中数据的传输方向得到目标地址;也可以获取数据迁移指令中的目标地址,例如,响应数据迁移指令,解析数据迁移指令,读取数据迁移指令中地址字段,将该地址字段作为目标地址;还可以获取后端服务器发送的目标地址,例如响应数据迁移指令,访问后端服务器,发送地址询问请求,获取后端服务器基于地址询问请求反馈的目标地址。
在本申请一些实施例中,获取目标地址还可以是获取基于代理服务点输入的目标地址,例如,响应数据迁移指令,输出地址配置页面,获取基于地址配置页面输入的地址信息作为目标地址。
步骤302,根据目标地址修改代理服务点的配置信息。
配置信息指的是代理服务点的代理目标地址。
在本申请一些实施例中,步骤302包括:根据目标地址获取目标数据库的域名/主机名,将目标数据库的域名/主机名解析到代理服务点对配置信息进行修改,将代理目标地址更新为目标地址,以使代理服务点通过新代理目标地址访问目标数据库,与目标数据库建立连接。其中,初始域名/主机名指的是原数据库的域名/主机名。
在本申请一些实施例中,步骤302还可以包括根据目标地址获取目标数据库的端口地址,将代理目标地址中的初始端口地址修改为端口地址,将代理目标地址更新为目标地址,以使代理服务点通过新代理目标地址访问目标数据库,与目标数据库建立连接。其中,初始端口地址指的是原数据库的对外提供服务的端口地址。
步骤303,控制代理服务点按照修改后的配置信息运行,将应用的业务数据写入目标地址对应的目标数据库。
应用指的是图1和图2中的后端应用101。
在本申请一些实施例中,步骤303包括:控制代理服务点重启,控制代理服务点按照新代理目标地址运行,访问新代理目标地址,与目标地址对应的目标数据库连接;响应应用的访问请求,将应用发送的业务数据写入目标数据库。
本申请实施例通过代理服务点,摆脱应用和数据库之的强关联,仅通过修改代理服务点的代理目标地址完成数据库的迁移,不需要中断应用数据写入,最大程度的减少中断应用对业务造成的损失。
在本申请一些实施例中,为了在数据库的迁移中不中断应用数据写入,在步骤301之前,在应用与数据库之间分别插入代理服务点,摆脱应用和数据库之的强关联,具体地如图4所示,图4是本申请实施例提供的数据库的迁移方法中插入代理服务点的一个实施例流程示意图,所示的插入代理服务点的方法包括步骤401~403:
步骤401,获取数据库与应用之间的访问方式。
访问方式包括固定IP访问和网址访问。其中,固定IP访问指的是应用与数据库之间通过IP地址连接,应用通过数据库的IP地址访问数据库进行数据写入和数据读取;应用使用数据库的域名/主机名连接数据库,通过解析数据库的域名/主机名访问数据库,进行数据写入和数据读取。
在本申请一些实施例中,获取数据库与应用之间的访问方式可以是访问后端服务器,获取数据库与应用之间的访问方式,也可以是输出配置页面,获取基于配置页面输入的配置信息,从配置信息中获取数据库与应用之间的访问方式。其中配置信息可以包括但不限于运维人员基于配置页面输入的目标数据库的目标地址、数据库与应用之间的访问方式以及数据库的地址。
步骤402,根据访问方式和端口地址对代理服务点进行配置。
在本申请一些实施例中,当访问方式是固定IP访问时,可以通过获取数据库的端口地址,根据端口地址对代理服务点进行配置,具体地,如图5所示,图5是本申请实施例提供的数据库的迁移方法中配置代理服务点的一个实施例流程示意图,所示的配置代理服务点的包括步骤501~503:
步骤501,若访问方式是第一访问方式,则获取数据库的端口地址,以及修改后端口地址。
在本申请一些实施例中,第一访问方式指的是固定IP访问。
在本申请一些实施例中,若访问方式是第一访问方式,为了使代理服务点与数据库进行连接,并与应用连接,需要将代理服务点设置在与数据库同一服务器中,由于应用与数据库之间通过数据库对外提供服务的端口地址进行连接,需要将代理服务点的暴露端口设置为外提供服务的端口地址,以使代理服务点与应用相连接,而代理服务点和数据库部署在同一服务器中,为避免端口地址占用造成地址冲突,需要修改服务器中数据库的端口地址。例如,在数据库对外提供服务的端口地址为3306时,需要将数据库端口地址修改为3307。
在本申请一些实施例中,获取数据库的端口地址,以及修改后端口地址的方法与步骤401中获取访问方式的方法相似,此处不再赘述。
步骤502,将修改后端口地址设为代理服务点的代理目标地址,并将端口地址设为代理服务点的代理端口地址。
代理端口地址指的是代理服务点暴露的端口,用于与节点连接进行数据交互,其中节点包括但不限于服务器、应用、终端,其中终端包括移动终端、虚拟终端和固定终端。在本申请一些实施例中,代理端口地址用于与图1和图2中的后端应用101连接,进行数据交互。
在本申请一些实施例中,将修改后端口地址设为代理服务点的代理目标地址,代理服务点通过代理目标地址与部署在同一服务器中的数据库连接,并将数据库对外提供服务的端口地址设为代理服务点的代理端口地址,例如,当数据库对外提供服务的端口地址为3306、修改后端口地址为3307时,将为代理服务点的代理目标地址设为3307,代理服务点通过3307与部署在同一服务器中的数据库连接,将修改后端口地址为3307设置为代理服务点的代理端口地址。
步骤503,控制代理服务点重启,完成代理服务点的配置。
在本申请一些实施例中,控制代理服务点重启,代理服务点根据代理目标地址与数据库连接,完成代理服务点的配置。
本申请实施例在数据库与应用之间通过固定IP访问方式进行数据交互时,将代理服务点与数据库部署在同一服务器中,通过修改数据库在服务器中端口地址,并将数据库对外提供服务的端口地址作为代理服务点暴露的端口,将代理服务点接入数据库,便于代理服务点的管理。
在本申请一些实施例中,当访问方式是网址访问时,可以将数据库的域名/主机名解析到代理服务点上,对代理服务点进行配置,具体地,如图6所示,图6是本申请实施例提供的数据库的迁移方法中配置代理服务点的另一个实施例流程示意图,所示的配置代理服务点的包括步骤601~604:
步骤601,若访问方式是第二访问方式,则获取数据库的初始域名地址。
在本申请一些实施例中,第二访问方式指的是网址访问。
获取数据库的初始域名地址可以是数据库所在服务器的域名地址,例如云服务器的域名地址,也可以是数据库所在服务器的主机名,其中数据库可以是部署在本地服务器,也可以是部署在云服务器。
在本申请一些实施例中,获取数据库的初始域名地址的方法可以是接收后台服务器发送的数据库的初始域名地址,也可以是输出配置页面,获取基于配置页面输入的域名地址作为数据库的初始域名地址。
在本申请一些实施例中,若访问方式是第二访问方式,可以将代理服务点部署在第三方服务器中,其中服务器可以是本地服务器,也可以是云服务器。
步骤602,将初始域名地址设为代理服务点的代理目标地址。
步骤603,控制代理服务点启动,完成代理服务点的配置。
在本申请一些实施例中,控制代理服务点启动,代理服务点解析代理目标地址,访问数据库与数据库连接,完成代理服务点的配置。
步骤604,发送代理服务点的代理域名地址至应用。
在本申请一些实施例中,发送代理服务点的代理域名地址至应用,可以是访问数据库,获取与数据库连接的应用的网络地址,解析网络地址,与应用连接,发送代理服务点的代理域名地址至应用。发送代理服务点的代理域名地址至应用还可以是将代理服务点的代理域名地址以及访问请求进行封装,生成访问指令,访问数据库,将访问指令发送至数据库,以使数据库解析访问指令,将访问指令中的代理服务点的代理域名地址以及访问请求发送至应用。
本申请实施例在数据库与应用之间通过网址访问方式进行数据交互时,将数据库的域名地址解析到代理服务点上,将代理服务点接入数据库,简化代理服务点与数据库的连接方式,提高数据库的迁移方法的效率。
步骤403,控制代理服务点通过访问方式连接应用。
在本申请一些实施例中,控制代理服务点通过访问方式连接应用存在多种方式,示例性的包括:
(1)当访问方式是固定IP访问方式时,代理服务点重启,通过代理服务点暴露的代理端口地址接收应用的连接请求;应答连接请求通过代理端口地址发送应答信息至应用;若在预设时间段内再次通过代理端口地址接收到应用基于应答信息反馈的反馈信息,则与应用建立连接;若未在预设时间段内再次通过代理端口地址接收到应用基于应答信息反馈的反馈信息,则等待应用发送的连接请求。
(2)当访问方式是网址访问方式时,代理服务点重启,通过通信接口接收到应用发送的连接请求,与应用建立连接。
需要说明的是上述代理服务点连接应用的方式仅为示例性说明,本申请实施例对代理服务点连接应用的方式不作限定。
在本申请一些实施例中,为了保证应用架构的数据安全性,在代理服务点通过访问方式连接应用是,对应用进行安全核验,当安全核验通过时,与应用建立连接,当安全核验不通过时,拒绝与应用建立连接。具体地包括:接收应用的连接请求,解析连接请求,获取连接请求中的核验码,访问数据库获取预设核验码,将核验码与预设核验码进行比较,若核验码与预设核验码一致,则判定安全核验通过,若核验码与预设核验码不一致,则判定安全核验不通过。
在本申请一些实施例中,当访问方式是固定IP访问方式时,配置代理服务点时,由于数据库重启,造成数据库与应用之间的连接断开,应用检测到与数据库之间的连接断开时,应用根据应用中配置地址进行自动寻址,与配置地址对应的目标端口地址进行连接,从而应用与该目标端口地址对应的代理服务点建立连接。其中配置地址指的是应用中设置的与数据库连接的地址。例如,当数据库对外提供服务的端口地址为3306、修改后端口地址为3307时,代理服务点的暴露的代理端口地址为3307,控制代理服务点和数据库重启,由于数据库修改后的端口地址为3307,而应用中配置地址的目标端口地址仍为3306,因此数据库与应用之间的连接断开,应用根据应用中配置地址进行自动寻址,与配置地址对应的目标端口地址3306连接,与该目标端口地址3306对应的代理服务点建立连接。
在本申请一些实施例中,当访问方式是网址访问方式时,应用接收到代理服务点的访问请求以及代理域名地址时,根据代理域名地址修改配置地址,解析修改后的配置地址,与代理服务点建立连接。
本申请实施例根据数据库与应用之间的访问方式,配置代理服务点的代理目标地址,在应用与数据库之间分别插入代理服务点,摆脱应用和数据库之的强关联;并根据不同的访问方式提供不同的配置方式,提高数据库的迁移方法的适用性和灵活性。
在本申请一些实施例中,如图2所示,在应用与数据库之间分别插入代理服务点之后,应用和数据库通过代理服务点进行数据交互,具体地如图7所示,图7是本申请实施例提供的数据库的迁移方法中基于代理服务点的数据交互的一个流程示意图,所示的基于代理服务点的数据交互的方法包括步骤701~703:
步骤701,接收应用发起的访问请求。
在本申请一些实施例中,访问请求包括数据写入请求和数据读取请求。
步骤702,根据访问请求访问数据库,进行数据处理。
数据处理包括数据读取和数据写入。
在本申请一些实施例中,数据库包括主数据库102和从数据库103。
在本申请一些实施例中,当访问请求是数据写入请求时,步骤702可以是根据应用发起的数据写入请求,接收应用发送待写入的业务数据,访问主数据库102,将待写入的业务数据写入主数据库102,并访问从数据库103,将待写入的业务数据同步到从数据库103中。
在本申请一些实施例中,当访问请求是数据读取请求时,步骤702可以是根据应用发起的数据读取请求,解析数据读取请求获得目标数据标识,访问从数据库103,根据目标数据标识查询从数据库103,读取目标数据标识对应的目标读取数据。
步骤703,根据数据处理结果,向应用发送访问反馈。
在本申请一些实施例中,访问反馈包括写入完成和数据读取结果。
在本申请一些实施例中,当访问请求是数据写入请求时,步骤703可以是,检测数据写入是否完成,若数据写入完成,则发送写入完成信息至应用,若数据写入未完成,则继续将接收到的业务数据写入主数据库102和从数据库103。
在本申请一些实施例中,当访问请求是数据读取请求时,步骤703可以是将读取到的目标读取数据发送至应用。
在本申请一些实施例中,当访问请求是数据读取请求时,步骤703还可以包括,根据目标数据标识查询从数据库103,判断从数据中是否存在目标数据标识对应的目标读取数据,若存在目标数据标识对应的目标读取数据,则读取目标读取数据,将读取到的目标读取数据发送至应用;若不存在目标数据标识对应的目标读取数据,则发送数据不存在的提示信息至应用。
本申请实施例在应用与数据库之间分别插入代理服务点之后,应用和数据库通过代理服务点进行数据交互,摆脱后端应用101和数据库之的强关联,便于后续数据库的迁移中不中断应用的数据写入。
在本申请一些实施例中,在应用与数据库之间分别插入代理服务点之后,还可以发送数据同步指令至数据库,以使数据库根据数据同步指令进行数据同步。
在本申请一些实施例中,在应用与数据库之间分别插入代理服务点之后,代理服务点响应数据同步指令,控制数据库进行数据同步,并在数据同步完成时发出数据库迁移请求,从而进行数据库的迁移,具体地,如图8所示,图8是本申请实施例提供的数据库的迁移方法中数据同步的一个实施例流程示意图,所示的数据同步方法包括步骤801~804:
步骤801,响应数据同步指令,获取数据库的数据量。
在本申请一些实施例中,数据同步指令用于指示数据库将数据中的业务数据同步到新的数据库中。
在本申请一些实施例中,数据同步指令可以是后台服务器发送的。具体地,在应用与数据库之间插入代理服务点之后,后台服务器检测应用与代理服务点之间的通信是否正常,以及检测数据库与代理服务点之间的通信是否正常;若应用与代理服务点之间的通信正常,并且数据库与代理服务点之间的通信正常,则发送数据同步指令至代理服务点;若应用与代理服务点之间的通信异常,和/或数据库与代理服务点之间的通信异常,则等待预设时长,再次检测应用与代理服务点之间的通信是否恢复,以及数据库与代理服务点之间的通信是否恢复;若应用与代理服务点之间的通信恢复,以及数据库与代理服务点之间的通信恢复,则发送数据同步指令至代理服务点;若应用与代理服务点之间的通信未恢复,和/或数据库与代理服务点之间的通信为恢复,则发送重新配置指令至代理服务点,代理服务点响应重新配置指令重新与数据库和应用建立连接。
在本申请一些实施例中,数据同步指令也可以是代理服务点生成的,具体地,在应用与数据库之间插入代理服务点之后,检测与应用之间的通信是否正常,以及与数据库之间的通信是否正常;若与应用之间的通信正常,以及与数据库之间的通信正常,则控制指令模块生成数据同步指令;若与应用之间的通信异常,和/或与数据库之间的通信异常,则控制代理服务点与数据库和应用重新建立连接。
在本申请一些实施例中,获取数据库的数据量可以是访问数据库,获取数据库中的数据字节数作为数据量,将数据字节数与预设字节数阈值进行比较,如果数据字节数大于预设字节数阈值,则判定数据量大于预设数据量阈值;若数据字节数小于或等于预设字节数阈值,则判定数据量小于或等于预设数据量阈值。
步骤802,若数据量大于预设数据量阈值,则发出建立数据库从节点请求,获取数据库从节点的节点目标地址,根据节点目标地址修改数据同步指令,将修改后数据同步指令发送至数据库。
在本申请一些实施例中,若数据量大于预设数据量阈值,说明应用架构为大型架构,数据库中需要同步的数据量比较大,为了避免数据同步期间对数据库造成额外的负担,增加一个数据库从节点作为中间节点,如图9所示,图9是本申请实施例提供的基于LAMP/LNMP的应用架构的另一个实施例结构示意图,所示的基于LAMP/LNMP的应用架构中在图2所的基于LAMP/LNMP的应用架构基础上增加一个数据库从节点901。
在本申请一些实施例中,若数据量大于预设数据量阈值,则发出建立数据库从节点请求,以使应用架构增加一个数据库从节点,在数据库从节点部署完成后获取数据库从节点的节点目标地址,将数据同步指令中的数据同步地址修改为节点目标地址,对数据同步指令进行修改,将修改后数据同步指令发送至数据库,以使数据库执行修改后数据同步指令,将数据库的业务数据传输至节点目标地址对应的数据库从节点。
步骤803,若数据量小于或等于预设数据量阈值,则发送数据同步指令至数据库。
在本申请一些实施例中,在发送数据同步指令或修改后数据同步指令至数据库,控制数据库进行数据同步时,启动数据迁移服务,通过数据迁移服务将数据库中的业务数据迁入目标地址对应的目标数据库,或将节点目标地址对应的数据库从节点中的业务数据迁入目标地址对应的目标数据库。其中,数据迁移服务包括DTS(数据传输服务)或DMS(Database Migration service)。
在本申请一些实施例中,在数据迁移完成时,数据库发送数据同步完成标识至代理服务点,代理服务点检测是否接收到数据同步完成标识,若接收到数据同步完成标识,则判定数据库的数据同步完成,若没有接收到数据同步完成标识,则继续等待,并接收应用发起的访问请求。
在本申请一些实施例中,代理服务点检测数据迁移服务的进度,当检测到数据迁移服务完成时,则判定数据库的数据同步完成。
步骤804,若数据库的数据同步完成,则发出数据库迁移请求。
在本申请一些实施例中,若数据库的数据同步完成,则发出数据迁移请求可以是,若数据库的数据同步完成则向后台服务器发出数据库迁移请求,以接收后台服务器基于数据库迁移请求发送的数据库迁移指令。
在本申请一些实施例中,若数据库的数据同步完成,则发出数据迁移请求还可以是,若数据库的数据同步完成则向代理服务点的指令模块发出数据库迁移请求,代理服务点的指令模块根据数据库迁移请求发出数据库迁移指令。
在本申请一些实施例中,还可以通过查询应用的数量确定是否发出建立数据库从节点请求,具体地包括步骤a1~a4:
步骤a1,响应数据同步指令,获取已连接的应用数量。
步骤a2,将应用数量与预设应用数量阈值比较。
步骤a3,若应用数量大于或等于预设应用数量阈值,则发出建立数据库从节点请求,获取数据库从节点的节点目标地址,根据节点目标地址修改数据同步指令,将修改后数据同步指令发送至数据库。
步骤a4,若应用数量小于预设应用数量阈值,则发送数据同步指令至数据库。
本申请实施例在应用与数据库之间分别插入代理服务点之后,代理服务点响应数据同步指令,控制数据库进行数据同步,并在数据同步前,检测应用架构的类型,并对不同的应用架构类型设计不同的数据同步方案,提高数据库的迁移方法中数据同步的多样性和灵活性,降低数据库的负担。
在本申请一些实施例中,为了更好说明本申请实施例提供的数据库的迁移方法,示例性的,以数据迁移服务时DTS为例,提供数据库的迁移方法的一个应用场景,如图10所示,图10本申请实施例提供的数据库的迁移方法的一个应用场景示意图,所示应用场景可以是跨广域网、跨云、从传统数据库迁移到公有云SAAS服务(RDS)。所示的应用场景中,代理服务点接入数据库与应用之间,通过代理服务点降低应用和数据库之的强关联,并增加与数据库连接的数据库从节点901,作为数据同步的数据源,将数据库中的业务数据传输到数据库从节点901,通过DTS服务将数据库从节点迁入目标数据库1001,在完成数据同步后,修改代理服务点的代理目标地址,使代理服务点与目标数据库1001连接,如图11所示,图11是本申请实施例提供的数据库的迁移方法完成数据库的迁移后的一个示意图,图11中,应用通过代理服务点与目标数据库1001连接。
本申请实施例在后端应用101与主数据库102和从数据库103之间分别插入代理服务,摆脱后端应用101和数据库之的强关联,仅通过修改代理服务的目标地址以实现基于LAMP/LNMP的应用架构的数据迁移,避免中断后端应用101的数据写入,最大程度的减少业务停机对业务造成的损失。
为了更好实施本申请实施例提供的数据库的迁移方法,在数据库的迁移方法的基础上,提供一种数据库的迁移系统,如图12所示,图12是本申请实施例提供的数据库的迁移系统的一个实施例结构示意图,所示的数据库的迁移系统包括:
代理服务点1202、数据库1203、目标数据库1001和应用1201;
代理服务点1202分别与数据库1203和应用1201连接;
代理服务点1202,用于响应数据迁移指令,获取数据迁移指令中的目标地址;
代理服务点1202,用于根据目标地址修改代理服务点1202的配置信息;
代理服务点1202,用于控制代理服务点1202按照修改后的配置信息运行,断开与数据库1203的连接,与目标数据库1001建立连接,将应用的业务数据写入目标地址对应的目标数据库。
在本申请一些实施例中,如图13所示,图13是本申请实施例提供的代理服务点的一个实施例结构示意图,所示的代理服务点1202包括:
获取模块1301,用于获取数据库与应用之间的访问方式;
配置模块1302,用于根据访问方式对代理服务点进行配置;
通信模块1303,用于控制代理服务点通过访问方式连接应用。
在本申请一些实施例中,配置模块1302包括:
端口获取单元,用于若访问方式是第一访问方式,则获取数据库的端口地址,以及修改后端口地址;
地址修改单元,用于将修改后端口地址设为代理服务点的代理目标地址,并将端口地址设为代理服务点的代理端口地址;
配置单元,用于控制代理服务点重启,完成代理服务点的配置。
在本申请一些实施例中,配置模块1302还包括:
地址获取单元,用于若访问方式是第二访问方式,则获取数据库的初始域名地址;
地址修改单元,用于将初始域名地址设为代理服务点的代理目标地址;
配置单元,用于控制代理服务点启动,完成代理服务点的配置;
发送单元,用于发送代理服务点的代理域名地址至应用。
在本申请一些实施例中,代理服务点1202还包括:
处理模块1304,用于接收应用发起的访问请求;根据访问请求访问数据库,进行数据处理;用于根据数据处理结果,向应用发送访问反馈。
在本申请一些实施例中,代理服务点1202还包括:
指令模块1305,用于响应数据同步指令,获取数据库的数据量;若数据量大于预设数据量阈值,则发出建立数据库从节点请求,获取数据库从节点的节点目标地址,根据节点目标地址修改数据同步指令,将修改后数据同步指令发送至数据库;若数据量小于或等于预设数据量阈值,则发送数据同步指令至数据库;若数据库的数据同步完成,则发出数据迁移请求。
在本申请一些实施例中,代理服务点1202的通信模块1303,还用于将目标地址设为代理服务点的新代理目标地址;访问新代理目标地址,与目标地址对应的目标数据库连接;响应应用的访问请求,将应用发送的业务数据写入目标数据库。
本申请实施例通过代理服务点,摆脱应用和数据库之的强关联,仅通过修改代理服务点的代理目标地址完成数据库的迁移,不需要中断应用数据写入,最大程度的减少中断应用对业务造成的损失。
本发明实施例还提供一种服务器,如图13所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器1301、一个或一个以上计算机可读存储介质的存储器1302、电源1303和输入单元1304等部件。本领域技术人员可以理解,图13中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器1301是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器1302内的软件程序和/或模块,以及调用存储在存储器1302内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器1301可包括一个或多个处理核心;优选的,处理器1301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1301中。
存储器1302可用于存储软件程序以及模块,处理器1301通过运行存储在存储器1302的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1302可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器1302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1302还可以包括存储器控制器,以提供处理器1301对存储器1302的访问。
服务器还包括给各个部件供电的电源1303,优选的,电源1303可以通过电源管理系统与处理器1301逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1303还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元1304,该输入单元1304可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器1301会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1302中,并由处理器1301来运行存储在存储器1302中的应用程序,从而实现各种功能,如下:
响应数据迁移指令,获取数据迁移指令中的目标地址;
根据目标地址修改代理服务点的配置信息;
控制代理服务点按照修改后的配置信息运行,将应用的业务数据写入目标地址对应的目标数据库。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种数据库的迁移方法中的步骤。例如,该指令可以执行如下步骤:
响应数据迁移指令,获取数据迁移指令中的目标地址;
根据目标地址修改代理服务点的配置信息;
控制代理服务点按照修改后的配置信息运行,将应用的业务数据写入目标地址对应的目标数据库。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种数据库的迁移方法中的步骤,因此,可以实现本发明实施例所提供的任一种数据库的迁移方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种数据库的迁移方法、系统、服务器和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据库的迁移方法,其特征在于,所述方法包括:
响应数据迁移指令,获取目标地址;
根据所述目标地址修改代理服务点的配置信息;
控制所述代理服务点按照修改后的配置信息运行,将应用的业务数据写入所述目标地址对应的目标数据库。
2.如权利要求1所述的数据库的迁移方法,其特征在于,所述响应数据迁移指令,获取目标地址之前,所述方法包括:
获取数据库与应用之间的访问方式;
根据所述访问方式对代理服务点进行配置;
控制所述代理服务点通过所述访问方式连接应用。
3.如权利要求2所述的数据库的迁移方法,其特征在于,所述根据所述访问方式对代理服务点进行配置包括:
若所述访问方式是第一访问方式,则获取所述数据库的端口地址,以及修改后端口地址;
将所述修改后端口地址设为代理服务点的代理目标地址,并将所述端口地址设为所述代理服务点的代理端口地址;
控制所述代理服务点重启,完成所述代理服务点的配置。
4.如权利要求2所述的数据库的迁移方法,其特征在于,所述根据所述访问方式对代理服务点进行配置包括:
若所述访问方式是第二访问方式,则获取所述数据库的初始域名地址;
将所述初始域名地址设为代理服务点的代理目标地址;
控制所述代理服务点启动,完成所述代理服务点的配置;
发送所述代理服务点的代理域名地址至所述应用。
5.如权利要求2所述的数据库的迁移方法,其特征在于,所述控制所述代理服务点通过所述访问方式连接应用之后,所述方法包括:
接收所述应用发起的访问请求;
根据所述访问请求访问所述数据库,进行数据处理;
根据数据处理结果,向所述应用发送访问反馈。
6.如权利要求1所述的数据库的迁移方法,其特征在于,所述响应数据迁移指令,获取目标地址之前,所述方法包括:
响应数据同步指令,获取数据库的数据量;
若所述数据量大于预设数据量阈值,则发出建立数据库从节点请求,获取所述数据库从节点的节点目标地址,根据所述节点目标地址修改所述数据同步指令,将修改后数据同步指令发送至所述数据库;
若所述数据量小于或等于预设数据量阈值,则发送所述数据同步指令至所述数据库;
若所述数据库的数据同步完成,则发出数据迁移请求。
7.如权利要求1至6任一项所述的数据库的迁移方法,其特征在于,所述根据所述目标地址修改代理服务点的配置信息包括:
将所述目标地址设为代理服务点的新代理目标地址;
所述控制所述代理服务点按照修改后的配置信息运行,将应用的业务数据写入所述目标地址对应的目标数据库包括:
访问所述新代理目标地址,与所述目标地址对应的目标数据库连接;
响应应用的访问请求,将所述应用发送的业务数据写入目标数据库。
8.一种数据库的迁移系统,其特征在于,所述数据库的迁移系统包括:
代理服务点、数据库、目标数据库和应用;
所述代理服务点分别与所述数据库和所述应用连接;
所述代理服务点,用于响应数据迁移指令,获取目标地址;
所述代理服务点,用于根据所述目标地址修改代理服务点的配置信息;
所述代理服务点,用于运行所述配置信息,断开与所述数据库的连接,与所述目标数据库建立连接,将所述应用的业务数据写入所述目标地址对应的所述目标数据库。
9.一种服务器,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至7任一项所述的数据库的迁移方法中的操作。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的数据库的迁移方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111426243.8A CN114116671A (zh) | 2021-11-25 | 2021-11-25 | 数据库的迁移方法、系统、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111426243.8A CN114116671A (zh) | 2021-11-25 | 2021-11-25 | 数据库的迁移方法、系统、服务器和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116671A true CN114116671A (zh) | 2022-03-01 |
Family
ID=80370754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111426243.8A Pending CN114116671A (zh) | 2021-11-25 | 2021-11-25 | 数据库的迁移方法、系统、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116671A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598711A (zh) * | 2022-03-29 | 2022-06-07 | 百果园技术(新加坡)有限公司 | 一种数据迁移方法、装置、设备及介质 |
-
2021
- 2021-11-25 CN CN202111426243.8A patent/CN114116671A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598711A (zh) * | 2022-03-29 | 2022-06-07 | 百果园技术(新加坡)有限公司 | 一种数据迁移方法、装置、设备及介质 |
CN114598711B (zh) * | 2022-03-29 | 2024-04-16 | 百果园技术(新加坡)有限公司 | 一种数据迁移方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4095678A1 (en) | Method and apparatus of deploying a cluster, device and storage medium | |
WO2018192478A1 (zh) | 云管理平台、虚拟机管理方法及其系统 | |
CN110569250B (zh) | 一种物联网网元的解析库的管理方法及装置 | |
CN112363845A (zh) | 系统集成中台的数据同步方法及集成中台系统 | |
CN110990081A (zh) | 微服务注册、发现方法及装置、存储介质及电子设备 | |
CN112769652A (zh) | 一种节点服务监控方法、装置、设备及介质 | |
CN116095023A (zh) | 数据处理单元的快速外设组件互联总线资源的自适应方法 | |
CN114116671A (zh) | 数据库的迁移方法、系统、服务器和存储介质 | |
WO2020113478A1 (zh) | 地址信息处理方法、装置、电子设备及存储介质 | |
CN112214413A (zh) | 一种应用程序的测试方法、装置、设备及存储介质 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN114764379A (zh) | 应用软件的访问切换方法、设备和计算机可读存储介质 | |
CN111209125B (zh) | 一种多进程的命令行实现方法 | |
CN115993979A (zh) | 配置转换方法、平滑升级方法、装置、设备及存储介质 | |
CN114996352A (zh) | 数据库管理系统及方法 | |
CN111669423B (zh) | 基于用户态协议栈的网络隔离空间的批量处理方法及系统 | |
CN109639704B (zh) | 一种主从式服务器系统应用方法、系统、服务器及存储介质 | |
US10795848B2 (en) | Dual way communication method, system, and master device thereof | |
CN112671561B (zh) | 一种云主机的网卡配置的方法和设备 | |
CN112765056B (zh) | 一种预留存储集群lun的方法、系统、设备及介质 | |
CN113254168B (zh) | 区块链系统的运行方法、装置、设备和存储介质 | |
CN117527813A (zh) | 负载均衡服务器部署方法、装置、系统、设备及存储介质 | |
CN116225616A (zh) | 一种虚拟机控制方法、装置、介质 | |
CN117251285A (zh) | 配置信息的动态加载方法、装置、设备及存储介质 | |
CN117573280A (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 |