【技术实现步骤摘要】
一种关系型数据库二进制日志重放的方法和设备
本申请涉及计算机领域,尤其涉及一种关系型数据库二进制日志重放的技术。
技术介绍
随着计算机技术的不断发展,由于误操作等原因,经常会有将数据库中的数据恢复到过去时间点的需求。例如,在关系型数据库系统(MySQL)中的二进制日志(binlog)会记录与数据库中的数据相关的更新操作,而对数据库所做的定期的备份集相当于数据存档点,因此可将binlog中的记录从前到后依次应用在备份集上,就可以将数据库恢复到过去任意一个时间点的状态。现有技术中,由于二进制日志(binlog)是二进制文件且关系型数据库服务器(MySQLServer)只能执行一条条的结构化查询语句(StructuredQueryLanguage,SQL),因此在用户端(client)的用户线程中需采用二进制日志解析工具(例如mysqlbinlog)将binlog解析为结构化查询语句文本,并通过网络协议将用户线程解析出的SQL按照从前到后的顺序串行发送给MySQLServer以达到进行binlog的重放。由于binlog中有时会记录执行失败操作,然后会用一个错误码(errorcode)标志标识执行失败,此种失败操作是需要跳过的,然而现有技术中的用户线程采样二进制日志解析工具解析binlog然后应用SQL时不会跳过所述失败操作的错误码,从而直接报错,导致应用SQL进行数据的重放失败;又由于client需通过网络协议将用户线程解析出的SQL发送给MySQLServer,而协议中规定网络包的大小上限是1G,但是binlog对单个数据库的记录执行事件(event)没有限 ...
【技术保护点】
一种用于关系型数据库二进制日志重放的方法,其中,所述方法包括:从待重放关系型数据库服务设备的备份集获取待恢复的重放相关数据;获取所述重放相关数据的重放起始位点,并获取从所述重放起始位点起至重放目标位点止的需重放的二进制日志;基于中继日志规则将所述需重放的二进制日志存储于对应中继日志所在的目录下,并更新相应中继日志位点信息文件和中继日志索引文件;启动复制应用线程,解析并执行所述中继日志,以完成所述二进制日志的重放。
【技术特征摘要】
1.一种用于关系型数据库二进制日志重放的方法,其中,所述方法包括:从待重放关系型数据库服务设备的备份集获取待恢复的重放相关数据;获取所述重放相关数据的重放起始位点,并获取从所述重放起始位点起至重放目标位点止的需重放的二进制日志;基于中继日志规则将所述需重放的二进制日志存储于对应中继日志所在的目录下,并更新相应中继日志位点信息文件和中继日志索引文件;启动复制应用线程,解析并执行所述中继日志,以完成所述二进制日志的重放。2.根据权利要求1所述的方法,其中,所述获取所述重放相关数据的重放起始位点,并获取从所述重放起始位点起至重放目标位点止的需重放的二进制日志包括:获取所述重放相关数据所对应的所述二进制日志的位点,将所述重放相关数据所对应的最后一个位点确定为所述重放起始位点。3.根据权利要求1所述的方法,其中,所述获取所述重放相关数据的重放起始位点,并获取从所述重放起始位点起至重放目标位点止的需重放的二进制日志包括:获取从所述重放起始位点起的所有二进制日志;将所述所有二进制日志中对应所述重放起始位点之后的执行事件进行裁剪,以获取从所述重放起始位点起至重放目标位点止的需重放的二进制日志。4.根据权利要求1至3中任一项所述的方法,其中,所述基于中继日志规则将所述需重放的二进制日志存储于对应中继日志所在的目录下,并更新相应中继日志位点信息文件和中继日志索引文件包括:基于中继日志规则中的文件名规则对所述需重放的二进制日志进行重命名;将所重命名的所述需重放的二进制日志存储至对应的中继日志所在的目录下,确定与所述需重放的二进制日志对应的中继日志;基于从所述重放起始位点起至重放目标位点止的所有位点,更新相应中继日志位点信息文件,将所述需重放的二进制日志对应的中继日志的路径追加至相应中继日志索引文件,并更新所述相应中继日志索引文件。5.根据权利要求1至4中任一项所述的方法,其中,所述启动复制应用线程,解析并执行所述中继日志,以完成所述二进制日志的重放包括:启动关系型数据库系统中的复制应用线程;从所述重放起始位点开始,将所述需重放的二进制日志对应的中继日志中的执行事件进行重放,直至所述需重放的二进制日志对应的中继日志完成重放。6.根据权利要求1至5中任一项所述的方法,其中,所述复制应用线程为单个,所述启动关系型数据库系统中的复制应用线程包括:利用所述复制应用线程串行执行所述中继日志的执行事件。7.根据权利要求1至6中任一项所述的方法,其中,所述复制应用线程为多个,所述启动关系型数据库系统中的复制应用线程包括:利用多个所述复制应用线程并行执行所述中继日志的执行事件。8.根据权利要求1至7中任一项所述的方法,其中,所述获取所述重放相关数据的重放起始位点,并获取从所述重放起始位点起至重放目标位点止的需重放的二进制日志包括:获取从所述重放起始位点起至重放目标位点止的需重放的二进制日志,所述需重放的二进制日志包括若干执行事件及相应执行事件的事件标识。9.根据权利要求1至8中任一项所述的方法,其中,所述从所述重放起始位点开始,将所述需重放的二进制日志对应的中继日志中的执行事件进行重放,直至所述需重放的二进制日志对应的中继日...
【专利技术属性】
技术研发人员:王波,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。