Azure数据库导出表、备份至VPS及表索引结构复制操作问题咨询
问题1:Azure测试数据库备份到同环境Azure VPS的操作方案
你遇到的SSMS无法直接备份到VPS的问题,是因为低价测试用的Azure SQL数据库(PaaS部署模式)默认没有VPS磁盘的访问权限,按以下步骤操作即可完成备份:
- 优先推荐轻量方案:
- 用SSMS连接源Azure测试数据库,右键库名选择任务→导出数据层应用程序
- 导出设置里选择路径保存
.bacpac文件,可直接选择已经提前开了文件共享权限的VPS磁盘路径,也可以先存到本地再手动传到VPS - 在VPS中打开SSMS,右键要还原到的SQL实例,选择导入数据层应用程序,选中刚才的
.bacpac文件按向导操作即可完成备份还原
- 如需生成标准
.bak备份文件,可走Blob存储中转:- 在Azure门户为源SQL Server创建一个Blob存储容器,生成SAS令牌
- 在SSMS中执行备份命令:
BACKUP DATABASE [你的数据库名称] TO URL = 'https://<存储账户名>.blob.core.windows.net/<容器名>/<备份文件名>.bak' WITH CREDENTIAL = '<你创建的SAS凭证名称>'- 把Blob存储里的
.bak文件下载到VPS本地,用普通RESTORE DATABASE命令还原即可
问题2:生成脚本复制库结构实现跨设备迁移的方案
完全可以,该方式兼容性更强,适合迁移到非Azure的任意SQL Server环境,操作步骤:
- 用SSMS连接源Azure测试数据库,右键库名选择任务→生成脚本
- 向导页选择你需要导出的对象,可选择整个库的所有表、索引,也可以单独勾选指定表
- 点击高级按钮,在弹出的配置中做如下设置:
- 「要编写脚本的数据的类型」:只需要结构选仅限架构,需要同步测试数据选架构和数据
- 「编写索引脚本」「编写主键脚本」「编写外键脚本」等需要保留的结构选项,全部设置为是
- 选择脚本保存路径,生成完成后拿到
.sql文件,在目标设备的SQL Server实例中直接执行该脚本,即可完全复刻你需要的表结构、索引、约束等内容
内容的提问来源于stack exchange,提问作者pvg1975
相关产品推荐
相关产品推荐

