如何从Mac上的Azure Data Studio中的bak文件还原数据库

时间:2018-11-28 07:10:15

标签: sql azure-sql-database

以前在Mac上,我使用mysql operation studio,然后单击“数据库”,然后单击“还原”,然后浏览到我的bak文件,但是现在它们更改为Azure Data Studio,当我重复相同的步骤时,出现此错误: “必须启用预览功能才能使用还原” enter image description here 但我想不出什么来启用它。我已经用谷歌搜索并尝试了一些方法,甚至在网站上打开了我的azure微软帐户,但没有看到该选项。 可以帮忙一下吗!

4 个答案:

答案 0 :(得分:9)

  • 转到Azure数据工作室>设置
  • 通过单击来编辑设置 “新设置编辑器”
  • 搜索“预览”
  • 滚动到底部,然后 选中“启用未发布的预览功能”

答案 1 :(得分:1)

将其添加为答案,因为我没有足够的评论。这是对OP中答案的评论中的问题的回答(如果还不够混乱的话!)

仅当您的sql数据库托管在Mac / Linux / Docker容器上时适用。我们没有可用的Windows服务器供我测试,以查看.bak文件的位置是否不同。

当您单击“ ...”按钮时,它将浏览到托管数据库的机器(或docker容器)上的/ var / opt / mssql / data。如果要在同一主机上备份和还原数据库,这不是问题,但是,如果要迁移到新服务器或仅创建dev / UAT / staging环境,则会成为问题,因为您没有访问var / opt / mssql / data。

这对于破解坚果型解决方案来说有点像大锤,但是当我使用2个开发箱时,对我来说并没有多大区别。

为便于理解,我将呼叫托管已备份数据库的服务器 ProdServ 和要还原到 DevServ 的服务器。

在DevServ上,在终端提示符下,导航到/ var / opt并记下mssql目录上的当前权限(我的权限为drwxrwx ---)。

$ cd /var/opt

$ ls -la

Google权限的八进制值(在我的实例中为770)

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

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

(如果这也是基于Unix的操作系统,则也需要在ProdServ上执行此操作)

通过适合您所处环境的方法将.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文件还原到该数据库。

答案 2 :(得分:0)

简单地将其添加到您的设置文件中:

"workbench.enablePreviewFeatures": true

答案 3 :(得分:0)

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