Ja, Sie müssen die Jobs auf allen anderen Replikaten erstellen, die diese spezifischen Jobs ausführen sollen, wenn sie das primäre Replikat wären.
Sie müssen eine eigene Logik erstellen, um festzustellen, ob / wann jeder SQL Server-Agent-Job ausgeführt wird . Möchten Sie beispielsweise einen Job nur ausführen, wenn die aktuelle Instanz das primäre Replikat einer bestimmten Verfügbarkeitsgruppe ist? Sie müssen das in Ihren Job stecken. Es kann nicht automatisch abgedeckt werden, da dies die Flexibilität der AlwaysOn AG beeinträchtigen würde. Ob Sie möchten, dass sie auf den sekundären Replikaten deaktiviert werden, liegt ganz bei Ihnen, was diese Jobs tun und wie / wann / ob sie ausgeführt werden sollen.
Denken Sie daran, dass der sekundäre Replikatserver nicht nur ein Standby-Server ist, der auf ein Failover wartet. Es könnte sich um einen voll funktionsfähigen, zugänglichen Server handeln. Aus diesem Grund wäre es eine große Behinderung, wenn jeder Job im Leerlauf sitzt.
Ja, Sie müssen Ihre Jobs auf andere Replikate übertragen und eine Logik verwenden, um festzustellen, ob der Job beim Start fortgesetzt werden soll.
Beispielsweise können Sicherungsjobs die Funktion sys.fn_hadr_backup_is_preferred_replica nutzen , indem ermittelt wird, ob das aktuelle Replikat das bevorzugte für eine bestimmte Datenbank ist. Dadurch wird abgeleitet, wie Sie Ihre Verfügbarkeitsgruppe für Sicherungseinstellungen eingerichtet haben.