예제 #1
0
        public static AvailabilityGroup GetAG(string agName, Smo.Server server)
        {
            server.Refresh();
            server.AvailabilityGroups.Refresh();
            AvailabilityGroup ag = server.AvailabilityGroups[agName];

            ag.Refresh();
            return(ag);
        }
예제 #2
0
        /// <summary>
        /// Adds a given replica to an Availability Group.
        /// </summary>
        /// <param name="agName"></param>
        /// <param name="replicaName"></param>
        /// <param name="server"></param>
        public static void AddReplicaToAG(string agName, string replicaName, Smo.Server server)
        {
            AvailabilityGroup   ag      = server.AvailabilityGroups[agName];
            AvailabilityReplica replica = new AvailabilityReplica(ag, replicaName);

            ag.AvailabilityReplicas.Add(replica);
            ag.Refresh();
            ag.AvailabilityReplicas.Refresh();
        }
예제 #3
0
        /// <summary>
        /// Checks whether the given replica is primary replica on an Availability group or not.
        /// </summary>
        /// <param name="arName">Replica name that needs to be checked</param>
        /// <param name="agName">Availability Group name</param>
        /// <param name="server">SMO Server on which being checked.</param>
        /// <returns>True if the given replica is primary, otherwise false.</returns>
        public static bool IsPrimaryReplica(string arName, string agName, SMO.Server server)
        {
            server.Refresh();
            server.AvailabilityGroups.Refresh();
            AvailabilityGroup ag = server.AvailabilityGroups[agName];

            ag.Refresh();
            return(ag.PrimaryReplicaServerName.Equals(arName));
        }
예제 #4
0
        public static SMO.AvailabilityReplica GetPrimaryReplica(string agName, SMO.Server server)
        {
            AvailabilityGroup ag = server.AvailabilityGroups[agName];

            ag.Refresh();

            foreach (SMO.AvailabilityReplica replica in ag.AvailabilityReplicas)
            {
                if (replica.Role == AvailabilityReplicaRole.Primary)
                {
                    return(replica);
                }
            }

            return(null);
        }
예제 #5
0
        public static List <SMO.AvailabilityReplica> GetSecondaryReplicas(string agName, SMO.Server server)
        {
            List <SMO.AvailabilityReplica> secondaryReplicaList = new List <AvailabilityReplica>();
            AvailabilityGroup ag = server.AvailabilityGroups[agName];

            ag.Refresh();

            foreach (SMO.AvailabilityReplica replica in ag.AvailabilityReplicas)
            {
                if (replica.Role != AvailabilityReplicaRole.Primary)
                {
                    secondaryReplicaList.Add(replica);
                }
            }

            return(secondaryReplicaList);
        }