public static bool GetDbJoinedState(string agName, string dbName, SMO.Server server) { AvailabilityDatabase db = GetDb(agName, dbName, server); db.Refresh(); // database state is server side property, so the SMO object needs to be refreshed to get the correct value. return(db.IsJoined); }
private static bool IsDbSuspendedStateReached(Object[] input) { AvailabilityDatabase db = input[0] as AvailabilityDatabase; bool isSuspended = (bool)input[1]; db.Refresh(); return(db.IsSuspended == isSuspended); }
/// <summary> /// Verify availability database states match expected values. /// </summary> public static void VerifyDatabaseStates(SMO.Server server, string agName, string dbName, bool expJoinedState, bool expSuspendedState, AvailabilityDatabaseSynchronizationState expSyncState) { bool currState; currState = AGDBHelper.GetDbJoinedState(agName, dbName, server); currState = AGDBHelper.GetDbSuspendedState(agName, dbName, server); AvailabilityDatabase db = AGDBHelper.GetDb(agName, dbName, server); db.Refresh(); AvailabilityDatabaseSynchronizationState currSyncState = db.SynchronizationState; }
/// <summary> /// Sets database in required state. /// </summary> /// <param name="agName"></param> /// <param name="dbName"></param> /// <param name="suspend"></param> /// <param name="server"></param> private static void SetDbState(string agName, string dbName, bool suspend, SMO.Server server) { AvailabilityGroup ag = server.AvailabilityGroups[agName]; AvailabilityDatabase db = ag.AvailabilityDatabases[dbName]; db.Refresh(); // database state is server side property, so the SMO object needs to be refreshed to get the correct value. if (suspend) { db.SuspendDataMovement(); } else { db.ResumeDataMovement(); } }