SMO 等效于 SET HADR OFF

Posted

技术标签:

【中文标题】SMO 等效于 SET HADR OFF【英文标题】:SMO Equivalent to SET HADR OFF 【发布时间】:2015-01-14 18:38:22 【问题描述】:

在 SMO (C#) 中,什么等价于...

ALTER DATABASE db SET HADR OFF;

我已经查看了 Database 和 AvailabilityDatabase 类的文档,但没有什么能真正引起我的注意。

这里的最终目标是删除作为可用性组成员的数据库。目前,我们首先关闭 HADR,然后在所有辅助服务器上删除数据库,然后在主服务器上,从可用性组中删除数据库并将数据库删除到那里。

【问题讨论】:

好问题。我认为您无法使用 C# 以编程方式执行该操作(只能使用 SQL Server Management Studio 或 Powershell)。甚至此链接也没有提供任何信息:msdn.microsoft.com/en-us/library/hh213326.aspx 我的怀疑目前是AvailabilityDatabase.LeaveAvailabilityGroup 方法,当在辅助服务器上执行时,是等效的操作。不过,我的怀疑仍未得到证实。我将根据我的发现及时更新这个问题。感谢您的意见! 我认为你的怀疑可能是对的。明天我也会研究一下。 我不太确定,但我认为您的怀疑是正确的。不幸的是我还不能测试它。我很好奇你的发现 不幸的是,我的怀疑似乎是不正确的。当我在辅助设备上调用 LeaveAvailabilityGroup 时,我得到 The database ... failed to leave the availability group ... on the availability replica ... 【参考方案1】:

这是我使用 SMO 删除已加入 AlwaysOn 可用性组的数据库的过程...

Server primaryServer = new Server();
AvailabilityDatabase pDb = primaryServer.AvailabilityGroups[agName].AvailabilityDatabases[dbName];
pDb.SuspendDataMovement();
while (!pDb.IsSuspended)

  Thread.Sleep(1000);
  pDb.Refresh();


foreach (var secondary in secondaryServers)

  AvailabilityDatabase sDb = secondary.AvailabilityGroups[agName].AvailabilityDatabases[dbName];
  sDb.SuspendDataMovement();
  while (!sDb.IsSuspended)
  
    Thread.Sleep(1000);
    sDb.Refresh();
  

  sDb.LeaveAvailabilityGroup(); // this appears to be the equivalent of SET HADR OFF

  Database db = secondary.Databases[dbName];
  db.UserAccess = DatabaseUserAccess.Single;
  secondary.KillAllProcesses(dbName);
  db.Drop();


pDb.Drop();

Database db = primaryServer.Databases[dbName];
db.UserAccess = DatabaseUserAccess.Single;
primaryServer.KillAllProcesses(dbName);
db.Drop();

【讨论】:

以上是关于SMO 等效于 SET HADR OFF的主要内容,如果未能解决你的问题,请参考以下文章

等效于 pandas.DataFrame.set_index / drop_duplicates 与 dropDuplicates 的 Spark DataFrame

等效于 Entity Framework Core 1 (EF7) 中的 .HasOptional

Typescript GraphQL 等效于 EnumSet

FluentValidation.NET 等效于 [Display(Name)]

SVM之SMO算法(转)

AlwaysOn - 集群租用超时和 PREEMPTIVE_HADR_LEASE_MECHANISM