首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有活动副本的Azure SQL数据库副本

带有活动副本的Azure SQL数据库副本
EN

Stack Overflow用户
提问于 2018-12-07 11:37:40
回答 3查看 1.1K关注 0票数 2

在复制Azure SQL数据库时,我遇到了一个问题。我们正在复制的数据库有一个在线副本,作为Geo复制的一部分,可以通过Azure Portal进行配置。

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

例如,我运行以下SQL:

ALTER DATABASE <DatabaseName> SET SINGLE_USER WITH ROLLBACK IMMEDIATE

我得到的回应是:

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

我试着跑:

代码语言:javascript
复制
ALTER DATABASE <DatabaseName> SET PARTNER OFF; 

这在azure-sql中不受支持,因此我得到以下方面的响应:

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

数据库副本的Azure门户声明“Geo-复制未配置”。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-07 15:59:55

添加到Conor应答时,还可以尝试将数据库导出为bacpac,然后将其作为新数据库导入。这里您将发现如何将数据库导出到Azure存储帐户。

票数 1
EN

Stack Overflow用户

发布于 2018-12-07 17:07:40

代码语言:javascript
复制
alter database current set single_user with rollback immediate

在Azure SQL数据库中总是失败,因为:

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

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

代码语言:javascript
复制
<db_update_option> ::=  
  { READ_ONLY | READ_WRITE }  

<db_user_access_option> ::=  
  { RESTRICTED_USER | MULTI_USER }  

RESTRICTED_USER RESTRICTED_USER只允许db_owner固定数据库角色的成员以及dbcreator和sysadmin固定服务器角色的成员连接到数据库,但不限制它们的数量。到数据库的所有连接在ALTER语句的终止子句指定的时间框架内断开。数据库转换到RESTRICTED_USER状态后,不合格用户的连接尝试将被拒绝。RESTRICTED_USER不能使用进行修改。

如果无法连接到主数据库,查看并可能杀死连接到用户数据库的会话,则将数据库设置为SINGLE_USER可能会很糟糕。

票数 2
EN

Stack Overflow用户

发布于 2018-12-07 13:59:51

我去问问工程队。可能是在复制期间,它在概念上是副本集的一部分,直到副本完成。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53668806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档