开发者社区 问答 正文

RDS MSSQL FTP导入数据之bakfile corrupted 错误处理



FTP 方式迁移自建 MSSQL 数据库实例到 RDS MSSQL


可以通过 RDS 控制台 》数据库管理 》 备份文件(bak)迁入功能进行自建数据库数据导入操作。

注:

  • 具体操作步骤请参考 使用FTP迁移数据
  • 需要使用 FileZilla 3.6.0.2 或 3.5.3 版本进行传输。


2. Bak 文件损坏错误的原因和处理


在导入过程中,控制台有可能会反馈类似下面的错误信息: 导入描述:bakfile corrupted, execute sql error: RESTORE FILELISTONLY from disk = 'D:\Backup\UserRecover_4599336.bak';
完成时间:05-26 19:21:57



2.1 错误信息的原因


  • 生成备份文件的数据库实例版本不是 SQL Server 2005,SQL Server 2008 或 SQL Server 2008R2。

  • 备份文件本身有问题,或者在网络传输的过程中被损坏。


2.2 解决方法


  • MSSQL 版本问题,必须更换自建实例数据库版本,重新生成备份文件。

  • 对于备份文件本身有问题,或者在网络传输过程中损坏的问题,建议您按下面的步骤操作:use database
  • go
  • DBCC CHECKDB WITH NO_INFOMSGS


示例如图:  

在本地数据库上执行 dbcc checkdb,确保该检查成功完成;如果该检查报错,请参照微软官方文档修正错误,之后再进行 dbcc checkdb 检查,直至成功完成,完成后生成 bak 文件。 之后对于支持内网的 FTP 服务器,建议在本地生成 bak 文件的 md5 校验;然后将 bak 文件上传到 ECS 服务器上,并且比对校验,保证公网传输正确;之后请将控制台提供给您的 FTP 地址反馈给我们,我们提供对应的内网地址,从 ECS 上通过内网上传FTP进行恢复。
注:目前仅部分 FTP 服务器(ftp1.rds-internal.aliyuncs.com,ftp2.rds-internal.aliyuncs.com)支持内网使用;对于不支持内网的 FTP 服务器,请直接通过外网上传。
DBCC CHECKDB 的微软官方文档请参考: dbcc checkdb

展开
收起
云栖大讲堂 2017-11-03 16:05:23 9055 分享 版权
阿里云 AI 助理回答

在使用FTP方式迁移自建MSSQL数据库实例到阿里云RDS MSSQL时,您需要遵循以下步骤和注意事项来确保数据迁移的顺利进行:

准备工作

  1. 确认兼容性:确保您的自建SQL Server数据库版本与阿里云RDS MSSQL兼容。RDS支持SQL Server 2008、2008 R2、2012、2016等多个版本,请根据RDS的目标版本准备源数据库。

  2. 备份数据库:在自建数据库上,通过SQL Server Management Studio (SSMS) 或T-SQL命令备份数据库为.bak文件。确保备份过程中没有错误,并且数据库处于一致状态。

步骤概览

  1. 生成Bak文件并验证

    • 使用BACKUP DATABASE [DatabaseName] TO DISK = 'PathToBackupFile.bak' WITH FORMAT;命令创建备份。
    • 在本地执行DBCC CHECKDB ('DatabaseName') WITH NO_INFOMSGS;以检查数据库完整性。确保此步骤无误后继续。
  2. 计算MD5校验:在本地计算生成的.bak文件的MD5值,以便后续验证文件传输的完整性。

  3. 上传至ECS(如果适用)

    • 如果您的环境允许,将.bak文件上传至阿里云ECS服务器,这有助于利用内网上传至RDS FTP,减少网络延迟和提高稳定性。
    • 在ECS上再次验证文件的MD5值,确保传输过程中文件未被损坏。
  4. FTP上传

    • 使用推荐的FileZilla客户端版本,连接到RDS提供的FTP地址(或内网地址,如果可用)。
    • 上传.bak文件至指定目录,并在控制台开始导入过程。

错误处理

  • 遇到“bakfile corrupted”错误时,按照上述2.2节所述,检查数据库版本兼容性,重新生成并验证备份文件,确保其完整性。
  • 确保使用的FTP客户端版本正确,避免因客户端问题导致的文件损坏。

注意事项

  • 网络选择:尽量利用内网传输以提高效率和安全性,但需确认您的RDS实例是否支持内网FTP服务。
  • 时间规划:整个迁移过程可能耗时较长,特别是大数据库的备份和恢复,合理安排维护窗口。
  • 监控与日志:在操作过程中,密切关注RDS控制台的提示信息及操作日志,及时发现并解决问题。

通过以上步骤,您可以较为安全高效地完成自建MSSQL数据库到阿里云RDS MSSQL的迁移任务。您也可以通过ECS一键诊断全面排查并修复ECS问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答