我在 Azure 上有一个 SQL Server 数据库,我想将其导出。在 Windows Azure 门户上,我选择数据库。在仪表板页面中,我选择“导出”,然后出现以下错误:
<html version="-//W3C//DTD XHTML 2.0//EN" xml:lang="en" xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><HEAD><TITLE>Request Error</TITLE></HEAD><BODY><DIV id="content"><P class="heading1"><B>Error Status Code:</B> 'BadRequest'</P><P><B>Details: </B>Error encountered during the service operation. ; Exception Microsoft.SqlServer.Management.Dac.Services.ServiceException:Unsupported Server Name my-server-name.database.windows.net. Please verify that the name has aplha-numeric prefix followed by .database.windows.net; </P></DIV></BODY></html>
请注意,编码显示不正确<
,而不是<
不支持的服务器名称my-server-name.database.windows.net。请验证名称是否具有 aplha-numeric 前缀,后跟 .database.windows.net;
我的服务器名称仅包含字母和连字符-
,并且以 i 开头。该服务器名称肯定有效,否则我最初就无法在 Azure 中创建数据库?
什么原因导致此错误?我该如何导出我的数据库?
编辑
我最初通过接受“-”的新“Microsoft Azure”门户创建了服务器实例。
答案1
不确定错误是什么,但您可以使用此解决方法:
下载 sqlpackage.exe 实用程序 (http://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx) 并通过 Azure 管理门户将您自己的 IP 添加到允许的 IP。
然后您可以运行如下命令:
sqlpackage.exe /a:Export /ssn:"yourdb-name.database.windows.net" /sdn:"nameOfYourDB" /su:"user" /sp:"pass" /tf:"C:\backups\db.bacpac"
答案2
这是由于 Azure 门户中的一个错误造成的。新的“预览”门户允许用户在创建新数据库时为 SQL Server 分配一个名称。但是标准门户会自动为服务器实例分配一个随机的 10 个字母数字字符名称。因此,标准门户中提供的某些功能需要字母数字名称。
为了解决这个问题,我不得不将数据库移至具有字母数字名称的新 SQL 服务器实例。之后,导出和备份功能便可正常运行。
为了移动数据库,我使用了SQL Azure 备份RedGate 的工具。我必须将数据库备份到本地实例,然后将其还原到新的 Azure SQL Server 实例。