CN110489436A - 数据库的线上变更方法及平台、计算机设备及可读介质 - Google Patents

数据库的线上变更方法及平台、计算机设备及可读介质 Download PDF

Info

Publication number
CN110489436A
CN110489436A CN201910758965.XA CN201910758965A CN110489436A CN 110489436 A CN110489436 A CN 110489436A CN 201910758965 A CN201910758965 A CN 201910758965A CN 110489436 A CN110489436 A CN 110489436A
Authority
CN
China
Prior art keywords
online
sql
cluster
database
mark
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
Application number
CN201910758965.XA
Other languages
English (en)
Inventor
王占兵
余杰
王云艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910758965.XA priority Critical patent/CN110489436A/zh
Publication of CN110489436A publication Critical patent/CN110489436A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据库的线上变更方法及平台、计算机设备及可读介质,涉及大数据领域。所述方法包括:检测并获取外部触发的上线请求,上线请求包括上线SQL和上线集群的标识;对上线SQL进行语法检测和内容审核;在语法检测和内容审核通过后,对上线集群的标识对应的数据库集群进行备份;按照预设的变更策略,采用上线SQL对所述上线集群的标识对应的数据库集群进行变更。本发明的技术方案中,全程由数据库的线上变更平台自动完成,减少上线需投入人力成本和时间成本,降低了上线的复杂度,能够有效地提升上线变更的效率。而且,采用数据库的线上变更平台代替人工参与语法检测和内容审核,大大降低上线出错概率。

Description

数据库的线上变更方法及平台、计算机设备及可读介质
【技术领域】
本发明涉及计算机应用技术领域,尤其涉及一种数据库的线上变更方法及平台、计算机设备及可读介质。
【背景技术】
在互联网飞速发展的大背景下,为了满足市场需要,业务方需要频繁改善数据库的产品质量以提升用户的使用体验。基于此,由于需求变更或版本迭代,数据库线上变更(On-line Change of Database)便应运而生。
业务方对线上数据库执行的变更操作,可以包括:表结构的变更如数据定义语言(Data Definition Language;DDL)的变更、表数据的变更如数据操作语言(DataManipulation Language;DML)的变更。例如:在业务新增查询需求时,为避免全表扫描在原表添加索引;业务变更时,需在原表中新增字段或拓长原字段;为了避免数据增长过快时,定期清理数据库中历史数据;为了支持活动,业务推出商品活动折扣,需要修改数据库中商品价格等等。现有技术中的线上数据库的变更主要由业务方通过填写上线单,提交上线文件,并由数据库管理员(Database Administrator;DBA)完成数据校验和影响评估,最后在主库执行线上变更。
上述现有的在线数据库的变更流程,整个过程涉及大量人工操作,不仅占用大量人力资源,耗时耗力,导致上线变更的效率非常低,而且非常容易出错。
【发明内容】
本发明提供了一种数据库的线上变更方法及平台、计算机设备及可读介质,用于节省人力资源,提高数据库的上线变更效率和准确性。
本发明提供一种数据库的线上变更方法,所述方法包括:
检测并获取外部触发的上线请求,所述上线请求包括上线SQL和上线集群的标识;
对所述上线SQL进行语法检测和内容审核;
在所述语法检测和内容审核通过后,对所述上线集群的标识对应的数据库集群进行备份;
按照预设的变更策略,采用所述上线SQL对所述上线集群的标识对应的数据库集群进行变更。
进一步可选地,如上所述的方法中,对所述上线SQL进行语法检测和内容审核,包括:
对所述上线SQL进行语法检测;
并在检测通过时,对所述上线SQL进行内容审核。
进一步可选地,如上所述的方法中,还包括:
若对所述上线SQL语法检测未通过时,生成未通过的提示意见,并在所述界面展示,供上线请求者参考。
进一步可选地,如上所述的方法中,对所述上线SQL进行内容审核,包括:
通过对所述上线SQL进行语义检查,检测所述上线集群的标识对应的上线集群中是否包括有所述上线SQL中对应的表或列;
若包括,获取上线影响信息。
进一步可选地,如上所述的方法中,获取上线影响信息,包括:
获取所述上线SQL对应的上线类型;
根据所述上线类型获取对应的上线影响指标。
进一步可选地,如上所述的方法中,根据所述上线类型获取对应的上线影响指标,包括:
若所述上线类型为DDL变更,获取所述上线集群的标识对应的备数据库集群计算的各所述上线SQL上线后的单条SQL的最大影响行数、以及总计影响行数;
若所述上线类型为DML变更,获取所述上线集群的标识对应的备份集群计算的各所述上线SQL上线后的单条插入SQL的最大影响行数、删除单条SQL的最大影响行数、变更单条SQL的最大影响行数、以及总计影响行数。
进一步可选地,如上所述的方法中,对所述上线集群的标识对应的数据库集群进行备份之前,所述方法还包括:
根据所述总计影响行数和预设的行数阈值,获取备份类型;
展示所述备份类型,以供所述上线请求者确认是否选择所述备份类型;
所述对所述上线集群的标识对应的数据库集群进行备份,具体包括:根据所述上线请求者选择的所述备份类型,对所述上线集群的标识对应的备数据库进行备份。
进一步可选地,如上所述的方法中,对所述上线请求进行语法检测和内容审核之后,对所述上线集群的标识对应的数据库集群进行备份之前,所述方法还包括:
根据预先配置的审批策略,向预设的审批账号发起携带所述上线影响指标的审批请求,以供所述审批账号对应的审批人员根据所述上线影响指标对所述上线请求进行审批;
并接收所述审批账号返回的审批通过的消息。
本发明提供一种数据库的线上变更平台,所述平台包括:
获取模块,用于检测并获取外部触发的上线请求,所述上线请求包括上线SQL和上线集群的标识;
检测与审核模块,用于对所述上线SQL进行语法检测和内容审核;
备份模块,用于对所述上线集群的标识对应的数据库集群进行备份;
变更执行模块,用于按照预设的变更策略,采用所述上线SQL对所述上线集群的标识对应的数据库集群进行变更。
本发明还提供一种计算机设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的数据库的线上变更方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的数据库的线上变更方法。
本发明的数据库的线上变更方法及平台、计算机设备及可读介质,通过采用上述方案可以实现数据库的线上变更,本发明的技术方案中,全程由数据库的线上变更平台自动完成,与现有技术的人工实现上线相比,减少上线需投入人力成本和时间成本,降低了上线的复杂度,能够有效地提升上线变更的效率。而且,本发明中采用数据库的线上变更平台代替人工参与语法检测和内容审核,大大降低上线出错概率。
进一步地,本发明的技术方案中,还可以根据总计影响行数和预设的行数阈值,获取备份类型,并展示给上线请求者,能够提供准确地备份类型的建议,便于上线请求者选择更加合理化的备份方式。
进一步地,本发明的技术方案中,还设置有相应的审批程序,能够进一步保障上线的准确性,提高上线的安全性和稳定性。
【附图说明】
图1为本发明的数据库的线上变更方法实施例一的流程图。
图2为本发明提供一种数据库的线上变更方法的应用场景图。
图3为本发明提供一种审核报告的示意图。
图4为本发明提供的一种备份结果示意图。
图5为本发明提供的一种审批策略配置的界面示意图。
图6为本发明的数据库的线上变更方法实施例二的流程图。
图7为本发明的数据库的线上变更平台实施例一的结构图。
图8为本发明的数据库的线上变更平台实施例二的结构图。
图9为本发明的计算机设备实施例的结构图。
图10为本发明提供的一种计算机设备的示例图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
通常情况下,线上数据库的变更操作过程主要包括业务方的操作和DBA的操作。其中业务方的操作可以包括如下步骤:a)业务方填写上线单,上线单中主要包括集群名称、文件传输协议(File Transfer Protocol;FTP)地址、文件MD5值和执行时间等十多项内容,然后提交;b)业务方发起流程审批,审批流程完成后提醒DBA接续完成上线流程。接下来,DBA方的操作可以包括如下几个步骤:a)DBA查看上线单内容,下载上线结构化查询语言(Structured Query Language;SQL)文件;b)审核提交文件中SQL文件语法和语义是否正确;c)根据当前数据库数据评估本次上线影响;d)查询数据库中该集群主库信息,上传文件至实例机器,校验文件md5值防止网络传输错误,检查文件编码,检查文件是否出现特殊字符;e)校验主库readonly,防止在获取数据库信息和连接数据库间隙,集群发生了主从切换,如果校验readonly=0,则开始执行上线SQL;f)回填上线单,完成上线操作。
上述的业务方的操作也可以由业务方的研发人员来执行,再加上DBA的操作也属于人来执行的操作。因此,现有数据库的变更流程中,整个过程涉及的操作都是人工操作,不仅占用大量人力资源,耗时耗力,而且非常容易出错。基于此,本发明亟需提供一种自动实现数据库的线上变更的方案。
图1为本发明的数据库的线上变更方法实施例一的流程图。如图1所示,本实施例的数据库的线上变更方法,具体可以包括如下步骤:
100、检测并获取外部触发的上线请求,该上线请求包括上线SQL和上线集群的标识;
本实施例的数据库的线上变更方法的执行主体为数据库的线上变更平台,该数据库的线上变更平台用于自动实现对数据库的线上变更进行操作,避免人工操作,以保证数据库的线上变更操作的正确性。
本实施例的上线请求可以由上线请求者通过数据库的线上变更平台的界面填写的,此时对应地,数据库的线上变更平台通过检测界面填写的信息可以获取到该上线请求。
或者本实施例的上线请求还可以由上线请求者通过一个外部的应用填写的,然后通过接口推送至该数据库的线上变更平台。此时对应地,数据库的线上变更平台可以通过检测接口可以获取到该上线请求。
图2为本发明提供一种数据库的线上变更方法的应用场景图。如图2所示的场景图所示,本实施例的数据库的线上变更方法可以部署在数据库的线上变更平台中。本实施例中,该数据库的线上变更平台可以与n个数据库集群进行通信,具体地,n个数据库集群可以部署在一个、两个或者多个服务器上。且每个服务器中可以部署一个、两个或者多个数据库集群。具体地,在本实施例中,该数据库的线上变更平台用于对n个数据库集群进行管理和维护。例如,具体可以负责n个数据库集群的上线变更,每个数据库集群中可以部署有多个MySQL实例,如主MySQL实例、从MySQL实例和备MySQL实例且实例之间具有复制关系,也就是说,每个数据库集群中包括主数据库、从数据库和备数据库,主数据库、从数据库和备数据库之间始终保持数据同步,其中从数据库用于提供线上服务。而且,该数据库的线上变更平台可以在界面中展示在整个数据库的线上变更过程,与本次线上变更相关的上线请求者以及负责的DBA都能看到。
本实施例中,以一次上线请求为例,来描述本发明的数据库的线上变更方法。具体地,在数据库的线上变更平台上设置有用于交互的界面,该界面可以接收上线请求者如研发人员填写的上线SQL以及上线集群的标识。具体地,一次上线可以包括一条、两条、甚至多条上线SQL语句。其中,上线集群的标识可以为上线集群的名称。上线过程,用于将上线SQL执行到上线集群的标识对应的数据库集群上,实现对应数据库集群的变更。且上线SQL中可以仅对上线集群的标识对应数据库集群中的某个表做变更。
另外,为了便于对每次上线进行区分,本实施例中,上线请求者还可以通过界面输入上线单名称,例如该上线单名称可以为上线的任务名称加上日期或者序号等来标识,便于与本次上线相关的人员可以通过数据库的线上变更平台看到。上线请求者在界面输入相关信息后,可以点击界面上设置的上线请求,相当于向数据库的线上变更平台触发了上线请求。对应地,在数据库的线上变更平台侧,可以通过检测界面的输入信息,获取到外部如上线请求者触发的上线请求,且能够获取到该上线请求中包括的上线SQL和上线集群的标识,同理,还能够获取到上线单名称。
101、对上线SQL进行语法检测和内容审核;
例如,该步骤具体实现过程中,可以包括如下步骤:
(a1)对上线SQL进行语法检测;
(b1)判断语法检测是否通过;若通过,执行步骤(c1);否则,若未通过,执行步骤(d1);
(c1)对上线SQL进行内容审核。
(d1)生成未通过的提示意见,并在界面展示,供上线请求者参考。
本实施例中,对上线SQL进行语法检测包括两方面的信息,第一方面检测上线SQL的语法是否正确,第二方面检测上线SQL对应的操作是否为数据库的线上变更平台支持的操作;也就是说,本实施例的数据库的线上变更平台并不是支持所有的操作。当语法检测未通过时,此时,对应地还要生成未通过的原因,以标识未通过是因为语法错误未通过,还是因为线上平台不支持而未通过,供上线请求者做参考。
且在本实施例中,生成的未通过的提示意见可以非常丰富,甚至还可以包括修改建议。这样,上线请求者可以基于提示意见对上线SQL进行修改,使其满足上线要求。
本实施例中,(c1)对上线SQL进行内容审核具体可以包括如下步骤:
A、通过对上线SQL进行语义检查,检测上线集群的标识对应的上线集群中是否包括有上线SQL中对应的表和/或列;若包括,执行步骤B;否则,确认上线SQL的内容存在错误,同理,生成错误内容的提示信息,并在界面上展示,以供上线请求者参考并修改。
B、获取上线影响信息。
需要说明的是,本实施例中,上线集群的标识对应的数据库集群中可以包括主数据库、从数据库以及备数据库,且主数据库、从数据库和备数据库之间具有复制关系,能够保证数据的同步。其中为了保证数据的稳定性,主数据库提供基础服务,例如可以为备数据库和从数据库提供复制的数据,从数据库提供线上流量服务,备数据库不提供线上流量服务。所以本实施例中,上线变更前备份时优选地对备数据库进行备份,以避免对主数据库和从数据库的服务产生影响。上线变更时,优选地对主数据库进行上线变更操作,然后由主数据库再将变更的数据同步给备数据库和从数据库。总之,在对数据库集群进行任何操作时,为了避免对线上流量服务产生影响,尽量不对从数据库进行任何操作。而且为了保证数据的安全性,也避免同时对主数据库和备数据库进行任何操作,仅对其中一者进行操作即可。
此时对应地,为了保证数据库集群中数据的安全性,对上线SQL进行内容审核,具体还可以包括:检测上线集群的标识对应的备数据库是否存在,备数据库的状态是否正常、备数据库与主数据库的复制关系是否正常,备数据库复制主数据库的延迟是否符合标准;如果这些都正常,说明数据库集群中的数据相对安全,才可以继续进行后续的备份和上线变更操作。本实施例中,可以预先配置一个备数据库复制主数据库的延迟阈值,若延迟小于该延迟阈值,认为延迟符合标准,否则认为延迟不符合标准。
具体地,由于上线SQL是用于在上线集群的标识对应的上线集群中进行执行,例如,上线SQL语句可以是在某个上线集群中插入一列、删除一列等等;或者是在某个上线集群的某个表格中插入数据、删除数据、或者变更数据等等。因此,本实施例中,在对上线SQL进行内容审核时,数据库的线上变更平台可以通过其包括的sqlparserd组件对上线SQL语句进行词法分析,实现对上线SQL语句进行语义检查,以检测上线集群的标识对应的上线集群中是否包括有上线SQL中对应的表和/或列,若不包括某个上线SQL对应的表或列,则认为该上线SQL语句的内容是错误的,此时可以生成错误内容的提示信息,并在界面上展示,供上线请求者参考并修改。例如,本实施例中,优选地,为了不影响主数据库的安全性,不影响从数据库的线上业务,可以通过检测上线集群的标识对应的上线集群中的备数据库中是否包括有上线SQL中对应的表和/或列。
本实施例中,在对上线SQL的内容审核通过后,还包括获取上线影响信息。具体可以包括:获取上线SQL对应的上线类型;根据所述上线类型获取对应的上线影响指标。
例如,若上线类型为DDL变更,获取上线集群的标识对应的备数据库计算的上线SQL上线后的单条SQL的最大影响行数、以及总计影响行数。
由于上线集群的标识对应的主数据库和备数据库的信息是始终保持同步的,为了不影响对应的主数据库和从数据库的正常工作,本实施例中,可以通过访问备数据库,以获取上线SQL的最大影响行数以及总计影响行数。以上线SQL存在至少两条为例,其中各SQL的最大影响行数为各个上线SQL语句的影响行数的最大值,总计影响行数为所有上线SQL语句的影响行数之和。具体实现时,数据库的线上变更平台可以创建一个临时审核账户,通过该临时审核账户来向上线集群标识对应的备数据库发送上线SQL。由备数据库基于各SQL,计算该SQL在该备数据库中上线后产生的影响行数,进而获取到单条SQL的最大影响行数以及总计影响行数,并返回给数据库的线上变更平台。本实施例中,通过建立临时审核账户的考虑是,临时审核账户为普通账户,没有super权限,可以保证信息获取的准确性。这里的临时账号,在完成数据库的线上变更后,自动回收。而且,使用该临时账号,与统一管理审核帐号相比,可以避免统一管理审核帐号的开销,降低密码泄露的风险。与直接使用root相比,临时账号也可以满足审计的要求,即可以查到访问DB的信息。
若上线类型为DML变更,获取上线集群的标识对应的备数据库计算的上线SQL集合上线后的单条插入SQL的最大影响行数、删除单条SQL的最大影响行数、变更单条SQL的最大影响行数、以及总计影响行数。
由于DML的类型不同于DDL,DML的上线类型,对应获取到的影响指标包括单条插入SQL的最大影响行数、删除单条SQL的最大影响行数、变更单条SQL的最大影响行数、以及总计影响行数。具体地,上线SQL中可能是用于插入、删除或者变更信息,因此,对于每条SQL,按照上述DDL同样的方式,需要从备数据库中获取执行各条SQL,带来的单条插入SQL的影响行数、删除单条SQL的影响行数、或者变更单条SQL的影响行数。然后从上线SQL集合中所有SQL对应的信息中,筛选出单条插入SQL的最大影响行数、删除单条SQL的最大影响行数、变更单条SQL的最大影响行数。并将至少两条上线SQL中每个SQL的影响行数相加,得到总计影响行数。
需要说明的是,本实施例中,按照上述方式,对至少两条上线SQL中各SQL进行审核后,可以得到相应的审核报告,可以包括操作集群即上线集群标识对应的备数据库,上线SQL集合中包括的SQL的条数,上述审核中获取的各个影响指标。如图3所示,为本发明提供一种审核报告的示意图。实际应用中,根据具体的场景,可以生成相应的审核报告,在此不再一一举例赘述。
可选地,本实施例中,在对上线请求进行内容审核前,还可以包括对上线SQL进行预检查,该过程主要检查各SQL中是否包含特殊符号、是否为UTF-8编码等信息,以使其符合上线执行的标准。
102、在语法检测和内容审核通过后,对上线集群的标识对应的数据库集群进行备份;
本实施例中,为了防止数据库在线变更失败后,能够及时恢复变更前的数据库集群,还可以在语法检测和内容审核通过后,对上线集群标识对应的数据库集群进行备份。但是对数据库集群中的所有数据库进行备份可能数据量较大,也没有必要。所以,本实施例中,可以仅对上线集群的标识对应的数据库集群中上线SQL涉及到的表进行备份。同理,为了保证业务的正常进行和数据的安全性,本实施例中,可以参考上线集群的标识对应的备数据库中的上线SQL涉及到的表,进行备份。
本实施例的备份可以分为全量备份和差量备份。全量备份即对上线集群的标识对应的数据库集群中上线SQL涉及到的所有表进行备份,而差量备份,即相对于备份前而言,仅将差量的数据进行备份。两种备份类型相比较而言,全量备份的整个过程消耗时间更长,占用的存储空间更大,但是备份的信息更全面。而差量备份的整个过程数据量较少,消耗时间较短,占用的存储空间有限,仅仅备份差量数据,相对数据量较少。
本实施例中,在备份完成之后,可以在界面展示一个备份结果,以告知上线请求者以及相关的审批人。例如图4为本发明提供的一种备份结果示意图。实际应用中,根据具体的备份内容,备份结果还可以采用其他的展现方式,且备份结果展示的内容也可以随着备份类型以及备份数据的内容不同而不同,在此不再一一举例赘述。
本实施例中,备份之前,具体可以在界面上展示两种备份方式,由上线请求者选择其中一种备份方式。或者也可以由数据库的线上变更平台给出建议的备份类型,再由上线请求者基于建议选择想要执行的备份类型。例如,可以预先配置一个预设行数阈值,根据上述实施例的方式,获取到总计影响行数后,根据总计影响行数和预设的行数阈值,获取备份类型;例如,若总计影响行数大于或者等于预设的行数阈值,则可以选择全量备份;若总计影响行数小于预设的行数阈值,则可以选择差量备份。当然此时获取的备份类型也仅仅为数据库的线上变更平台基于总计影响行数和预设的行数阈值,所获取的建议的备份类型。然后数据库的线上变更平台可以在界面展示该备份类型,以供上线请求者确认是否选择所述备份类型。可选地,本实施例中,还可以将建议的备份类型以及关于备份的信息也展示在审核报告中,如图3的审核报告所示。
进一步可选地,本实施例中,可以预先配置有备份的地址,然后还可以预先检测配置的地址中的存储空间是否大于上线集群的标识对应的数据库集群的大小,若大于,才能保证实施全量备份。
本实施例中,上线请求者可以选择建议的备份类型,或者根据自身的主观判断选择另一种备份类型。数据库的线上变更平台都能够通过检测界面,获取到上线请求者选择的备份类型。然后,数据库的线上变更平台根据上线请求者选择的备份类型,优选地,对上线集群的标识对应的备数据库进行备份,具体地,上线SQL涉及到的表可能仅为备数据库中很小一部分,对整个备数据库进行备份有太多的无关信息,会导致备份时间更长,本实施例中,可以仅对上线集群的标识对应的备数据库中的上线SQL涉及到的表进行备份。
为了不影响主数据库和从数据库的业务,本实施例的备份操作,优选地,仅对备数据库进行。当然,实际应用中,也可以在相应的数据库集群中都进行备份操作或者也可以在其中部分数据库中进行备份操作,在此不做限定。
需要说明的是,在上线SQL数量较少时,上线影响较小,上线请求者为研究开发(Research and Development;RD)经理时,此时可以直接按照上述实施例的步骤,在步骤101对上线SQL进行语法检测和内容审核后,直接按照步骤102对上线集群的标识对应的数据库集群进行备份。
而可选地,实际应用中,若上线请求者通常没有权限直接发布上线,该数据库的线上变更平台配置有严格的审批策略。例如,可以根据预设的审批策略,由(1)RD经理审批、(2)DBA审批、(3)质量保证(Quality Assurance;QA)负责人的审批中任意一个来审批,或者也可以由其中任意两者的组合,或者由RD经理+DBA+QA负责人共同审批。例如图5为本发明提供的一种审批策略配置的界面示意图。如图5所示,在该审批策略中,以展示3个条件对应的审批策略为例,条件1为不是DDL自主操作,且UPDATE单条最大影响行数最大值10000;条件2DELETE单条最大影响行数最大值10000;DML总计影响行数最大值100000;如图4所示,在审批过程定制中,通过添加审批者为每种条件都配置相应的审批人。配置完审批策略后,后续在使用时,可以根据预先配置好的审批策略,针对当时的条件,向对应的审批人账户请求审批。
例如,在步骤101之后,步骤102之前,还可以包括:根据预先配置的审批策略,向预设的审批账号发起携带内容审核的结果的审批请求,以供审批账号对应的审批人员根据内容审核的结果对上线请求进行审批;并接收审批账号返回的审批通过的消息,才可以进一步进行备份。当然,如果审批人员不同意审批,至此,此时整个流程便结束。本实施例的内容审核的结果可以包括上线影响指标,供审批人员根据上线影响指标评价本次上线的影响大小等。
需要说明的是,审批人在同意审批的时候,还可以根据上线影响指标同时手动选择触发全量备份,此时数据库的线上变更平台接收到审批人发起的全量备份的请求,并开始执行全量备份过程,并在界面可以展示备份进程,上线请求者也可以在数据库的线上变更平台看到。或者审批人也可以不对备份做限制,返回审批通过的消息。此时数据库的线上变更平台可以展示建议的备份类型,并且同时还展示可供选择的备份类型,此时若建议的备份类型为差量备份,但是上线请求者也可以手动触发全量备份。或者若建议的备份类型为全量备份,上线请求者选择差量备份。或者上线请求者针对建议的备份类型不做修改,直接点击跳过,默认同意开始按照建议的备份类型进行备份。无论是谁触发的备份,执行的是哪种备份类型,数据库的线上变更平台都会向上线集群的标识对应的备数据库发送对应的备份类型,以供备数据库根据备份类型,对相应的备数据库进行备份,且全程备份进度可以在数据库的线上变更平台的界面展示。本实施例中,采用上线集群的标识对应的备数据库进行备份,以防止采用主数据库进行备份时,对主数据库的安全性造成影响,也防止采用从数据库进行备份时,对从数据库的线上业务造成影响。
具体执行备份的过程中,数据库的线上变更平台可以调用执行备份的模块如xagent在上线集群标识对应的备数据库中执行,这样的优势在于:
a)不需要维护每个实例即数据库的账号和密码信息,减少由于数据库集群的账户和密码泄露的风险,从而保证数据库集群的安全;
b)不需要考虑各数据库版本信息,按照通用数据库的部署规范,各数据库指定目录mysqldump版本是和本机mysql实例为相同版本;
执行备份的过程中,数据库的线上变更平台可以调用其Server模块将备份结构写入文件,由xagent模块以拉取文件的方式,拉取完成后校验文件md5,能够避免网络传输的过程中出现特殊符号造成传输中断或传输和接收数据不一致的情况。
且执行备份的过程中,由xagent模块调用本地的mysqldump进行备份,并产生SQL语句用于后续DBA恢复数据的参考。如果备份文件较小用户可通过界面获取备份数据,若文件数据较大,数据库的线上变更平台可以在界面提示DBA获取备份文件。
在备份的过程中,由Server模块向xagent模块发送备份结构文件和md5,由于数据备份过程中可能耗时较长,这里设计为异步过程。如果xagent模块成功拉取文件并校验md5正确,此时Server模块清理备份结构,xagent模块调用备份mysqldump命令开始备份过程,调用mysql生成备份SQL文件。
本实施例的备份数据,是用于后续若线上变更失败,便可以基于备份数据恢复线上变更前的数据,这样可以有效地保证,即使线上变更失败,也能够有效地保证数据的安全性。
103、按照预设的变更策略,采用上线SQL对上线集群的标识对应的数据库集群进行变更。
本实施例中,按照上述实施例的流程,对上线集群的标识对应的数据库集群备份完以后,便可以按照预设的变更策略,采用上线SQL对上线集群标识对应的数据库集群进行变更。本实施例中,可以仅采用上线SQL对上线集群标识对应的主数据库进行变更。由于主数据库和备数据库本身就存在数据同步的机制,本实施例中,优选地,仅对主数据库进行变更,后续主数据库集群会采用其同步机制将变更的数据同步至相应的从数据库中。当然也可以同时对主数据库和/或从数据库进行变更。
本实施例的预设的变更策略可以为备份完直接执行变更,此时,数据库的线上变更平台可以在界面展示执行提示,以告知相关人员。为了避免对数据库中的正常业务的影响,也可以根据历史周期,设定在低峰时执行变更。或者也可以根据需求,设置在其他时间点执行变更,在此不再一一举例赘述。
本实施例中,具体地可以由数据库的线上变更平台中的xagent模块在上线集群的标识对应的备数据库中执行变更。需要说明的是,xagent模块执行变更前,还需要执行如下操作:
(1)判断要变更的当前数据库的read_only值,如果为0继续执行,否则,表示当前数据库不为主数据库,中止执行;
(2)创建普通账号,该帐号没有super权限。使用非super权限账号的优势在于可以有效防止在判断read_only之后和连接数据库之前发生了主从切换,从而防止集群双写带来数据库不一致情况的发生;
(3)开始执行上线SQL语句,为了使参与者可以很清晰的看到执行的结果报表,可以对不同执行类型展示不同的结果;
例如,a)select操作会显示执行结果;b)DML操作会显示当前执行影响行数;c)DDL操作会显示执行后的表结构show create table xxx等等。
本实施例数据库的线上变更方法,通过采用上述方案可以实现数据库的线上变更,本实施例的技术方案中,全程由数据库的线上变更平台自动完成,与现有技术的人工实现上线相比,减少上线需投入人力成本和时间成本,降低了上线的复杂度,能够有效地提升上线变更的效率。而且,本实施例中采用数据库的线上变更平台代替人工参与语法检测和内容审核,大大降低上线出错概率。
图6为本发明的数据库的线上变更方法实施例二的流程图。本实施例中以一次上线包括多句上线SQL,且需要DBA来审批的一种场景为例,来描述本发明的技术方案。
200、上线请求者在数据库的线上变更平台的界面输入本次上线的多条上线SQL语句以及上线集群名称,并标记本次上线的上线单名称,点击上线请求按钮,触发上线请求;
201、数据库的线上变更平台通过检测界面获取到上线请求者输入的多条上线SQL语句以及上线集群名称;
202、数据库的线上变更平台对SQL语句进行语法检测,并判断检测是否通过,若检测通过,执行步骤203;否则若未通过,执行步骤204;
具体地语法检测方式可以参考上述图1所示实施例的记载,在此不再赘述。
203、数据库的线上变更平台对SQL语句进行内容审核,并判断审核是否通过;若内容审核通过,执行步骤205;否则,若内容审核未通过,执行步骤206;
同理,具体地内容审核的方式可以参考上述图1所示实施例的记载,在此不再赘述。
204、数据库的线上变更平台生成语法检测未通过的提示意见,并在界面展示,供上线请求者参考,结束。
上线请求者根据提示意见修改后,可以继续按照上述流程发起上线请求。
205、数据库的线上变更平台生成审核报告,并在界面上展示审核报告;执行步骤207;
如上述图1所示实施例的记载,该内容审核报告中可以包括数据库的线上变更平台根据总计影响行数和预设的行数阈值,获取的备份类型,以供请求者参考。
206、数据库的线上变更平台生成内容审核未通过的提示意见,并在界面展示,供上线请求者参考,结束。
同理,上线请求者根据提示意见修改后,可以继续按照上述流程发起上线请求。
207、数据库的线上变更平台根据预先配置的审批策略,向DBA对应的账户发送携带审核报告的审批请求;执行步骤208;
DBA通过登录数据库线上变更平台可以看到该审批请求,结合审核报告判断是否同意本次审批,若同意,点同意上线按钮,若不同意,点拒绝上线按钮,并在界面输入不同意上线的原因,以供上线请求者查看。或者DBA在同意上线请求时,为了保证数据的安全性,甚至可以根据审核报告,直接手动触发选择全量备份启动备份。
本实施例中,以预先配置的审批策略中,需要向DBA审批为例,实际应用中,若需要向其他人员申请审批,按照类似流程发起审批即可。
208、数据库的线上变更平台判断DBA对应的账户返回的结果是否为审批通过,若是通过,执行步骤209;否则,若不通过,展示不通过的原因,结束。
209、数据库的线上变更平台向上线请求者展示审核报告中的备份类型;执行步骤210;
若备份类型为全量备份,但是上线请求者认为全量备份耗时过长,可以选择差量备份。
210、数据库的线上变更平台检测并接收上线请求者选择的备份类型,并按照备份类型,在上线集群名称对应的备数据库中对各条上线SQL语句对应的表进行备份;执行步骤211;
本实施例中的备份是为了防止变更失败,便于DBA根据备份的数据来恢复原数据。本实施例中可以预先配置备份的路径,便于DBA能够准确获取到备份的数据。
211、数据库的线上变更平台按照预设的变更策略,采用多条SQL对上线集群名称对应的主数据库集群进行变更。
本实施例中,为了提升效率,仅对上线集群名称对应的主数据库集群,在数据库集群内容,再按照主数据库与备数据库的同步策略,同步两者的数据。
本实施例数据库的线上变更方法,通过采用上述方案可以实现数据库的线上变更,本实施例的技术方案中,全程由数据库的线上变更平台自动完成,与现有技术的人工实现上线相比,减少上线需投入人力成本和时间成本,降低了上线的复杂度,能够有效地提升上线变更的效率。而且,本实施例中采用数据库的线上变更平台代替人工参与语法检测和内容审核,大大降低上线出错概率。而且,本实施例中,通过增加人工审核,进一步提高了线上变更的安全性。
图7为本发明的数据库的线上变更平台实施例一的结构图。如图7所示,本实施例的数据库的线上变更平台,具体可以包括:
获取模块10用于检测并获取外部触发的上线请求,上线请求包括上线SQL和上线集群的标识;
检测与审核模块11用于对获取模块10获取的上线请求中的上线SQL进行语法检测和内容审核;
备份模块12用于在检测与审核模块11通过后,对获取模块10获取的上线请求中的上线集群的标识对应的数据库集群进行备份;
变更执行模块13用于在备份模块12备份完成后被触发启动,按照预设的变更策略,采用上线SQL对上线集群的标识对应的数据库集群进行变更。
本实施例的数据库的线上变更平台,通过采用上述模块实现数据库的线上变更的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图8为本发明的数据库的线上变更平台实施例二的结构图。如图8所示,本实施例的数据库的线上变更平台,在上述图8所示实施例的技术方案的基础上,还可以包括如下技术方案。
如图8所示,本实施例的数据库的线上变更平台中,检测与审核模块11,包括:
检测单元111用于对获取模块10获取的上线请求中的上线SQL进行语法检测;
审核单元112用于并在检测单元111检测通过时,对获取模块10获取的上线请求中的上线SQL进行内容审核。
进一步可选地,如图8所示,本实施例的数据库的线上变更平台中,还包括:
生成模块14用于若检测单元1111对上线SQL语法检测未通过时,生成未通过的提示意见;
展示模块15用于在界面展示生成模块14生成的未通过的提示意见,供上线请求者参考。
进一步可选地,审核单元112用于:
通过对获取模块10获取的上线请求中的上线SQL进行语义检查,检测上线集群的标识对应的上线集群中是否包括有上线SQL中对应的表或列;若包括,获取上线影响信息。
进一步可选地,审核单元112具体用于:
获取上线SQL对应的上线类型;
根据上线类型获取对应的上线影响指标。
进一步可选地,审核单元112具体用于:
若上线类型为DDL变更,获取上线集群的标识对应的备数据库计算的各上线SQL上线后的单条SQL的最大影响行数、以及总计影响行数;
若上线类型为DML变更,获取上线集群的标识对应的备数据库计算的各上线SQL上线后的单条插入SQL的最大影响行数、删除单条SQL的最大影响行数、变更单条SQL的最大影响行数、以及总计影响行数。
进一步可选地,本实施例的数据库的线上变更平台中:
获取模块10还用于根据总计影响行数和预设的行数阈值,获取备份类型;
展示模块15还用于展示备份类型,以供上线请求者确认是否选择备份类型;
备份模块12具体用于根据上线请求者选择的备份类型,对上线集群的标识对应的备数据库进行备份。
进一步可选地,如图8所示,本实施例的数据库的线上变更平台中还包括审批处理模块16用于:
根据预先配置的审批策略,向预设的审批账号发起携带审核单元112获取的上线影响指标的审批请求,以供审批账号对应的审批人员根据上线影响指标对上线请求进行审批;
并接收审批账号返回的审批通过的消息。
本实施例的数据库的线上变更平台,通过采用上述模块实现数据库的线上变更的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图9为本发明的计算机设备实施例的结构图。如图9所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序,当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图1和图6所示实施例的数据库的线上变更方法。图9所示实施例中以包括多个处理器30为例。
例如,图10为本发明提供的一种计算机设备的示例图。图10示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图10显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,系统存储器28a,连接不同系统组件(包括系统存储器28a和处理器16a)的总线18a。
总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12a典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28a可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34a可以用于读写不可移动的、非易失性磁介质(图10未显示,通常称为“硬盘驱动器”)。尽管图10中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。系统存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1-图8各实施例的功能。
具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如系统存储器28a中,这样的程序模块42a包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图1-图8各实施例中的功能和/或方法。
计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器16a通过运行存储在系统存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的数据库的线上变更方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的数据库的线上变更方法。
本实施例的计算机可读介质可以包括上述图10所示实施例中的系统存储器28a中的RAM30a、和/或高速缓存存储器32a、和/或存储系统34a。
随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。
本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (18)

1.一种数据库的线上变更方法,其特征在于,所述方法包括:
检测并获取外部触发的上线请求,所述上线请求包括上线SQL和上线集群的标识;
对所述上线SQL进行语法检测和内容审核;
在所述语法检测和内容审核通过后,对所述上线集群的标识对应的数据库集群进行备份;
按照预设的变更策略,采用所述上线SQL对所述上线集群的标识对应的数据库集群进行变更。
2.根据权利要求1所述的方法,其特征在于,对所述上线SQL进行语法检测和内容审核,包括:
对所述上线SQL进行语法检测;
并在检测通过时,对所述上线SQL进行内容审核。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若对所述上线SQL语法检测未通过时,生成未通过的提示意见,并在所述界面展示,供上线请求者参考。
4.根据权利要求2所述的方法,其特征在于,对所述上线SQL进行内容审核,包括:
通过对所述上线SQL进行语义检查,检测所述上线集群的标识对应的上线集群中是否包括有所述上线SQL中对应的表或列;
若包括,获取上线影响信息。
5.根据权利要求4所述的方法,其特征在于,获取上线影响信息,包括:
获取所述上线SQL对应的上线类型;
根据所述上线类型获取对应的上线影响指标。
6.根据权利要求5所述的方法,其特征在于,根据所述上线类型获取对应的上线影响指标,包括:
若所述上线类型为DDL变更,获取所述上线集群的标识对应的备数据库计算的各所述上线SQL上线后的单条SQL的最大影响行数、以及总计影响行数;
若所述上线类型为DML变更,获取所述上线集群的标识对应的备数据库计算的各所述上线SQL上线后的单条插入SQL的最大影响行数、删除单条SQL的最大影响行数、变更单条SQL的最大影响行数、以及总计影响行数。
7.根据权利要求6所述的方法,其特征在于,对所述上线集群的标识对应的数据库集群进行备份之前,所述方法还包括:
根据所述总计影响行数和预设的行数阈值,获取备份类型;
展示所述备份类型,以供所述上线请求者确认是否选择所述备份类型;
所述对所述上线集群的标识对应的数据库集群进行备份,具体包括:根据所述上线请求者选择的所述备份类型,对所述上线集群的标识对应的备数据库进行备份。
8.根据权利要求1所述的方法,其特征在于,对所述上线请求进行语法检测和内容审核之后,对所述上线集群的标识对应的数据库集群进行备份之前,所述方法还包括:
根据预先配置的审批策略,向预设的审批账号发起携带所述内容审核的结果的审批请求,以供所述审批账号对应的审批人员根据所述内容审核的结果对所述上线请求进行审批;
并接收所述审批账号返回的审批通过的消息。
9.一种数据库的线上变更平台,其特征在于,所述平台包括:
获取模块,用于检测并获取外部触发的上线请求,所述上线请求包括上线SQL和上线集群的标识;
检测与审核模块,用于对所述上线SQL进行语法检测和内容审核;
备份模块,用于对所述上线集群的标识对应的数据库集群进行备份;
变更执行模块,用于按照预设的变更策略,采用所述上线SQL对所述上线集群的标识对应的数据库集群进行变更。
10.根据权利要求9所述的平台,其特征在于,所述检测与审核模块,包括:
检测单元,用于对所述上线SQL进行语法检测;
审核单元,用于并在检测通过时,对所述上线SQL进行内容审核。
11.根据权利要求10所述的平台,其特征在于,所述平台还包括:
生成模块,用于若所述检测单元对所述上线SQL语法检测未通过时,生成未通过的提示意见;
展示模块,用于在所述界面展示,供上线请求者参考。
12.根据权利要求10所述的平台,其特征在于,所述审核单元,用于:
通过对所述上线SQL进行语义检查,检测所述上线集群的标识对应的上线集群中是否包括有所述上线SQL中对应的表或列;
若包括,获取上线影响信息。
13.根据权利要求12所述的平台,其特征在于,所述审核单元,具体用于:
获取所述上线SQL对应的上线类型;
根据所述上线类型获取对应的上线影响指标。
14.根据权利要求13所述的平台,其特征在于,所述审核单元,具体用于:
若所述上线类型为DDL变更,,获取所述上线集群的标识对应的备数据库计算的各所述上线SQL上线后的单条SQL的最大影响行数、以及总计影响行数;
若所述上线类型为DML变更,获取所述上线集群的标识对应的备数据库计算的各所述上线SQL上线后的单条插入SQL的最大影响行数、删除单条SQL的最大影响行数、变更单条SQL的最大影响行数、以及总计影响行数。
15.根据权利要求14所述的平台,其特征在于:
所述获取模块,还用于根据所述总计影响行数和预设的行数阈值,获取备份类型;
所述展示模块,还用于展示所述备份类型,以供所述上线请求者确认是否选择所述备份类型;
所述备份模块,具体用于根据所述上线请求者选择的所述备份类型,对所述上线集群的标识对应的备数据库进行备份。
16.根据权利要求1所述的平台,其特征在于,所述平台还包括审批处理模块,用于:
根据预先配置的审批策略,向预设的审批账号发起携带所述上线影响指标的审批请求,以供所述审批账号对应的审批人员根据所述上线影响指标对所述上线请求进行审批;
并接收所述审批账号返回的审批通过的消息。
17.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN201910758965.XA 2019-08-16 2019-08-16 数据库的线上变更方法及平台、计算机设备及可读介质 Pending CN110489436A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910758965.XA CN110489436A (zh) 2019-08-16 2019-08-16 数据库的线上变更方法及平台、计算机设备及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910758965.XA CN110489436A (zh) 2019-08-16 2019-08-16 数据库的线上变更方法及平台、计算机设备及可读介质

Publications (1)

Publication Number Publication Date
CN110489436A true CN110489436A (zh) 2019-11-22

Family

ID=68551432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910758965.XA Pending CN110489436A (zh) 2019-08-16 2019-08-16 数据库的线上变更方法及平台、计算机设备及可读介质

Country Status (1)

Country Link
CN (1) CN110489436A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968569A (zh) * 2019-12-19 2020-04-07 广州品唯软件有限公司 数据库的管理方法、数据库的管理装置及存储介质
CN111651431A (zh) * 2020-06-09 2020-09-11 中国雄安集团数字城市科技有限公司 一种面向数据库服务的管理流程标准化方法
CN111813439A (zh) * 2020-07-17 2020-10-23 前海人寿保险股份有限公司 发布材料质量控制方法、装置、设备和计算机存储介质
CN112328218A (zh) * 2020-11-03 2021-02-05 中国平安人寿保险股份有限公司 一种脚本的执行方法、执行装置、计算机设备和介质
CN113111066A (zh) * 2021-04-20 2021-07-13 长沙市到家悠享网络科技有限公司 一种数据库操作工单自动上线方法、装置、系统和计算机设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968569A (zh) * 2019-12-19 2020-04-07 广州品唯软件有限公司 数据库的管理方法、数据库的管理装置及存储介质
CN110968569B (zh) * 2019-12-19 2023-12-29 广州品唯软件有限公司 数据库的管理方法、数据库的管理装置及存储介质
CN111651431A (zh) * 2020-06-09 2020-09-11 中国雄安集团数字城市科技有限公司 一种面向数据库服务的管理流程标准化方法
CN111813439A (zh) * 2020-07-17 2020-10-23 前海人寿保险股份有限公司 发布材料质量控制方法、装置、设备和计算机存储介质
CN111813439B (zh) * 2020-07-17 2024-03-29 前海人寿保险股份有限公司 发布材料质量控制方法、装置、设备和计算机存储介质
CN112328218A (zh) * 2020-11-03 2021-02-05 中国平安人寿保险股份有限公司 一种脚本的执行方法、执行装置、计算机设备和介质
CN113111066A (zh) * 2021-04-20 2021-07-13 长沙市到家悠享网络科技有限公司 一种数据库操作工单自动上线方法、装置、系统和计算机设备

Similar Documents

Publication Publication Date Title
CN110489436A (zh) 数据库的线上变更方法及平台、计算机设备及可读介质
CN104461858B (zh) 软件兼容性预先测试方法与其系统
CN111506444A (zh) 表单的审批方法、装置、存储介质及电子设备
CN109308285A (zh) 数据库脚本管理方法、装置、计算机设备及存储介质
CN109074362A (zh) 分布式系统中的拆分和移动范围
CN110750584A (zh) 数据管理方法和系统
CN104679717A (zh) 集群弹性部署的方法和管理系统
CN109783543A (zh) 数据查询方法、装置、设备和存储介质
CN108875061A (zh) 一种分布式文件系统的一致性测试方法及相关装置
WO2022048357A1 (zh) 交易背书方法、装置及存储介质
CN106326226B (zh) 一种公有云上启动数据库服务的方法及系统
CN111695876A (zh) 审批流程处理方法、装置、设备及存储介质
US6813531B2 (en) Method, system, and article of manufacture for product configuration
CN113220633A (zh) 统一文件编码管理方法及系统
CN106557308A (zh) 一种软件持续集成方法及装置
CN108846053A (zh) 数据副本管理方法、装置、设备、系统及可读存储介质
WO2021012565A1 (zh) 业务系统测试方法、装置、设备及存储介质
CN110198327A (zh) 一种数据传输方法及相关设备
CN113190531A (zh) 一种数据库迁移方法、装置、设备和存储介质
CN104866242A (zh) 一种数据删除系统、方法及数据删除中心
CN112579352A (zh) 业务数据处理链路的质量监控结果生成方法、存储介质及质量监控系统
US10558507B1 (en) Inbound testing tool
CN110716922A (zh) 基于Inception的数据库运维方法、装置、计算机设备及存储介质
CN116089439A (zh) 一种动态表单的修改方法及装置
US11775398B2 (en) Rollback of services with a global variable change

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