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

时间:2018-12-07 11:37:41

标签: sql-server azure azure-sql-database

复制Azure SQL数据库时遇到问题。我们正在复制的数据库具有一个在线副本,它是地理复制的一部分,可通过Azure门户进行访问和配置。

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

例如,我运行以下SQL:

ALTER DATABASE <DatabaseName> SET SINGLE_USER WITH ROLLBACK IMMEDIATE

我得到的答复是:

  

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

我尝试运行:

ALTER DATABASE <DatabaseName> SET PARTNER OFF; 

azure-sql不支持此功能,因此我得到以下响应:

  

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

数据库副本的Azure门户显示“未配置Geo-Replication”

有人可以指出正确的方向,告诉我数据库副本它不再是任何复制的一部分吗?

4 个答案:

答案 0 :(得分:1)

在Conor答案中,您还可以尝试将数据库导出为bacpac,然后将其导入为新数据库。 documentation,您将找到如何将数据库导出到Azure存储帐户。

答案 1 :(得分:0)

我会问工程团队。从概念上讲,在复制完成之前,它可能是副本集的一部分。

您的替代方法应该可以正常运行,而不会出现任何问题,例如您看到的解除阻塞的方法,即从“现在”还原备份,这将从最近的备份中为您创建数据库的新副本(差异备份,这样您就可以在指定的时间点之前获得所有更改)。试试看,看看是否能满足您的需求。

答案 2 :(得分:0)

alter database current set single_user with rollback immediate

在Azure SQL数据库中始终失败,

  

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

您将看到Azure SQL数据库的ALTER DATABASE不受支持的语法中的single_user。相反,您可以设置RESTRICTED_USER:

<db_update_option> ::=  
  { READ_ONLY | READ_WRITE }  

<db_user_access_option> ::=  
  { RESTRICTED_USER | MULTI_USER }  
  

RESTRICTED_USER

     

RESTRICTED_USER仅允许   db_owner固定数据库角色以及dbcreator和sysadmin固定服务器   角色连接到数据库,但不限制其数量。所有   与数据库的连接在时间范围内断开   由ALTER DATABASE语句的终止子句指定。   数据库转换为RESTRICTED_USER状态后,   不合格用户的连接尝试将被拒绝。 RESTRICTED_USER   无法使用SQL数据库托管实例进行修改。

如果无法连接到Master并查看并可能杀死连接到用户数据库的会话,则将数据库设置为SINGLE_USER可能是 bad

答案 3 :(得分:0)

请参阅本文:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-copy 您无法将Azure中的数据库设置为单用户模式