复制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”
有人可以指出正确的方向,告诉我数据库副本它不再是任何复制的一部分吗?
答案 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中的数据库设置为单用户模式