Etiket arşivi: alwayson job oluşturmak

Mssql AlwaysOn Sistemlerde Job Tanımlamak

Alwayson 2 node lu sistem üzerinde 1 primary replikanız ve 1 secondary(daha fazla da olabilir) replikanız olur, primary replika açık ve yazılabilir durumdadır, eğer bu sistem üzerinde job tanımlamak istersek primary node değişebileceğinden jobı her iki instanceda da oluşturup sql ile primary olup olmadığını kontrol etmeliyiz. Çalıştırmak istediğimiz iş sadece primary de çalışmalı.

Jobı hem primaryde hem de secondaryde oluşturacağız hangi sunucu primary ise orada execute edilecek, secondarylerde sadece job çalışıp bir şey yapmadan tamamlanacaktır, failover yaptığınızda da yeni primary üzerinden çalışmaya devam edecektir. Job ın içeriğine aşağıdaki sql i ekliyoruz, Çalışmasını istediğiniz sqli aşağıdaki begin end arasına tanımlayabilirsiniz.

---- Job içeriğine konulacak içerik...
DECLARE @RoleDesc NVARCHAR(60)

SELECT @RoleDesc = a.role_desc
    FROM sys.dm_hadr_availability_replica_states AS a
    JOIN sys.availability_replicas AS b
        ON b.replica_id = a.replica_id
WHERE b.replica_server_name = @@SERVERNAME

IF @RoleDesc = 'PRIMARY'
BEGIN
    Print 'Aktif Node üzerindesiniz, burası çalışacak.'  ---- Çalışacak işleri bu bloğa yazın..
END
ELSE
    Print 'Pasif node üzerindesiniz içerik çalışmayacak..'