Bonjour,

Je suis un stagiaire DBA, je travails sur Always On Availability Group, et je veux savoir s’il y a une méthode pour ajouter chaque base crée sur mon instance sur un groupe de disponibilité existant.

J’ai utilisé un Trigger DLL, pour automatisé ca mais le problème que on ne peut pas exécuter Backup DATABASE dans un Trigger DLL, car pour ajouter une base de donnée sur un groupe de disponibilité il faut qu’elle soit sauvegardée en full backup.

Voilà le script que j’ai utilisé : Quelqu’un peux m’aider ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/****** Object:  DdlTrigger [Add_Availability_Group]    Script Date: 06/18/2013 16:25:59 ******/
 
SET ANSI_NULLS ON
 
GO
 
SET QUOTED_IDENTIFIER ON
 
GO
 
 
ALTER TRIGGER [Add_Availability_Group] 
 
ON ALL SERVER 
 
FOR CREATE_DATABASE 
 
AS 
 
    DECLARE @database sysname;
 
    DECLARE @cmd  varchar(Max);
 
    SET @database  = EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]','nvarchar(max)')  
 
    PRINT 'Database ' + @database + ' Created.'
 
    SET @cmd = 'BACKUP DATABASE ' +@database+ ' TO  DISK = N''B:\BACKUP\ttt.back'' WITH  COPY_ONLY, FORMAT, INIT, SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 5'
 
    exec (@cmd)
 
      PRINT 'Database ' + @database + ' Backup.'
 
    ALTER AVAILABILITY GROUP [EMU-AG1]
 
    ADD DATABASE @database;
 
    PRINT 'Database ' + @database + ' ADD AVAILABILITY GROUP .'
 
   GO
 
SET ANSI_NULLS OFF
 
GO
 
SET QUOTED_IDENTIFIER OFF
 
GO
 
ENABLE TRIGGER [Add_Availability_Group] ON ALL SERVER
 
GO