Utilizzo di repliche di lettura per Microsoft SQL Server in Amazon RDS - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di repliche di lettura per Microsoft SQL Server in Amazon RDS

Generalmente, per configurare la replica tra le istanze database di Amazon RDS si utilizzano repliche di lettura. Per informazioni generali sulle repliche di lettura, consulta Uso delle repliche di lettura dell'istanza database.

Questa sezione contiene informazioni specifiche sull'utilizzo delle repliche di lettura su Amazon RDS per SQL Server.

Configurazione delle repliche di lettura per SQL Server

Prima di poter utilizzare un'istanza database come istanza database di origine per la replica, devi abilitare i backup automatici sull'istanza database di origine. Per farlo devi impostare il periodo di retention dei backup su un valore diverso da zero. L'impostazione di questo tipo di implementazione impone anche l'attivazione dei backup automatici.

La creazione di una replica di lettura SQL Server non richiede alcuna interruzione delle attività per l'istanza database primaria. Amazon RDS imposta i parametri e le autorizzazioni necessari per l’istanza database di origine e la replica di lettura senza interruzione del servizio. Viene acquisito uno snapshot dell'istanza database di origine e tale snapshot diventa la replica di lettura. Quando una replica di lettura viene eliminata non si verifica alcuna interruzione.

È possibile creare fino a 15 repliche di lettura da un'istanza database di origine. Per un efficace funzionamento della replica, raccomandiamo di configurare ciascuna replica di lettura con la stessa quantità di risorse di calcolo e di archiviazione dell'istanza database di origine. Se si dimensiona l'istanza database di origine, si devono dimensionare anche le repliche di lettura.

La versione del motore del database SQL Server dell'istanza database di origine e tutte le relative repliche di lettura devono essere uguali. Amazon RDS aggiorna la primaria immediatamente dopo l'aggiornamento delle repliche di lettura, a prescindere dalla finestra di manutenzione. Per ulteriori informazioni sull'aggiornamento della versione del motore del database, consultare Aggiornamento del motore di database Microsoft SQL Server.

Una replica di lettura deve disporre di risorse di calcolo e storage sufficienti per ricevere e applicare le modifiche provenienti dall'origine. Se una replica di lettura raggiunge la massima capacità di risorse di calcolo, di rete o di storage, smette di ricevere o applicare modifiche dalla sua origine. Puoi modificare le risorse di storage e CPU di una replica di lettura in modo indipendente dalla sua origine e dalle altre repliche di lettura.

Limitazioni per le repliche di lettura con SQL Server

Le seguenti limitazioni si applicano alle repliche di lettura di SQL Server su Amazon RDS:

  • Le repliche di lettura sono disponibili solo sul motore SQL Server Enterprise Edition (EE).

  • Le repliche di lettura sono disponibili per le versioni di SQL Server 2016-2022.

  • È possibile creare fino a 15 repliche di lettura da un'istanza database di origine. La replica potrebbe subire ritardi quando l'istanza DB di origine ha più di 5 repliche di lettura.

  • Le repliche di lettura sono disponibili solo per le istanze database in esecuzione sulle classi di istanze database con quattro o più vCPU.

  • Una replica di lettura supporta fino a 100 database a seconda del tipo di classe dell'istanza e della modalità di disponibilità. È necessario creare database sull'istanza DB di origine per replicarli automaticamente nelle repliche di lettura. Non è possibile scegliere singoli database da replicare. Per ulteriori informazioni, consulta Restrizioni per le istanze database di Microsoft SQL Server.

  • Non è possibile eliminare un database da una replica di lettura. Per eliminare un database, eliminalo dall'istanza DB di origine con la rds_drop_database stored procedure. Per ulteriori informazioni, consulta Rimozione di un database Microsoft SQL Server.

  • Se l'istanza DB di origine utilizza Transparent Data Encryption (TDE) per crittografare i dati, anche la replica di lettura configura automaticamente TDE.

    Se l'istanza DB di origine utilizza una chiave KMS per crittografare i dati, le repliche di lettura nella stessa regione utilizzano la stessa chiave KMS. Per le repliche di lettura tra regioni, è necessario specificare una chiave KMS dall'area della replica di lettura al momento della creazione della replica di lettura. Non è possibile modificare la chiave KMS per una replica di lettura.

  • Le repliche di lettura hanno lo stesso fuso orario e le stesse regole di confronto dell'istanza DB di origine, indipendentemente dalla zona di disponibilità in cui vengono create.

  • Le repliche di lettura sono disponibili solo per le istanze database in esecuzione sulle classi di istanze database con quattro o più vCPU.

  • Il supporto per le operazioni seguenti non è disponibile su Amazon RDS per SQL Server:

    • Conservazione di backup delle repliche di lettura

    • oint-in-time Ripristino IP da repliche di lettura

    • Snapshot manuali di repliche di lettura

    • Repliche di lettura AZ multiple

    • Creazione di repliche di lettura di repliche di lettura

    • Sincronizzazione degli accessi degli utenti a repliche di lettura

  • Amazon RDS per SQL Server non interviene per attenuare un elevato ritardo di replica tra un'istanza database di origine e le sue repliche di lettura. Assicurati che l'istanza database di origine e le sue repliche di lettura siano dimensionate correttamente, in termini di capacità di calcolo e storage, per adattarsi al loro carico operativo.

  • È possibile eseguire la replica tra le regioni AWS GovCloud (Stati Uniti orientali) e AWS GovCloud (Stati Uniti occidentali), ma non all'interno o all'esterno. AWS GovCloud (US) Regions

Considerazioni sulle opzioni per le repliche RDS per SQL Server

Prima di creare una replica RDS per SQL Server, considera i requisiti, le restrizioni e i consigli seguenti:

  • Se la replica SQL Server si trova nella stessa regione dell'istanza database di origine, assicurati che appartenga allo stesso gruppo di opzioni dell'istanza database di origine. Le modifiche al gruppo di opzioni di origine o all'appartenenza al gruppo di opzioni di origine si propagano alle repliche. Queste modifiche vengono applicate alle repliche immediatamente dopo l'applicazione all'istanza database di origine, indipendentemente dalla finestra di manutenzione delle repliche.

    Per ulteriori informazioni sui gruppi di opzioni, consulta Uso di gruppi di opzioni.

  • Quando crei una replica tra regioni SQL Server, Amazon RDS crea un gruppo di opzioni dedicato.

    Non puoi rimuovere una replica tra regioni SQL Server dal suo gruppo di opzioni dedicato. Nessun'altra istanza database può usare il gruppo di opzioni dedicato per una replica tra regioni SQL Server.

    Di seguito sono riportate le opzioni replicate. Per aggiungere opzioni replicate a una replica in più regioni SQL Server, aggiungile al gruppo di opzioni dell'istanza database di origine. L'opzione è installata anche su tutte le repliche dell'istanza database di origine.

    • TDE

    Di seguito sono riportate le opzioni non replicate. È possibile aggiungere o rimuovere le opzioni non replicate da un gruppo di opzioni dedicato.

    • MSDTC

    • SQLSERVER_AUDIT

    • Per abilitare l'opzione SQLSERVER_AUDIT sulla replica di lettura tra regioni, aggiungi l'opzione SQLSERVER_AUDIT al gruppo di opzioni dedicato sulla replica di lettura tra regioni e sul gruppo di opzioni dell'istanza di origine. Aggiungendo l'opzione SQLSERVER_AUDIT all'istanza di origine della replica di lettura tra regioni SQL Server, è possibile creare l'oggetto di controllo a livello di server e le specifiche di controllo a livello di server su ciascuna delle repliche di lettura tra regioni dell'istanza di origine. Per consentire alle repliche di lettura tra regioni di caricare i log di controllo completati su un bucket Amazon S3, aggiungi l'opzione SQLSERVER_AUDIT al gruppo di opzioni dedicato e configura le impostazioni delle opzioni. Il bucket Amazon S3 che stai utilizzando come destinazione dei file del controllo deve trovarsi nella stessa regione della replica di lettura tra regioni. Puoi modificare l'impostazione dell'opzione SQLSERVER_AUDIT per ogni replica di lettura tra regioni in modo indipendente affinché ciascuna possa accedere a un bucket Amazon S3 nella rispettiva regione.

    Le opzioni seguenti non sono supportate per le repliche di lettura tra regioni.

    • SSRS

    • SSAS

    • SSIS

    Le opzioni seguenti sono parzialmente supportate per le repliche di lettura tra regioni.

    • SQLSERVER_BACKUP_RESTORE

    • L'istanza database di origine di una replica tra regioni SQL Server può avere l'opzione SQLSERVER_BACKUP_RESTORE, ma non è possibile eseguire ripristini nativi sull'istanza database di origine finché non si eliminano tutte le relative repliche tra regioni. Qualsiasi attività di ripristino nativo esistente verrà annullata durante la creazione di una replica tra regioni. Non puoi aggiungere l'opzione SQLSERVER_BACKUP_RESTORE a un gruppo di opzioni dedicato.

      Per ulteriori informazioni su backup e ripristino nativi, consulta Importazione ed esportazione di database SQL Server mediante backup e ripristino nativi.

    Quando promuovi una replica di lettura tra regioni SQL Server, tale replica si comporta come qualsiasi altra istanza database SQL Server, compresa la gestione delle opzioni. Per ulteriori informazioni sui gruppi di opzioni, consulta Uso di gruppi di opzioni.

Sincronizzazione degli utenti e degli oggetti del database con una replica di lettura SQL Server

Tutti gli accessi, i ruoli server personalizzati, i processi di SQL Agent o altri oggetti a livello di server presenti nell'istanza database primaria al momento della creazione di una replica di lettura dovrebbero essere presenti nella replica di lettura appena creata. Tuttavia, tutti gli oggetti a livello di server creati nell'istanza database primaria dopo la creazione della replica di lettura non verranno replicati automaticamente ed è necessario crearli manualmente nella replica di lettura.

Gli utenti del database vengono replicati automaticamente dall'istanza database primaria nella replica di lettura. Poiché il database delle repliche di lettura è in modalità di sola lettura, l'identificatore di sicurezza (SID) dell'utente del database non può essere aggiornato nel database. Pertanto, quando si creano accessi SQL nella replica di lettura, è essenziale assicurarsi che il SID di tale accesso corrisponda al SID dell'accesso SQL corrispondente nell'istanza database primaria. Se non vengono sincronizzati, i SID degli accessi SQL non saranno in grado di accedere al database nella replica di lettura. Gli accessi autenticati di Windows Active Directory (AD) non presentano questo problema perché SQL Server ottiene il SID da Active Directory.

Sincronizzazione di un accesso SQL tra istanza database primaria e replica di lettura
  1. Eseguire la connessione all'istanza database primaria.

  2. Creare un nuovo accesso SQL nell'istanza database primaria.

    USE [master] GO CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD';
    Nota

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

  3. Creare un nuovo utente del database per l'accesso SQL nel database.

    USE [REPLACE WITH YOUR DB NAME] GO CREATE USER TestLogin1 FOR LOGIN TestLogin1; GO
  4. Controllare il SID dell'accesso SQL appena creato nell'istanza database primaria.

    SELECT name, sid FROM sys.server_principals WHERE name = TestLogin1;
  5. Connettersi alla replica di lettura. Creare il nuovo accesso SQL.

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #4];
In alternativa, se si dispone dell'accesso al database delle repliche di lettura, è possibile correggere l'utente orfano come segue:
  1. Connettersi alla replica di lettura.

  2. Individuare gli utenti orfani nel database.

    USE [REPLACE WITH YOUR DB NAME] GO EXEC sp_change_users_login 'Report'; GO
  3. Creare un nuovo accesso SQL per l'utente orfano del database.

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #2];

    Esempio:

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'TestPa$$word#1', SID=[0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P];
    Nota

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

Risoluzione dei problemi relativi a una replica di lettura SQL Server

Puoi monitorare il ritardo di replica in Amazon CloudWatch visualizzando la metrica Amazon ReplicaLag RDS. Per ulteriori informazioni sui ritardi della replica, consultare Monitoraggio della replica di lettura.

Se il ritardo della replica è eccessivamente lungo, puoi utilizzare la seguenti query per ottenere informazioni sul ritardo.

SELECT AR.replica_server_name , DB_NAME (ARS.database_id) 'database_name' , AR.availability_mode_desc , ARS.synchronization_health_desc , ARS.last_hardened_lsn , ARS.last_redone_lsn , ARS.secondary_lag_seconds FROM sys.dm_hadr_database_replica_states ARS INNER JOIN sys.availability_replicas AR ON ARS.replica_id = AR.replica_id --WHERE DB_NAME(ARS.database_id) = 'database_name' ORDER BY AR.replica_server_name;