CN111078666B - 基于跨中心多数据库的自动化卸数供数的方法 - Google Patents
基于跨中心多数据库的自动化卸数供数的方法 Download PDFInfo
- Publication number
- CN111078666B CN111078666B CN201911269571.4A CN201911269571A CN111078666B CN 111078666 B CN111078666 B CN 111078666B CN 201911269571 A CN201911269571 A CN 201911269571A CN 111078666 B CN111078666 B CN 111078666B
- Authority
- CN
- China
- Prior art keywords
- database
- task
- supply
- data
- center
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种基于跨中心多数据库的自动化卸数供数的方法,包括:在每个应用系统的跑批服务器上设立数据库参数表、供数任务参数表、供数任务日志表;对跑批服务器定义服务器系统级的信号量、共享内存及最大并发数;为每个数据库定义数据库级的信号量、共享内存及最大并发数;读取数据库参数表,获取服务器需要执行的供数数据库列表,逐个为每个数据库创建一个新进程,来独立处理每个数据库的供数任务和进程资源的控制;创建一个子进程,时刻查询公司级中心参数表。借此,本发明的基于跨中心多数据库的自动化卸数供数的方法,灵活省事,减轻了人力开发成本,避免了过度集中卸数供数,且具有灾备功能。
Description
技术领域
本发明是关于数据库技术领域,特别是关于一种基于跨中心多数据库的自动化卸数供数的方法。
背景技术
随着信息安全发展需要,大型企业往往将业务拆分到各个细分业务下的事业部门,每个事业部门有他们独立的应用系统和数据库群,事业部门系统之间不能够直接访问对方数据库。他们彼此间存在数据交叉和依赖,比如A部门需要B部门的基础数据,B部门也可能需要A部门的一些基础数据。
同一个应用系统的数据,会同时存备在不同的数据中心,也可能分别存备在不同的数据中心。为了起灾备作用,当某一个数据中心出现故障,要能够迅速启用另一个应用数据中心来代替工作。每个数据中心下又会有许多数据库系统,每个应用系统会负载均匀地同时在多个服务器运作。
对于日终批量数据需求,给对方供数时,每个供数任务的执行时间会存在差异化,需要定时定点开始提供。这就需要每天定时定点,在指定服务器上,卸载各种供数需求的数据文件,推送到对方指定服务器目录上。对于大量的供数需求,要每个供数需求都开发一个程序运作,不但耗费人力资源,运维难度增加,还不易控制服务器资源使用,难免会造成某个时间节点供数任务拥挤,导致服务器资源堵塞,影响系统运作的出现。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种基于跨中心多数据库的自动化卸数供数的方法,其灵活省事,减轻了人力开发成本,避免了过度集中卸数供数,且具有灾备功能。
为实现上述目的,本发明提供了一种基于跨中心多数据库的自动化卸数供数的方法,包括:在每个应用系统的跑批服务器上设立数据库参数表、供数任务参数表、供数任务日志表;对跑批服务器定义服务器系统级的信号量、共享内存及最大并发数;为每个数据库定义数据库级的信号量、共享内存及最大并发数;读取数据库参数表,获取服务器需要执行的供数数据库列表,逐个为每个数据库创建一个新进程,独立处理每个数据库的供数任务和进程资源的控制;创建一个子进程,时刻查询公司级中心参数表;以及对每个应用系统所部署在的数据中心编排一个循环体,当其中一个数据中心宕机后,第一顺位的可执行数据中心所对应的应用服务系统代替宕机数据中心宕机期间的供数任务。
在本发明的一实施方式中,基于跨中心多数据库的自动化卸数供数的方法还包括:在每个数据库级子进程内,每隔一预设时间先判断是否有数据中心宕机,读取供数任务参数表,取得执行时间在本次轮询时间之前仍未执行供数的任务参数;以及通过PV操作,判断即时并发数及最大允许并发数,计算即时并发数,并获得供数任务执行权限,进而交给脚本利用系统已有的工具去执行卸数、压缩及推送操作;其中,对于需要从多个数据库卸载数据合并到一个数据文件的供述需求,拆分出多个单笔供数任务,以其中一个供数任务为主线,在前置任务串上参数记录这需要合并过来的供数任务号,把其它前置供数任务合并到目标数据文件后,再将主线任务的卸载数据合并到目标数据文件上,以此为压缩加工、推送数据等操作。
在本发明的一实施方式中,数据库参数表用以存放每个数据库供数控制的参数信息。
在本发明的一实施方式中,数据库参数表包括数据库标识、参数名、参数值及参数说明。
在本发明的一实施方式中,供数任务参数表用以存放每笔供数任务的参数信息。
在本发明的一实施方式中,供数任务参数表包括供数任务号、供数SQL语句、数据中心标识、数据表类型、数据库标识、前置任务串、合并标志、合并文件名字、卸载文件名字、启用标识、压缩标识、发送标识需求方服务器节点、需求方数据目录及开始执行时间等相关参数信息。
在本发明的一实施方式中,供数任务日志表用以存放每天每笔供数任务的执行痕迹。
在本发明的一实施方式中,为每个所述数据库创建一个新进程包括:获取当前服务器所在数据中心的标识;创建系统级信号量;创建系统级共享内存,并设置系统级最大并发数;从公共库下的数据库参数表中读取执行主机为当前服务器主机、可执行标识为可执行的数据库列表;以及为每个供数数据库创建一个对应的子进程,来独立处理各自供数数据库的供数任务。
在本发明的一实施方式中,对每个应用系统所部署在的数据中心编排一个循环体包括:给各数据中心编排一个备用优先次序,开辟一块共享内存小时间间隔内不断轮询中心级参数表,获取各数据中心运行状况和状况变更日期时间;以及当其中一个数据中心宕机,处于宕机数据中心优先次序中的第一顺位可用数据中心,启动代替宕机数据中心宕机期间的供数任务。
与现有技术相比,根据本发明的基于跨中心多数据库的自动化卸数供数的方法具有如下有益效果:
1、卸数需求后台增删改管理,对方每来一个供数需求/终止需求,就可以在后台增加/停用。灵活省事,减轻人力开发成本;
2、全局控制并发,避免过度集中卸数供数,保证系统资源占用在一定范围内,不影响其它应用进程的正常运作;
3、灾备作用,当某一数据中心出现异常,另一正常的应用数据中心,迅速代替出现异常的应用数据中心,提供供数能力。将影响减小到较小的范围,减小对其它事业部门的影响;
4、对卸数供数结果,记录于日志表,便于集中监控,异常供数及时短信提醒,快速定位。并可修复异常后,后台删除卸载日志,自动重新卸载并重新供数。
附图说明
图1是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的流程示意图;
图2是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的主进程控制流程示意图;
图3是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的数据库资源初始化流程示意图;
图4是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的并发供数控制流程示意图;
图5是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的单笔供数任务控制处理流程示意图;
图6是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的单笔任务供数流程示意图;
图7是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的多笔任务供数流程示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
图1是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的流程示意图,如图1所示,根据本发明优选实施方式的一种基于跨中心多数据库的自动化卸数供数的方法,包括:在每个应用系统的跑批服务器上设立数据库参数表、供数任务参数表、供数任务日志表;对跑批服务器定义一组服务器系统级的信号量(信号量(Semaphore),它负责协调各个进程,以保证它们正确、合理的使用公共资源)、共享内存(可以被不同CPU快速访问的内存区块,可用于多进程的进程间通信)及最大并发数;为每个数据库(存储电子文件的处所,可以对文件中的数据进行新增、查询、更新、删除等操作)定义一组数据库级的信号量、共享内存及最大并发数;读取数据库参数表,获取服务器需要执行的供数数据库列表,再按数据库的维度,逐个为每个数据库创建(fork()函数,通过系统调用创建一个与原来进程几乎完全相同的进程)一个新进程,来独立处理每个数据库的供数任务和进程资源的控制;创建(起)一个子进程,时刻查询公司级中心参数表;以及对每个应用系统所部署在的数据中心(系列特定设备和网络的集群,用来传递、加速、展示、计算、存储数据信息的地方)编排一个循环体,当其中一个数据中心宕机后,第一顺位的可执行数据中心所对应的应用服务系统代替宕机数据中心宕机期间的供数任务。
在本发明的一实施方式中,基于跨中心多数据库的自动化卸数供数的方法还包括:在每个数据库级子进程内,每隔一预设时间先判断是否有数据中心宕机,读取供数任务参数表,取得执行时间在本次轮询时间之前仍未执行供数的任务参数;以及通过PV操作(PV操作与信号量的处理相关,P表示通过,V表示释放),判断即时并发数及最大允许并发数,计算即时并发数,并获得供数任务(本文专指数据卸载、数据加工、压缩、数据推送的完整供数任务)执行权限,进而交给脚本利用系统已有的工具去执行卸数、压缩及推送操作;其中,对于需要从多个数据库卸载数据合并到一个数据文件的供述需求,拆分出多个单笔供数任务,以其中一个供数任务为主线,在前置任务串上参数记录这需要合并过来的供数任务号,把其它前置供数任务合并到目标数据文件后,再将主线任务的卸载数据合并到目标数据文件上,以此为压缩加工、推送数据等操作。
在本发明的一实施方式中,数据库参数表用以存放每个数据库供数控制的参数信息。数据库参数表包括数据库标识、参数名、参数值及参数说明。供数任务日志表用以存放每天每笔供数任务的执行痕迹。
在本发明的一实施方式中,供数任务参数表用以存放每笔供数任务的参数信息。供数任务参数表包括供数任务号、供数SQL语句、数据中心标识、数据表类型、数据库标识、前置任务串、合并标志、合并文件名字、卸载文件名字、启用标识、压缩标识、发送标识需求方服务器节点、需求方数据目录及开始执行时间等相关参数信息。
在本发明的一实施方式中,为每个所述数据库创建一个新进程包括:获取当前服务器所在数据中心的标识;创建系统级信号量;创建系统级共享内存,并设置系统级最大并发数;从公共库下的数据库参数表中读取执行主机为当前服务器主机、可执行标识为可执行的数据库列表;以及为每个供数数据库创建一个对应的子进程,来独立处理各自供数数据库的供数任务。
在本发明的一实施方式中,对每个应用系统所部署在的数据中心编排一个循环体包括:给各数据中心编排一个备用优先次序,开辟一块共享内存小时间间隔内不断轮询中心级参数表,获取各数据中心运行状况和状况变更日期时间;以及当其中一个数据中心宕机,处于宕机数据中心优先次序中的第一顺位可用数据中心,启动代替宕机数据中心宕机期间的供数任务。
本发明的基于跨中心多数据库的自动化卸数供数的方法,把参数放到每个应用系统的公共数据库上,按应用系统为单元进行参数设置,同功能属性的应用系统,要在每个数据中心对应的应用系统上都配置一份,且完全相同的参数,再通过IPC(进程间通信Inter-Process Communication)进程间通信技术控制系统级的进程数、每个数据库下的进程数,当进程数达到最大允许值后,轮询等候其它供数任务的完成。
在每个应用系统的跑批服务器上,实现以下内容:
设立db_param数据库参数表,存放每个数据库供数控制的参数信息;
设立unload_param供数任务参数表,存放每笔供数任务的参数信息;
设立unload_log供数任务日志表,存放每天每笔供数任务的执行痕迹;
每笔供数任务,在参数中指明在哪一个数据中心、哪一个数据库下执行;
定义一组服务器系统级的信号量、共享内存、最大并发数,用来存放即时的运行进程数、各数据中心的运行状况位图、各中心状况变更的时间,以及控制和计算当前系统的供数进程资源;
为每个数据库定义一组数据库级的信号量、共享内存、最大并发数,用来存放即时的数据库级进程数,以及用来控制和计算每个数据库的供数进程资源;
读取db_param数据库参数表,获取本服务器需要执行的供数数据库列表,再按数据库为维度,逐个为每个数据库创建一个新进程,独立处理每个数据库的供数任务和进程资源的控制;
起一个子进程,时刻查询公司级中心参数表,了解各中心运作状况,若与系统级共享内存下的中心运行状况位图不一致则更新对应的共享内存下的值;
对每个应用系统所部署在的数据中心,给这些数据中心编排一个循环体,当某数据中心宕机后,让第一顺位的可执行中心所对应的应用服务系统,代替执行宕机中心宕机期间的供数任务;
在每个数据库级子进程内,每隔1分先判断是否有中心宕机,读取unload_param供数任务参数表,取得执行时间在本次轮询时间之前(若有某中心宕机需代替,宕机中心的供数任务,只取宕机时间到当前轮询时间的任务参数),且仍未执行供数的任务参数;
通过PV操作,判断即时并发数与最大允许并发数,来计算即时并发数,并获得供数任务执行权限,再交给脚本利用系统已有的工具去执行卸数、压缩、推送操作;
对于需要从多个数据库卸载数据,合并到一个数据文件的供数需求,拆分出多个单笔供数任务,以其中一个供数任务为主线,在前置任务串上参数记录着需要合并过来的供数任务号,把其它前置供数任务合并到目标数据文件后,再将主线任务的卸载数据合并到目标数据文件上,以此为压缩加工、推送数据等操作。
1.数据库配置设计包括:
将数据库配置信息存放到db_param数据库参数表(详见表1、表2):
表1(db_param数据库配置表)
表2(表1参数例举)
将每笔供数任务的参数配置存放在unload_param供数任务参数表中(包括供数任务号、供数SQL语句、数据中心标识、数据表类型、数据库标识、前置任务串、合并标志、合并文件名字、卸载文件名字、启用标识、压缩标识、发送标识、需求方服务器节点、需求方数据目录、开始执行时间等相关参数信息)。
2.主控进程MainControl,为每个供数数据库创建一个新进程包括:
给每个需要待供数的数据库,在db_param数据库参数表上设置它的参数信息(包括可执行标识、执行主机名、最大并发数等)。
每天日终0晨起,在各个批量服务器上调度程序,处理当天的供数需求。获取所在中心的标识、创建系统级信号量、创建系统级共享内存(共享内存存放一个结构体,分别存放最大并大数、即时并发数、各中心运行状况位图、各中心宕机时间字符串(每14位对应一个状况位图),给系统级共享内存设置最大并发数。再从db_param数据库参数表上,读取执行主机为当前服务器主机、可执行标识为可执行的数据库列表,为每个供数数据库创建一个新进程,去独立处理各自数据库的供数任务(流程如图2所示)。
图2是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的主进程控制流程示意图,如图2所示。2.1每台服务器上都设置着中心的标识环境变量$CENTER_FLAG,从对应的环境上读取标识。2.3共享内存为一个结构体内存空间,分别存放最大并发数、即时并发数、各中心运行状况位图、各中心宕机时间字符串(每14位对应一个状况位图),从配置文件中获取当前系统允许的卸数最大并发数,赋值给共享内存下的最大并发数。2.4从2.5公共库下的db_param数据库参数表,取执行主机为当前服务器主机、可执行标识为可执行的数据库列表。2.7为每个供数数据库创建一个对应的子进程,来独立处理各自供数数据库的供数任务。2.8到了第二天,完成前一天所有的供数任务,程序结束。
3.数据库级进程DbControl,对基础资源数据初始化包括:
给每个数据库级子进程的资源初始化,从db_param数据库参数表上获取当前数据库(本文专指程序正在执行的要被供数的数据库)参数列表,创建一个数据库级信号量用于获取数据库级共享内存控制权,创建一个数据库级共享内存区块(存放一个结构体,用于记录当前数据库的最大并发数、即时卸数进程数),并依据参数列表设置数据库级共享内存下的最大并发数,以及当前数据库的进程资源权限的轮询时间(流程如图3所示)。
图3是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的数据库资源初始化流程示意图,如图3所示,3.0从MainControl主控进程创建来的子进程。3.1从3.2公共库db_param数据库参数表,取得当前数据库下的参数配置信息。3.4数据库级共享内存为一个结构体内存空间,分别存放数据库级最大并发数、即时并发数,从数据库参数列表中赋值给数据库级共享内存下的最大并发数。3.5当系统级或者当前数据库级最大并发数已满,就需要等待进程资源,每隔一个轮询时间去询问获取进程资源;若db_param数据库参数表没有设置轮询时间,则取系统配置文件的默认轮询时间。
4.并发供数控制ParallelUnload,轮询获取供数任务并发控制供数包括:
单个数据库供数下的供数进程控制,在每个日终供数内,当次轮询无供数任务状态下,每隔一分钟轮询一次。首先,获取各个数据中心的运行状况,再从unload_param供数任务参数表取当次轮询下需要供数的供数任务列表。其次,从当次供数任务列表中,逐笔依次做数据库级、系统级的PV操作,获取供数执行权限,并实时更新各自即时并发数。取得供数执行权限后,创建一个新进程,给当笔供数任务按配置,执行一个完整的供数过程(单笔供数详见2.2.5小章节)。再次,以当次轮询日期来判断是否已经第二天,若是则供数任务完结了,结束当天供数进程(隔天00:00后,最后一次扫描,避免所配置执行时间为临界点下的遗漏)。
具体过程见如图4所示,图4是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的并发供数控制流程示意图。数据库参数初始化后,开始对当前数据库供数控制处理;从4.2的系统级共享内存下,获取各中心系统的运行状况,以及最后一次变更日期时间;判断是否存在某中心系统运行故障,无法运作的宕机情况,若存在则跳转到4.4;若无则跳转到4.6。判断本中心是否为宕机中心第一顺位的可执行中心,若是则跳转到4.5;若不是,自有其它中心代替执行,跳转到4.6仅执行本中心任务即可;要代替其它中心执行供数任务:从unload_param供数任务参数表获取本中心,计划日终执行时间在当前系统时间之前,且不存在当天unload_log供数任务日志表的供数任务(即当天未被执行的供数任务)。同时,从unload_param供数任务参数表获取本中心要代替执行的宕机中心,计划日终执行日期时间在宕机日期时间起至当前系统日期时间之前,且不在当天unload_log供数任务日志表的供数任务。
无须代替其它中心执行供数任务:从unload_param供数任务参数表获取本中心,计划日终执行时间在当前系统时间之前,且不存在当天unload_log供数任务日志表记录的供数任务。
从当次轮询获取到的待供数任务,逐笔循环供数任务记录,若还有记录则跳转到4.8,若已无记录则跳转到4.10准备下一轮次的轮询任务。
进程权限的获取(优先获取数据库级权限,再取系统级的,免得占用系统级资源却没有数据库资源的浪费)。
先做数据库级信号量下的P操作,判断数据库级共享内存下的即时并发数是否已满,若已满则V操作回去,等待一个轮询时间后,再次重复P操作询问,直至取得数据库级进程资源权限,给数据库级共享内存下的即时并发数加1,再V操作回去。再做系统级信号量下的P操作,判断系统级共享内存下的即时并发数是否已满,若已满则V操作回去,等待一个轮询时间后,再次重复P操作询问,直至取得系统级进程资源权限,给系统级共享内存下的即时并发数加1,再V操作回去,至此可开启当笔供数任务的执行,跳转到4.9。
当取得供数执行权限后,开始创建一个独立的子进程,执行当笔供数任务的供数全流程。
每一轮次任务前,都记录着当次轮询日期,在当次轮询任务结束后,判断当次轮询日期是否已第二天,确保当天所有供数任务都执行一轮。若当天供数任务已完结,则跳到4.13结束当天供数的执行。
判断本轮轮询任务是否有供数任务,若当前时段无任务执行,则跳转到4.12等待1分钟,再跳到4.1继续下一次轮询供数任务;若有则直接跳到4.1继续一下次轮询供数任务。
5.单笔供数控制SingleUnload,开始对某一笔供数任务进行供数包括:
开始对当笔供数任务,进行供数的控制处理:
首先,往unload_log供数任务日志表登记一笔初始状态的供数日志,再把供数参数传送给Single_DataTask.sh单一任务供数脚本(详见2.2.6小章节)去处理数据卸载、xml数据信息,以及参数有设定的数据压缩、数据推送等操作(如果合并标志为需要多供数任务合并的数据,则只在里面卸载数据)。并在处理完毕后,分别通过系统级、数据库级信号量的PV操作给共享内存下的即时并发数减1。
其次,判断当前供数任务的合并标志,是否标记为要合并其它的供数任务,若不需要则更新unload_log供数任务日志表的处理结果;若需要,则取前置任务下任务号列表(该栏位下记录着需要合并过来的任务号,以逗号分隔符区分开来的任务串),逐个任务去等待获取对应任务的完成,并调用Multi_DataTask.sh多任务供数脚本(详见2.2.7小章节)去合并对应数据到合并数据文件上。
最后,合并供数任务,直至其它供数任务的数据已经合并过来后,对当前供数任务调用Multi_DataTask.sh多任务供数脚本去合并当前任务的数据文件到合并数据文件上,并产生xml数据信息,以及参数有设定的数据压缩、数据推送等操作。
图5是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的单笔供数任务控制处理流程示意图,如图5所示,5.0在第4节创建出来的子进程,并把某一笔供数任务参数带进来。5.1往unload_log供数任务日志表登记一笔初始状态的供数日志,跳转到5.2。5.2把供数参数传送给Single_DataTask.sh单一任务供数脚本去处理数据卸载、xml数据信息,以及参数有设定的数据压缩、数据推送等操作(如果合并标志为需要多供数任务合并的数据,则只在里面卸载数据),跳转到5.3。
5.3当笔供数任务的卸数结束后,已无大资源消耗风险,在此可以放开当前资源权限给其它供数任务。先通过系统级信号量做P操作,给系统级共享内存下的即时进程数减1,再做V操作;然后,通过当前数据库级信号量做P操作,给当前数据库级的共享内存的即时进程数减1,再做V操作。
5.4有些供数任务的数据会分布在多个数据库上,需要以其中一个供数任务为主线,将各个数据库下卸数产生的数据文件,合并到一个目标数据文件上。这就需要,判断当前供数任务的合并标志,是否标记为要合并其它的供数任务,若不需要则跳转到5.7)更新unload_log供数任务日志表的处理结果;若需要,则跳转到5.5)取前置任务下任务号列表(该栏位下记录着需要合并过来的任务号,以逗号分隔符区分开来的任务串)。
5.5依据参数配置的前置任务列表,逐个前置任务,若取到则跳转到5.8作数据文件合并处理;若已无下一个要合并的数据文件,则跳转到5.6将当前供数任务的数据文件,调用Multi_DataTask.sh多任务供数脚本去合并当前任务的数据文件到合并数据文件上,并产生xml数据信息,以及参数有设定的数据压缩、数据推送等操作。
5.7当笔供数任务已完结,unload_log供数任务日志表的处理状态。
5.8从unload_log供数任务日志表查找当天已完成执行任务的当前前置任务(执行状态不为初始状态),跳转到5.9判断是否找到当天已完结的当前前置任务,若找不到则跳转到5.11等候一个轮询时间间隔再去轮询5.8;若已完结则跳转到5.10查看执行结果。
5.10查看日志表的任务状态是否成功,若卸数失败,则跳转到5.7以失败状态结束当前供数任务(实际应用中,可以对此日志处理状态进行监控,对失败的供数任务进行告警处理。必要时,可以后台运行维护,重新卸载供数);若当前前置任务成功完结,则跳转到5.12合并当前前置任务下的数据文件。
5.12调用Multi_DataTask.sh多任务供数脚本,把当前前置任务下的数据文件合并到当前供数任务参数下的目标数据文件上。
5.13至此,一笔供数任务已完成。
6.单笔任务供数Single_DataTask.sh,只处理当前供数任务包括:
将卸数、压缩、数据推送等封装到Linux shell脚本里面,调用系统已有的卸数工具对卸数SQL语句进行卸数,调用系统压缩工具对数据进行压缩,调用系统下企业现有的文件推送工具进行数据推送。详见图6单笔任务供数流程图。
图6是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的单笔任务供数流程示意图,如图6所示,6.0接收从第5小节中传输过来的参数信息,定制化执行。6.1依据配置的供数SQL解析替换变量后(例如日期变量),调用企业自有的卸数工具,从对应的数据库中格式化卸载到数据文件中。6.2计算卸数文件的记录数、MD5码、卸数日期时间等信息xml报文形式存放到同前缀命名的xml文件中。6.3判断合并标识是否标记为需要合并,如果需要合并的则6.7结束本脚本,把合并处理交给第7小节;若无需合并数据文件,则判断压缩标识是否标记为需要压缩的,如需要压缩的,则6.4依据参数约定的压缩方式调用系统对应的压缩工具进行数据压缩,减少文件存储大小。6.5最后,判断发送标识是否标记为需要推送文件,若需要主动推送文件,则6.6调用企业自有的文件推送工具,把卸载文件、xml报文文件进行参数化推送给需求方指定服务器目录上。至此,6.7一个完整单笔任务供数完成。
7.多任务供数Multi_DataTask.sh,把多个供数任务的数据合并后提供供数包括:
将卸数、压缩、数据推送等封装到Linux shell脚本里面,调用系统已有的卸数工具对卸数SQL语句进行卸数,调用系统压缩工具对数据进行压缩,调用系统下企业现有的文件推送工具进行数据推送。详见图7多任务供数流程图。
图7是根据本发明一实施方式的基于跨中心多数据库的自动化卸数供数的方法的多笔任务供数流程示意图,如图7所示,7.0对于需要合并文件的供数任务,接收从第5小节中传输过来的参数信息,定制化执行。7.1调用系统自带命令,把参数传入的卸载文件合并到目标供数数据文件中。7.2判断传入参数,是否指定当前被合并任务是否为索引任务(索引任务以此为主线,主动去寻找合并文件),若不是则本脚本无需后续处理,返回第5小节继续下一个合并文件的寻找;若是则跳转到7.3。7.3计算合并文件的记录数、MD5码、卸数日期时间等信息xml报文形式存放到同前缀命名的xml文件中,跳转到7.4。7.4判断压缩标识是否标记为需要压缩的,如需要压缩的,则7.5依据参数约定的压缩方式调用系统对应的压缩工具进行数据压缩,减少文件存储大小。7.6最后,判断发送标识是否标记为需要推送文件,若需要主动推送文件,则7.7调用企业自有的文件推送工具,把合并文件、xml报文文件进行参数化推送给需求方指定服务器目录上。至此,7.8一个完整单笔任务供数完成。
在实际应用中,本发明的基于跨中心多数据库的自动化卸数供数的方法包括:
A.供数需求任务,在供数工具中,全参数化增删改配置,无需独立开发程序;
B.同一套供数参数的供数系统,多数据中心部署,当某一中心宕机,备中心代替工作;
C.系统层面的所有数据库下的供数进程控制;
D.多数据库,每个数据库层面下的独立供数进程控制;
E.同一笔供数需求,若数据来源于多数据库,各库下的数据文件合并再供数;
F.卸数SQL参数化可定制化日期变量条件、可选数据压缩性、可选数据推送性。
上述的步骤A具体包括:A1、将数据库级的控制参数设置到db_param数据库参数表,将供数任务需求的数据需求参数化设置到unload_param供数任务参数表。A2、对于供数需求,通过可定制化的后台维护系统,对unload_param供数任务参数表进行新增、删改,启用或者停掉一个供数任务。
上述的步骤B具体包括:B1、给各数据中心编排一个备用优先次序,开辟一块共享内存小时间间隔内不断轮询中心级参数表,获取各中心运行状况和状况变更日期时间。B2、当某中心宕机,处于宕机中心优先次序中的第一顺位可用中心,启动代替宕机中心宕机期间的供数任务(如果参数设置了需要代替标识)。
上述的步骤C具体包括:C1、开辟一块共享内存来存放系统最大允许供数进程数、即时的供数进程数。C2、每进行一笔供数任务前,先做PV操作获取共享内存的读写权限,判断即时进程数是否在系统最大供数进程数允许范围内,再给当笔供数任务执行权限,并给系统即时供数进程数加1个,再V操作释放共享内存的读写权限给其它供数任务。
上述的步骤D具体包括:D1、给每个数据库开辟一块共享内存来存放各个数据库的最大允许供数进程数、即时的供数进程数;D2、每进行一笔供数任务前,先做PV操作获取共享内存的读写权限,判断即时数据库的进程数是否在最大供数进程数允许范围内,再给当笔供数任务执行权限,并给当前数据库的即时供数进程数加1个,再V操作释放共享内存的读写权限给其它供数任务。
上述的步骤E具体包括:E1、将需要多数据库数据的供数任务,按各个子数据的数据库为维度,拆分出多个子供数参数任务,再以其中一个子供数任务为主线,在前置任务列表字符串中罗列出其它自任务,并在主线子任务中设置供数需要的目录文件名等参数信息。E2、当E1的主线子任务卸数完成后,依前置任务字符串的次序轮询等待其它子任务的完成,并将自任务卸载出来的子数据文件,合并到目标供数任务的数据文件上;E3、当E2完成后,再将主线子任务卸载出来的子数据文件合并到目标供数任务的数据文件上,产生一个完整的供数需求文件。
上述的步骤F具体包括:F1、对供数SQL参数化到配置表中,执行卸数前,对SQL进行可约定格式的日期变量进行日期替换为日期值,再启用卸数Shell脚本参数化去调用企业现有的卸数工具,从数据库中卸载条件数据到指定数据文件上。F2、参数表中设置当笔供数文件是否压缩,对要压缩的供数文件,依配置的压缩要求,调用Linux系统对应的压缩工具进行数据压缩。F3、参数表中设置了推送标识要求的,依据参数中需求的传输信息,调用企业现有的文件发送工具的接口,传送本地数据文件、目标数据文件目录、目标服务器信息等参数,进行数据推送。
总之,本发明的基于跨中心多数据库的自动化卸数供数的方法具有如下有益效果:
1、卸数需求后台增删改管理,对方每来一个供数需求/终止需求,就可以在后台增加/停用。灵活省事,减轻人力开发成本;
2、全局控制并发,避免过度集中卸数供数,保证系统资源占用在一定范围内,不影响其它应用进程的正常运作;
3、灾备作用,当某一数据中心出现异常,另一正常的应用数据中心,迅速代替出现异常的应用数据中心,提供供数能力。将影响减小到较小的范围,减小对其它事业部门的影响;
4、对卸数供数结果,记录于日志表,便于集中监控,异常供数及时短信提醒,快速定位。并可修复异常后,后台删除卸载日志,自动重新卸载并重新供数。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (8)
1.一种基于跨中心多数据库的自动化卸数供数的方法,其特征在于,包括:
在每个应用系统的跑批服务器上设立数据库参数表、供数任务参数表、供数任务日志表;
对所述跑批服务器定义服务器系统级的信号量、共享内存及最大并发数,为每个数据库定义数据库级的信号量、共享内存及最大并发数;
读取数据库参数表,获取服务器需要执行的供数数据库列表,逐个为每个数据库创建一个新进程来独立处理每个数据库的供数任务和进程资源的控制;
创建一个子进程,时刻查询公司级中心参数表;以及对每个应用系统所部署在的数据中心编排一个循环体,当其中一个所述数据中心宕机后,第一顺位的可执行数据中心所对应的应用服务系统代替宕机数据中心宕机期间的供数任务;
还包括:
在每个数据库级子进程内,每隔一预设时间先判断是否有所述数据中心宕机,读取所述供数任务参数表,取得执行时间在本次轮询时间之前仍未执行供数的任务参数;以及通过 PV 操作,判断即时并发数及最大允许并发数,计算即时并发数,并获得供数任务执行权限,进而交给脚本利用系统已有的工具去执行卸数、压缩及推送操作;
其中,对于需要从多个数据库卸载数据合并到一个数据文件的供述需求,拆分出多个单笔供数任务,以其中一个供数任务为主线,在前置任务串上参数记录这需要合并过来的供数任务号,把其它前置供数任务合并到目标数据文件后,再将主线任务的卸载数据合并到目标数据文件上,以此为压缩加工、推送数据操作。
2.如权利要求 1 所述的基于跨中心多数据库的自动化卸数供数的方法,其特征在于,所述数据库参数表用以存放每个数据库供数控制的参数信息。
3.如权利要求 1 所述的基于跨中心多数据库的自动化卸数供数的方法,其特征在于,所述数据库参数表包括数据库标识、参数名、参数值及参数说明。
4.如权利要求 1 所述的基于跨中心多数据库的自动化卸数供数的方法,其特征在于,所述供数任务参数表用以存放每笔供数任务的参数信息。
5.如权利要求 1 所述的基于跨中心多数据库的自动化卸数供数的方法,其特征在于,所述供数任务参数表包括供数任务号、供数 SQL 语句、数据中心标识、数据表类型、数据库标识、前置任务串、合并标志、合并文件名字、卸载文件名字、启用标识、压缩标识、发送标识需求方服务器节点、需求方数据目录及开始执行时间相关参数信息。
6.如权利要求 1 所述的基于跨中心多数据库的自动化卸数供数的方法,其特征在于,所述供数任务日志表用以存放每天每笔供数任务的执行痕迹。
7.如权利要求 1 所述的基于跨中心多数据库的自动化卸数供数的方法,其特征在于,为每个所述数据库创建一个新进程包括:
获取当前服务器所在数据中心的标识;
创建系统级信号量;
创建系统级共享内存,并设置系统级最大并发数;
从公共库下的数据库参数表中读取执行主机为当前服务器主机、可执行标识为可执行的数据库列表;以及为每个供数数据库创建一个对应的子进程,来独立处理各自供数数据库的供数任务。
8.如权利要求 1 所述的基于跨中心多数据库的自动化卸数供数的方法,其特征在于,对每个应用系统所部署在的数据中心编排一个循环体包括:
给各数据中心编排一个备用优先次序,开辟一块共享内存小时间间隔内不断轮询中心级参数表,获取各数据中心运行状况和状况变更日期时间;以及当其中一个数据中心宕机,处于宕机数据中心优先次序中的第一顺位可用数据中心,启动代替宕机数据中心宕机期间的供数任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911269571.4A CN111078666B (zh) | 2019-12-11 | 2019-12-11 | 基于跨中心多数据库的自动化卸数供数的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911269571.4A CN111078666B (zh) | 2019-12-11 | 2019-12-11 | 基于跨中心多数据库的自动化卸数供数的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078666A CN111078666A (zh) | 2020-04-28 |
CN111078666B true CN111078666B (zh) | 2023-06-27 |
Family
ID=70313903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911269571.4A Active CN111078666B (zh) | 2019-12-11 | 2019-12-11 | 基于跨中心多数据库的自动化卸数供数的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078666B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000041455A2 (en) * | 1999-01-12 | 2000-07-20 | Dvbs, Inc. | High performance web server |
JP2001344526A (ja) * | 2000-05-31 | 2001-12-14 | Nec Corp | 有償コンテンツサービス提供システムにおける課金方法、課金システム、管理装置、および記録媒体 |
CN101105820A (zh) * | 2007-08-23 | 2008-01-16 | 上海交通大学 | 电网规划计算机辅助决策支持系统 |
CN103019886A (zh) * | 2012-12-11 | 2013-04-03 | 曙光信息产业(北京)有限公司 | 多元数据服务器下日志系统的恢复方法和装置 |
CN105183854A (zh) * | 2015-09-08 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种数据库卸载数据的调度方法 |
CN107016087A (zh) * | 2017-04-05 | 2017-08-04 | 杭州铭师堂教育科技发展有限公司 | 基于哨兵模型的层级数据库高可用系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757673B2 (en) * | 2000-10-09 | 2004-06-29 | Town Compass Llc | Displaying hierarchial relationship of data accessed via subject index |
CN101002455B (zh) * | 2004-06-04 | 2011-12-28 | B·F·加萨比安 | 在移动和固定环境中增强数据输入的设备及方法 |
CN101789002B (zh) * | 2010-01-22 | 2013-09-11 | 浪潮(北京)电子信息产业有限公司 | 一种服务器上数据库兼容性的测试的装置及方法 |
US10025873B2 (en) * | 2014-04-18 | 2018-07-17 | Walmart Apollo, Llc | System and method for storing and processing database requests |
CN106445640B (zh) * | 2016-10-20 | 2019-06-18 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和系统 |
-
2019
- 2019-12-11 CN CN201911269571.4A patent/CN111078666B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000041455A2 (en) * | 1999-01-12 | 2000-07-20 | Dvbs, Inc. | High performance web server |
JP2001344526A (ja) * | 2000-05-31 | 2001-12-14 | Nec Corp | 有償コンテンツサービス提供システムにおける課金方法、課金システム、管理装置、および記録媒体 |
CN101105820A (zh) * | 2007-08-23 | 2008-01-16 | 上海交通大学 | 电网规划计算机辅助决策支持系统 |
CN103019886A (zh) * | 2012-12-11 | 2013-04-03 | 曙光信息产业(北京)有限公司 | 多元数据服务器下日志系统的恢复方法和装置 |
CN105183854A (zh) * | 2015-09-08 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种数据库卸载数据的调度方法 |
CN107016087A (zh) * | 2017-04-05 | 2017-08-04 | 杭州铭师堂教育科技发展有限公司 | 基于哨兵模型的层级数据库高可用系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111078666A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8938421B2 (en) | Method and a system for synchronizing data | |
RU2429529C2 (ru) | Динамическое конфигурирование, выделение и развертывание вычислительных систем | |
CN107958010B (zh) | 用于在线数据迁移的方法及系统 | |
CN106708740B (zh) | 脚本测试方法及装置 | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
US9542173B2 (en) | Dependency handling for software extensions | |
CN115048205B (zh) | Etl调度平台及其部署方法、计算机可读存储介质 | |
CN112835714A (zh) | 云边环境中面向cpu异构集群的容器编排方法、系统及介质 | |
US20060112189A1 (en) | Method for tracking transport requests and computer system with trackable transport requests | |
CN101753619B (zh) | 用于扩展服务模型的方法和系统 | |
CN110865806A (zh) | 代码处理方法、装置、服务器及存储介质 | |
CN111078666B (zh) | 基于跨中心多数据库的自动化卸数供数的方法 | |
CN112035230A (zh) | 一种任务调度文件生成方法、装置及存储介质 | |
CN114416601B (zh) | 一种网络安全信息采集引擎和任务管理系统与方法 | |
CN115617480A (zh) | 一种任务调度方法、装置、系统及存储介质 | |
KR100976420B1 (ko) | 형상관리 시스템 및 방법 | |
EP2605127B1 (en) | Processing Framework For Generating Pre-Configuration Packages | |
KR100289058B1 (ko) | 워크플로우 관리시스템의 프로세스 정의 및 제어방법 | |
US20140081679A1 (en) | Release Management System and Method | |
CN110990475B (zh) | 批量任务插入方法、装置、计算机设备及存储介质 | |
US20200301737A1 (en) | Configurable data parallelization method and system | |
CN116339806A (zh) | Tws移行版本的投产处理方法及装置 | |
CN117971412A (zh) | 一种支持依赖编排的任务依赖调度方法 | |
CN116303361A (zh) | 业务数据迁移方法、装置及系统 | |
CN115809050A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220909 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |