在SMO (C#)中,什么是相当于.
ALTER DATABASE db SET HADR OFF;我查看了数据库和AvailabilityDatabase类的文档,没有什么能真正跳出我的视线。
这里的最终目标是删除作为可用性组成员的数据库。目前,我们首先关闭HADR,然后删除所有辅助服务器上的数据库,然后在主服务器上从可用性组中删除数据库并删除那里的数据库。
发布于 2015-01-21 20:11:17
下面是我决定使用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();https://stackoverflow.com/questions/27950110
复制相似问题