Vous êtes ici :
Ce script permet de savoir si le serveur est réplica primaire pour un groupe de disponibilité. Utile pour les travaux de l’agent qui doivent le détecter pour s’exécuter ou non.
Transact-SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/*------------------------------------------------------------------- [SCRIPT] Is it the primary replica for this AG [DATABASE] master [DESCRIPTION] Renvoie 1 si c'est le réplica primaire [SOURCE] http://blogs.microsoft.co.il/yaniv_etrogi/2016/12/11/alwayson-availability-groups-and-sql-server-jobs/ [MAJ PAR] DATAFLY - Arian Papillon [DATE] 20181206 -------------------------------------------------------------------*/ USE master; GO IF OBJECT_ID('dbo.fn_hadr_group_is_primary','FN') IS NOT NULL DROP FUNCTION dbo.fn_hadr_group_is_primary GO CREATE FUNCTION dbo.fn_hadr_group_is_primary (@AGName sysname) RETURNS bit AS BEGIN DECLARE @PrimaryReplica sysname; SELECT @PrimaryReplica = hags.primary_replica FROM sys.dm_hadr_availability_group_states hags INNER JOIN sys.availability_groups ag ON ag.group_id = hags.group_id WHERE ag.name = @AGName; IF UPPER(@PrimaryReplica) = UPPER(@@SERVERNAME) RETURN 1; -- primary RETURN 0; -- not primary END; GO --SELECT dbo.fn_hadr_group_is_primary('My_AG') |
Table of Contents