Come posso sincronizzare i processi di SQL Server Agent tra gli host primari e secondari nella mia istanza Multi-AZ di RDS per SQL Server?

4 minuti di lettura
0

Desidero sincronizzare i processi di SQL Server Agent tra gli host primari e secondari nel mio Amazon Relational Database (Amazon RDS) per l'istanza Multi-AZ di Microsoft SQL Server. Come posso farlo?

Breve descrizione

Amazon RDS per SQL Server utilizza l'opzione Always On/Mirroring per la configurazione Multi-AZ dietro le quinte. I processi di SQL Server Agent sono archiviati nel database di sistema msdb. Questo database di sistema non viene replicato come parte dell'implementazione Multi-AZ. Pertanto, i processi di SQL Server Agent non vengono sincronizzati automaticamente. Devi creare nuovamente i processi sul nuovo sistema primario dopo il failover. Tuttavia, i processi restano disponibili nel vecchio sistema primario in cui sono stati originariamente creati. Se esegui il failback dell'istanza alla versione principale precedente (dove sono stati inizialmente creati i processi), questi saranno comunque visualizzati. Per creare i processi nel Multi-AZ, devi crearli prima nell'istanza primaria (attiva). Quindi, devi eseguire il failover dell'istanza RDS e creare gli stessi processi nella nuova istanza primaria.

Per evitare di creare manualmente i processi sul nuovo sistema principale, attiva la replica dei processi di SQL Agent. Quando la replica dei processi è attivata nell'ambiente Multi-AZ, i processi di SQL Server Agent vengono copiati automaticamente dall'host principale all'host secondario. Non è necessario creare i processi manualmente sulla nuova replica primaria perché sono stati sincronizzati tramite la funzionalità di replica dell'agente. I processi sono disponibili in entrambe le repliche.

Per ulteriori informazioni, consulta Implementazioni Multi-AZ per Amazon RDS per Microsoft SQL Server.

Risoluzione

Attivazione della funzionalità di replica dell'agente SQL

Esegui la procedura riportata con l'account amministratore sull'istanza principale per attivare la replica dei processi di SQL Server Agent.

Nota importante: assicurati di eseguire questa procedura sull'istanza in cui sono disponibili tutti i processi dell'agente. Se l'istanza senza i processi dell'agente disponibili diventa l'istanza principale e si attiva questa funzionalità, tutti i processi sull'istanza secondaria vengono eliminati. Nota inoltre che tutti i processi esistenti e appena creati vengono replicati come parte di questa funzionalità.

EXECUTE msdb.dbo.rds_set_system_database_sync_objects
@object_types = 'SQLAgentJob';

Verifica che la funzionalità di replica dell'agente SQL sia attivata

Utilizza la seguente query per verificare che la funzionalità di replica sia attivata:

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

La query precedente restituisce SQLAgentJob per object_class se la funzionalità di replica è attivata. Se la query non restituisce nulla, allora la funzionalità non è attivata.

Verifica di quando i processi nuovi e modificati sono stati sincronizzati l'ultima volta con il sistema secondario

Utilizza la seguente query per controllare il parametro last_sync_time della replica:

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

Nei risultati della query, se l'ora di sincronizzazione è successiva all'ora di aggiornamento o creazione del processo, il processo viene sincronizzato con il sistema secondario.

Nota: se non conosci l'ora della creazione o dell'aggiornamento del processo, esegui la query riportata per recuperare il timestamp, quindi esegui la query precedente:

select name as 'JobName'
,JobStatus = CASE
    When enabled =1 Then 'Active'
    Else 'Inactive'
    END
,date_created As 'JobCreatedOn' ,date_modified as 'LastModified'
from msdb..sysjobs

Nota: la sincronizzazione dei processi tra le repliche richiede alcuni minuti.

Se desideri eseguire il failover del database per confermare che i processi sono stati replicati, prima di procedere con il failover Multi-AZ attendi che last_sync_time venga aggiornato.

Status dei processi sul sistema secondario

Un SQL Server Agent XP è nello stato Disabled (Disabilitato) con o senza l'utilizzo della funzionalità di replica sulla replica secondaria. Pertanto, i processi non vengono eseguiti sul server secondario.

Categorie di processi supportate e non supportate per la replica dei processi dell'agente

I processi nelle seguenti categorie vengono replicati:

  • [Senza categoria (locale)]
  • [Senza categoria (multi-server)]
  • [Senza categoria]
  • Data Collector
  • Database Engine Tuning Advisor
  • Manutenzione del database
  • Testo completo

Nota: vengono replicati solo i processi che utilizzano il tipo di passaggio T-SQL.

Di seguito sono elencate le categorie che non supportano la replica:

  • Processi con tipi di passaggi come SQL Server Integration Services (SSIS), SQL Server Reporting Services (SSRS), replica e PowerShell.
  • Processi che utilizzano Database Mail e oggetti a livello di server.

Disattivazone della replica dei processi di SQL Server Agent

Per disattivare la replica dei processi di SQL Server Agent, emetti il seguente comando:

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = '';

Dopo aver disattivato la replica, le modifiche ai processi esistenti e appena creati non saranno più sincronizzate con l'altra replica.