Example #1
0
        public static AvailabilityDatabase GetDb(string agName, string dbName, SMO.Server server)
        {
            AvailabilityGroup    ag = server.AvailabilityGroups[agName];
            AvailabilityDatabase db = ag.AvailabilityDatabases[dbName];

            return(db);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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();
        }
Example #4
0
        private static bool IsDbSuspendedStateReached(Object[] input)
        {
            AvailabilityDatabase db = input[0] as AvailabilityDatabase;
            bool isSuspended        = (bool)input[1];

            db.Refresh();
            return(db.IsSuspended == isSuspended);
        }
Example #5
0
        /// <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;
        }
Example #6
0
        /// <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();
            }
        }
Example #7
0
        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
            }
        }
Example #8
0
        /// <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();
        }