迁移作业流程在运行时可能会出错。
- 某些错误(例如源数据库上的密码错误)可以恢复。解决这些错误后,迁移作业会自动恢复。
- 某些错误是不可恢复的,例如数据复制中的错误。解决这些错误后,您必须重启迁移作业。
发生错误时,迁移作业状态会更改为 Failed
,并且子状态会反映失败前的最后状态。如需排查错误,请前往失败的迁移作业以查看错误,然后按照错误消息中列出的步骤操作。
如需查看有关该错误的更多详细信息,请使用迁移作业中的链接前往 Cloud Monitoring。日志会过滤到特定的迁移作业。
在下表中,您可以查看一些问题示例以及解决方法:
症状 | 可能的原因 | 可以尝试的操作 |
---|---|---|
错误消息:Cloud DMS can't set up a tunnel to be connected to the bastion host 。
|
Database Migration Service 无法访问堡垒主机,或者堡垒主机不接受连接。 | 请验证连接配置文件中的转发 SSH 隧道设置,以及堡垒主机配置,然后重试。 |
错误消息:Cloud DMS can't connect to the database 或 Cloud DMS private connectivity error, cannot connect to the database 。
|
Database Migration Service 无法与源 Oracle 数据库建立连接。 | 验证您是否可以从项目访问来源 Oracle 数据库,并确保您已在来源连接配置文件中正确配置了连接设置。 如果包含特定的 Oracle 错误代码(例如 |
错误消息:Archiving mode is not ARCHIVELOG 。
|
来源未正确配置。 | 正确配置来源。如需了解详情,请参阅配置源 Oracle 数据库。 |
错误消息:Supplemental logging ("ALL COLUMN LOGGING") isn't turned on for the tables listed below 。
|
来源未正确配置。 | 正确配置来源。如需了解详情,请参阅配置源 Oracle 数据库。 |
错误消息:No Archive Log Files were found in the source 。
|
Database Migration Service 仅读取已关闭的归档日志,但在源数据库中未找到任何日志。 |
如果数据库没有任何有效的写入操作,您可能需要执行至少 1 项 |
错误消息:We're missing the necessary permissions to read from the source 。
|
来源未正确配置。 | 正确配置来源。如需了解详情,请参阅配置源 Oracle 数据库。 |
错误消息:Unable to connect to the destination database 。
|
连接到目标数据库时出现问题。 | 验证目标 PostgreSQL 连接配置文件中的设置。如需了解专用连接,请参阅排查 Private Service Connect 错误。 |
错误消息:database {database_name} does not exist 。
|
Database Migration Service 要求目标数据库名称与用户名一致。 | 确保目标连接配置文件中指明的用户名与目标数据库名称一致。重新创建目标数据库,或创建与目标数据库匹配的其他用户名。如需了解详情,请参阅配置 Cloud SQL for PostgreSQL 目标数据库。
确保您已运行 Ora2pg 以在目标数据库中创建架构。 |
错误消息:The following tables don't exist in the destination database: {table_names}
|
您尝试迁移的列表中所列的表在目标数据库中不存在。 | 确保您已运行 Ora2pg 在目标数据库中创建架构,或修改了迁移作业设置。 |
错误消息:password authentication failed for user {username} 。
|
目标数据库的用户名或密码配置有误。 | 确保使用正确的用户名和密码正确配置目标 PostgreSQL 连接配置文件。 |
错误消息:The following tables in the destination database don't have primary keys: {table_names} 。
|
所列表存在于目标数据库中,但缺少主键。 | 确保您已运行 Ora2pg 以在目标数据库中创建架构。如果源表缺少主键,请在目标数据库中手动创建主键。 |
警告:The following tables have foreign keys: {table_names} 。
|
所列表存在于目标数据库中,但具有外键。 | Database Migration Service 不会以事务方式复制数据,因此表可能会乱序迁移。如果存在外键,并且使用外键的子表在其父表之前迁移,则可能会遇到复制错误。
为避免此类数据完整性问题,请为迁移用户使用 |
错误消息:Unable to resume replication as log position is lost 。
|
当复制过程长时间暂停时,可能会发生此错误,从而导致日志位置丢失。 | 迁移作业暂停的时长不得接近日志保留期限。出现错误时,请重新创建迁移作业。 |
错误消息:ORA-00942: table or view does not exist 。
|
此错误可能是由于 Oracle 服务器上存在缓存而导致的。 | 重新创建数据库用户以解决缓存问题。 |
迁移作业会停留在完整转储阶段,不会推进到变更数据捕获 (CDC) 阶段。 | Database Migration Service 仍在为某些表执行完整转储,或者一个或多个表因错误而无法完成完整转储。 |
|