天天看点

数据库数据迁移失败,如何进行修复操作

云数据库rds(apsaradb for rds,简称rds)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于飞天分布式系统和全ssd盘高性能存储,支持mysql、sql server、postgresql和ppas(高度兼容oracle)引擎,默认部署主备架构且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

在使用阿里云提供的rds数据库产品时,在多个阶段使用数据迁移功能都提供了失败在线修复功能。主要包括的是:<b>结构迁移和全量迁移</b>。下面我们将看下在这两个迁移过程中,如何进行数据库在线修复功能的。

<b>结构迁移—失败修复</b>

如果结构迁移失败了,那么任务的状态会显示迁移失败,具体的状态及进度如下:

数据库数据迁移失败,如何进行修复操作

当出现失败时,点击“立即修复”进入修复页面。

数据库数据迁移失败,如何进行修复操作

对于每个对象,如果失败了,点击修复,进入对象修复页面

数据库数据迁移失败,如何进行修复操作

根据失败原因提示,修改结构定义语法,修改完成后点击修复,将修改后的语法重新导入到目标实例。 如果点击修复,失败原因变成修复失败,且显示修复失败原因,那么说明没有修复彻底。需要根据修复失败原因继续修复,直至修复成功。

数据库数据迁移失败,如何进行修复操作

如果修复成功,那么会回到结构迁移详情页,且刚才修复的对象的状态变成完成。 当所有的对象全部修复成功后,这个任务就会继续往下执行,例如进入全量迁移阶段。 

数据库数据迁移失败,如何进行修复操作

<b>全量迁移—失败修复</b>

对于下列几种失败原因,dts提供了修复重试的功能: 

1) 源或目标数据库连接失败,确认连接没有问题后,重试任务 

2) 源或目标数据库连接超时,确认连接没有问题后,重试任务 

3) 目标rds实例空间满,实例被锁定,需要升级rds实例规格或清理实例日志空间后,重试任务 

4) 源数据库中部分myisam被损坏,需要repair后,重试任务

其他情况下,如果全量迁移失败,dts只提供忽略操作,只能忽略失败对象后,进行其他正常对象的迁移。

如果全量迁移失败了,那么迁移任务的状态会显示“迁移失败”,具体的状态及进度如下:

数据库数据迁移失败,如何进行修复操作
数据库数据迁移失败,如何进行修复操作

如果遇到上面可以重试的错误,那么根据错误提示修复问题后,点击全量迁移详情页面的重试按钮,触发任务断点续传 

数据库数据迁移失败,如何进行修复操作

 对于其他失败原因,dts只提供“忽略”操作,即忽略掉这个对象的全量数据迁移。一旦点击忽略,那么这个对象的数据不会迁移,但是其他正常对象的数据会迁移到目标实例。