如何在Mac上使用Azure数据工作室从BAK文件中恢复数据库

13

之前在Mac上我使用mysql操作工具,点击数据库,然后点击还原,再浏览我的备份文件,但现在他们改成了Azure数据工作室,当我重复相同的步骤时,我遇到了这个错误:“您必须启用预览功能才能使用还原” enter image description here 但我无法弄清楚如何启用。我已经搜索并尝试了一些方法,甚至在Azure上打开了我的微软帐户,但我没有看到那个选项。有人可以帮忙吗?


一个.bak文件听起来可能更像是SQL Server而不是MySQL。您确定正确标记了这个问题吗? - ADyson
修改过了,谢谢您的评论! - user1314404
4个回答

20
  • 前往Azure Data Studios > 设置
  • 通过点击"新设置编辑器"进行编辑
  • 搜索"preview"
  • 向下滚动并勾选"启用未发布的预览功能"

1
是的,在 Mac 上我必须点击“偏好设置”,然后在搜索框中搜索:“未发布的预览版”,然后在未发布的预览版行中,我单击并将鼠标移动到笔图标上并单击并选择“true”。然后我就可以打开“立即还原”,但是,当我单击“从备份还原”选择备份文件时,“备份文件路径”单击“...”但它从未打开资源管理器以浏览文件? - user1314404

3
由于我的声望不足,无法评论,因此将其作为答案添加。这是对回复OP的问题的评论的回应(如果这还不够混乱!)。
仅当您的SQL数据库托管在Mac/Linux/Docker容器上时才适用。我们没有任何Windows服务器来测试它,看看.bak文件的位置是否有所不同。
当您单击“...”按钮时,它会浏览到托管数据库的计算机(或Docker容器)上的/var/opt/mssql/data。如果您在同一主机上备份和恢复数据库,则这不是问题,但是,如果您要迁移到新服务器或只创建一个dev/UAT/staging环境,则会成为一个问题,因为您无法访问var/opt/mssql/data。
这是一种使用大铁锤解决小问题的解决方案,但由于我正在处理两个开发框,因此对我来说并没有太大影响。
为了更易于理解,我将称托管备份数据库的服务器为ProdServ,而将要还原的服务器称为DevServ
在DevServ上,通过终端提示符导航到/var/opt,并记下mssql目录上的当前权限(我的权限为drwxrwx---)。
$ cd /var/opt

$ ls -la

搜索您权限的八进制值(在我的情况下是770)

将数据目录的权限更改为rwxrwxrwx。

$ chmod -R 777 /var/opt/mssql/data

如果ProdServ也是Unix-based操作系统,您还需要在其上执行此操作。

通过适合您当前环境的方法将.bak文件从ProdServ复制到DevServ。

对于Windows --> Linux,我会使用WinSCP。

对于Mac到Docker,docker cp <fileToCopy> <container>:<destinationPath>完全可以胜任。

一旦文件被复制过来,它们会神奇地出现在Azure Data Studio中的“...”按钮中。确保您通过相同的命令将目录权限更改回其原始值。

所以在我的情况下,只需:

$ chmod -R 770 /var/opt/mssql/data

作为额外的注释,如果您习惯于在MSSMS中工作,则该向导允许您从.bak文件创建数据库,从我所看到的情况来看,Azure Data Studio没有这样的功能。 您必须先在查询窗口中创建数据库(CREATE DATABASE <databasename>),然后将.bak文件还原到其中。

当我运行 chmod -R 775 /var/opt/mssql/data 时,收到了错误消息:“操作不允许”。 - mperk
你可能需要使用sudo命令。如果这本身不起作用,请尝试sudo chown root:root /var/opt/mssql/data,然后运行chmod命令。 - Lex

0
您可以在窗口旁边的顶部菜单中单击“查看”。 然后选择第一个选项“命令面板” 然后在命令文本框中键入“还原”,并选择“还原” 然后还原窗口就会出现。

0

将以下内容添加到您的设置文件中:

"workbench.enablePreviewFeatures": true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接