public static AvailabilityDatabase GetDb(string agName, string dbName, SMO.Server server) { AvailabilityGroup ag = server.AvailabilityGroups[agName]; AvailabilityDatabase db = ag.AvailabilityDatabases[dbName]; return(db); }
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); }
/// <summary> /// Adds a database to an Availability Group. /// </summary> /// <param name="agName">Availability Group name</param> /// <param name="databaseName">Database name to be added to AG</param> /// <param name="server">smo server</param> public static void AddDatabaseToAG(string agName, string databaseName, Smo.Server server) { AvailabilityGroup ag = server.AvailabilityGroups[agName]; AvailabilityDatabase db = new AvailabilityDatabase(ag, databaseName); ag.AvailabilityDatabases.Add(db); ag.AvailabilityDatabases.Refresh(); }
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(); } }
public void AddDatabasesIntoAG(List <string> listDbNames) { AvailabilityGroup ag = primary.AvailabilityGroups[agName]; if (ag == null) { return; } foreach (string dbname in listDbNames) { AvailabilityDatabase adb = new AvailabilityDatabase(ag, dbname); adb.Create(); foreach (Smo.Server srv in secondaries) { AGDBHelper.JoinAG(dbname, agName, srv); Thread.Sleep(1000); } // wait a bit to let adb join ag } }
/// <summary> /// Join a database to an Availability Group. /// </summary> /// <param name="dbName"></param> /// <param name="agName"></param> /// <param name="server"></param> public static void JoinAG(string dbName, string agName, SMO.Server server) { AvailabilityDatabase aDb = GetDb(agName, dbName, server); aDb.JoinAvailablityGroup(); }