Exemplo n.º 1
0
        /// <summary>
        /// Configure an Availability group. This performs the following steps
        /// <list type="number">
        /// <item>Join the secondary replica to the AG.</item>
        /// <item>Backup the databases from primary replica and restores it in secondary.</item>
        /// <item>Joins the database to primary.</item>
        /// </list>
        /// </summary>
        /// <param name="agName"></param>
        /// <param name="primaryReplica"></param>
        /// <param name="secondaryReplica"></param>
        /// <param name="databases"></param>
        /// <param name="fileShare"></param>
        public static void ConfigureAG(string agName, Smo.Server primaryReplica, Smo.Server secondaryReplica, IEnumerable <Database> databases, string fileShare)
        {
            ARHelper.JoinAG(agName, secondaryReplica);

            foreach (Database db in databases)
            {
                AGDBHelper.BackUpAndRestoreDatabase(fileShare, primaryReplica, secondaryReplica, db.Name);
            }

            foreach (Database db in databases)
            {
                AGDBHelper.JoinAG(db.Name, agName, secondaryReplica);
            }
        }
Exemplo n.º 2
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
            }
        }