Sql server 具有活动副本的Azure SQL数据库副本

Sql server 具有活动副本的Azure SQL数据库副本,sql-server,azure,azure-sql-database,Sql Server,Azure,Azure Sql Database,我在复制Azure SQL数据库时遇到问题。我们正在复制的数据库有一个在线副本作为地理复制的一部分,该副本可通过Azure门户获得并配置 我们使用Azure Portal copy按钮将主数据复制到不同的服务器上,但我们的数据库副本仍然认为它是副本集的一部分 例如,我运行以下SQL: ALTER DATABASE SET SINGLE_USER(立即回滚) 我得到的答复是: 无法对数据库“”执行该操作,因为它涉及数据库镜像会话或可用性组。不允许对参与数据库镜像会话或可用性组的数据库执行某些操作。

我在复制Azure SQL数据库时遇到问题。我们正在复制的数据库有一个在线副本作为地理复制的一部分,该副本可通过Azure门户获得并配置

我们使用Azure Portal copy按钮将主数据复制到不同的服务器上,但我们的数据库副本仍然认为它是副本集的一部分

例如,我运行以下SQL:

ALTER DATABASE SET SINGLE_USER(立即回滚)

我得到的答复是:

无法对数据库“”执行该操作,因为它涉及数据库镜像会话或可用性组。不允许对参与数据库镜像会话或可用性组的数据库执行某些操作。 Msg 5069,16级,状态1,第1行 ALTER DATABASE语句失败

我试着跑:

ALTER DATABASE <DatabaseName> SET PARTNER OFF; 
ALTER数据库设置伙伴关闭;
azure sql不支持此操作,因此我得到以下响应:

此版本的SQL Server不支持关键字或语句选项“PARTNER”

数据库副本的Azure门户显示“未配置地理复制”


有人能告诉我如何告诉数据库副本它不再是任何复制的一部分吗?

我将询问工程团队。在复制过程中,它在概念上可能是复制集的一部分,直到复制完成


您的替代方案应该可以在没有任何问题的情况下工作,例如您看到的使您解锁的问题,即从“现在”恢复备份,这将从最近的备份为您创建数据库的新副本(它执行差异备份,以便您在指定的时间点之前获得所有更改)。尝试一下,看看这是否能满足您的需要。

除了Conor answer之外,您还可以尝试将数据库导出为bacpac,然后将其导入为新数据库。您将了解如何将数据库导出到Azure存储帐户。

alter database current set single_user with rollback immediate
在Azure SQL数据库中始终失败,原因是:

Msg 1468,16级,状态1,第3行无法执行操作 在数据库“xxxx”上,因为它涉及数据库镜像 会话或可用性组

您将看到单个用户不符合Azure SQL数据库的受支持语法。相反,您可以设置受限用户:

<db_update_option> ::=  
  { READ_ONLY | READ_WRITE }  

<db_user_access_option> ::=  
  { RESTRICTED_USER | MULTI_USER }  
:=
{只读|读写}
::=  
{受限用户|多用户}
受限用户

受限用户只允许 db_所有者固定数据库角色和dbcreator与sysadmin固定服务器 角色连接到数据库,但不限制其数量。全部的 与数据库的连接在时间范围内断开 由ALTER DATABASE语句的termination子句指定。 数据库转换到受限用户状态后, 拒绝不合格用户的连接尝试。受限用户 无法使用SQL数据库托管实例修改


如果无法连接到主服务器并查看并可能终止连接到用户数据库的会话,则将数据库设置为单用户可能会很糟糕。

我尝试了“还原到时间点”选项,我们遇到了与直接复制相同的问题。让我澄清一下。SQL Azure中不支持您尝试运行以执行回滚的语句以及类似的语句。但是,如果从时间点还原,则会从不属于连续复制关系的备份中还原数据库的副本。因此,如果您只是从最近的备份中恢复,则根本不需要运行这些命令。谢谢您的建议。我的问题是多方面的,但这帮助最大。我希望您有时间与我们分享导致最初错误的所有事情。我很高兴我们都以这样或那样的方式帮助了你,