4GB以上需修改排序规则的bacpac文件如何成功导入Azure SQL?
可以通过7Zip工具配置避免4GB以上bacpac被识别为多磁盘ZIP格式,具体解决方法如下:
问题根因
- 4GB是标准ZIP格式的容量临界点,Windows原生压缩工具处理超过4GB的压缩包时,会默认生成ZIP64(即提示中的多磁盘ZIP)格式,而Azure SQL的bacpac导入服务暂不支持该格式
- Windows原生压缩工具修改超大压缩包内的文件后重新打包,会破坏原有压缩包结构,导致系统提示压缩包已损坏
操作步骤
1. 修改bacpac内的配置文件
- 安装7Zip后,右键点击原始.bacpac文件,选择用7Zip直接打开,不要修改后缀后用Windows原生工具解压
- 仅单独提取
model.xml和Origin.xml两个文件到本地,无需解压整个4GB压缩包 - 修改
model.xml中的排序规则为SQL_Latin1_General_CP1_CI_AS,重新计算model.xml的校验和后更新Origin.xml中的对应字段
2. 重新打包为符合要求的bacpac
- 将修改后的
model.xml和Origin.xml直接拖回7Zip打开的原bacpac窗口,覆盖原有两个文件即可,无需全量重新打包 - 如果需要全量重新打包,在7Zip的「添加到压缩包」界面按以下配置操作:
- 压缩格式选择
zip - 压缩级别选择普通
- 关键参数:
Zip64选项设置为从不 - 压缩完成后将文件后缀修改为.bacpac
- 压缩格式选择
3. 导入验证
- 用7Zip打开新生成的.bacpac文件,确认可以正常读取所有内容,无损坏提示
- 重新提交Azure导入操作即可
注意事项
- 所有压缩、解压、修改操作都不要使用Windows原生压缩工具,全程使用7Zip完成
- 不要手动随意修改
Origin.xml内的其他字段,校验和计算错误也会导致导入失败
内容的提问来源于stack exchange,提问作者DinahMoeHumm
相关产品推荐
相关产品推荐

