Come posso effettuare l'upgrade o il downgrade dell'edizione del motore di SQL Server in RDS per SQL Server?

9 minuti di lettura
0

Desidero effettuare l'upgrade o il downgrade dell'edizione del motore di SQL Server in Relational Database Service (Amazon RDS) per SQL Server. In che modo posso farlo?

Breve descrizione

Amazon RDS per SQL Server supporta le versioni Express, Web, Standard ed Enterprise. Non è possibile eseguire una modifica dell'edizione di SQL Server come modifica locale utilizzando la console RDS o l'interfaccia della linea di comando AWS (AWS CLI).

Per effettuare l'upgrade dell'edizione di SQL Server, crea uno snapshot ed esegui il ripristino utilizzando l'edizione superiore del motore. Per effettuare il downgrade, utilizza uno dei seguenti metodi:

  • Utilizza l'opzione di backup e ripristino nativa in RDS per SQL Server.
  • Utilizza AWS Database Migration Service (AWS DMS).
  • Importa ed esporta i dati di SQL Server utilizzando altri strumenti.

Risoluzione

Effettua l'upgrade dell'edizione del motore di SQL Server

Per effettuare l'upgrade dell'edizione del motore di SQL Server, crea uno snapshot RDS ed esegui il ripristino da quello snapshot. Per le limitazioni relative all'upgrade, consulta Considerazioni su Microsoft SQL Server.

Per eseguire l'upgrade utilizzando uno snapshot, segui questi passaggi:

1.    Crea uno snapshot dell'istanza originale di RDS per SQL Server.

2.    Ripristina lo snapshot creato nel passaggio 1 per creare una nuova istanza RDS. Cambia l'edizione richiesta con quella superiore durante il ripristino.

3.    Rinomina o elimina l'istanza originale di RDS per SQL Server per liberare il nome dell'endpoint DNS e riutilizzarlo. Per ulteriori informazioni, consulta la sezione Rinominare l'istanza RDS.

Per istruzioni dettagliate e passaggi per l'upgrade da Standard Edition a Enterprise Edition, consulta Modificare un'istanza Amazon RDS per SQL Server da Standard Edition a Enterprise Edition.

Puoi utilizzare lo stesso metodo di snapshot e ripristino per questi upgrade:

  • Da Standard Edition a Enterprise Edition
  • Da Web Edition a Standard Edition o Enterprise Edition
  • Da Express Edition a Web Edition, Standard Edition o Enterprise Edition

Nota importante: il ripristino degli snapshot durante l'upgrade dell'edizione crea una nuova istanza RDS per SQL Server. La nuova istanza ha un endpoint RDS diverso rispetto a quella di origine dello snapshot.

Effettua il downgrade dell'edizione SQL Server

Il downgrade locale dell'istanza di RDS per SQL Server dalle edizioni superiori a quelle inferiori non è supportato a causa delle limitazioni di SQL Server come prodotto. Tuttavia, è possibile effettuare il downgrade dell'edizione di RDS per SQL Server in una qualsiasi di queste combinazioni seguendo le opzioni di soluzione alternativa menzionate più avanti:

  • Da Enterprise Edition a Standard, Web o Express Edition
  • Da Standard Edition a Web o Express Edition
  • Da Web Edition a Express Edition

Per effettuare il downgrade dell'edizione RDS per SQL Server, utilizza una delle seguenti opzioni:

Opzione 1: utilizza l'opzione di backup e ripristino nativa in RDS per SQL Server

Nota: puoi utilizzare questa opzione anche per spostare i database dalle edizioni inferiori a quelle superiori delle istanze RDS.

Il backup e il ripristino nativi creano un backup completo dei database sull'istanza RDS per SQL Server di origine esistente. Archivia i backup su Amazon Simple Storage Service (Amazon S3) e quindi ripristina i file di backup su una nuova istanza RDS di destinazione.

Per effettuare il downgrade da un'istanza Enterprise di origine a un'istanza Standard di destinazione, segui questi passaggi:

1.    Crea un nuovo RDS per SQL Server con la Standard Edition di SQL Server. Questa è la nuova istanza di destinazione.

2.    Aggiungi l'opzione di backup e ripristino nativa sulle istanze Enterprise Edition di origine e quelle Standard Edition di destinazione.

3.    Esegui il backup di ogni database utente sull'istanza di origine (Enterprise) in un bucket S3.

4.    Esegui la query sys.dm_dm_persisted_sku-features (Transact-SQL) su ogni database nell'istanza di origine. Questa query verifica se ci sono funzionalità attualmente in uso che sono associate all'edizione superiore. Le funzionalità legate all'edizione superiore potrebbero non funzionare durante il ripristino dei database nell'istanza di destinazione dell'edizione inferiore.

USE [database-name]
    GO
    SELECT feature_name FROM sys.dm_db_persisted_sku_features;
    GO

5.    Ripristina i backup dal bucket S3 all'istanza RDS di destinazione (Standard).

6.    Assicurati di creare gli accessi e gli utenti richiesti nei database delle istanze RDS di destinazione. Inoltre, crea il gruppo di sicurezza appropriato e collega i gruppi parametro-opzione appropriati. È come per l'istanza RDS di origine.

Nota: puoi utilizzare i passaggi precedenti per esportare e importare i database in qualsiasi edizione di SQL Server su RDS.

Opzione 2: usa AWS DMS

Nota: puoi utilizzare questa opzione anche per spostare i database dalle edizioni inferiori a quelle superiori delle istanze RDS.

Usa AWS DMS per effettuare la migrazione dei database. AWS DMS replica anche le modifiche in corso dall'istanza dell'edizione superiore (l'endpoint di origine) all'istanza dell'edizione inferiore (l'endpoint di destinazione).

AWS DMS consente la replica unidirezionale e il caricamento in blocco nelle tabelle e acquisisce le modifiche ai dati (se supportate dalle versioni dell'istanza RDS di origine e di destinazione per SQL Server).

Per ulteriori informazioni, consulta questi argomenti:

Opzione 3: importare ed esportare i dati di SQL Server utilizzando altri strumenti

Puoi usare questi strumenti aggiuntivi per importare ed esportare il tuo database:

  • Procedura guidata per l'importazione e l'esportazione di SQL Server
  • Procedura guidata per la creazione e la pubblicazione di script
  • Copia in blocco (utilità bcp)

L'istanza con l'edizione inferiore di SQL Server deve essere creata e attiva prima di utilizzare questi strumenti.

Tieni presente che questi strumenti richiedono più impegno rispetto al backup e al ripristino nativi o ad AWS DMS. Potrebbero verificarsi più errori di consistenza o integrità dei dati che devono essere corretti. Questi errori si verificano quando si spostano dati utilizzando questi strumenti. Verifica accuratamente il processo in un ambiente di test prima di decidere di utilizzare uno di questi strumenti.

  • Procedura guidata per l'importazione e l'esportazione di SQL Server: copia e crea lo schema dei database e dell'oggetto dell'istanza di origine sull'istanza di destinazione. Quindi, utilizza questa procedura guidata per copiare una o più tabelle, viste o query da un'istanza DB di RDS per SQL Server a un altro datastore. Per ulteriori informazioni, consulta Procedura guidata per l'importazione e l'esportazione di SQL Server.
  • Procedura guidata di SQL Server per la creazione e la pubblicazione di script e utilità bcp: utilizza questa procedura per creare script per un intero database o per gli oggetti selezionati. Puoi eseguire questi script su un'istanza DB di SQL Server di destinazione per ricreare gli oggetti dotati di script. Quindi, utilizza l'utilità bcp per esportare in blocco i dati per gli oggetti selezionati nell'istanza DB di destinazione. Esegui l'utilità bcp da un'istanza Amazon Elastic Compute Cloud (Amazon EC2) con connettività sia all'istanza RDS di origine che a quella di destinazione. Per ulteriori informazioni, consulta Procedura guidata di SQL Server per la creazione e la pubblicazione di script e utilità bcp.

Nota: tutte le opzioni menzionate in questa sezione possono essere utilizzate anche per migrare i database dalle istanze RDS per SQL Server dell'edizione inferiore a quelle dell'edizione superiore. Tuttavia, l'approccio spiegato nella sezione Aggiornamento dell'edizione di SQL Server è più semplice. La scelta dell'opzione da utilizzare dipende da fattori quali tempi di inattività, impegno, complessità e così via.

Rinominare l'istanza RDS

Le opzioni descritte per l'upgrade o il downgrade dell'edizione RDS per SQL Server comportano sempre la creazione di una nuova istanza RDS di destinazione. La nuova istanza RDS ha un endpoint DNS RDS diverso rispetto all'istanza RDS di origine esistente.

A volte, quando si aggiorna il nuovo endpoint RDS tra applicazioni e altri servizi, non viene eseguito l'upgrade della stringa di connessione in uno o più di questi componenti. In questo caso, è possibile che si verifichino problemi dopo la modifica dell'edizione dell'istanza di RDS per SQL Server.

Per evitare che accada, valuta la possibilità di rinominare le istanze RDS di origine e di destinazione. La ridenominazione assicura che l'istanza dell'edizione di destinazione abbia lo stesso endpoint DNS RDS dell'istanza dell'edizione di origine.

In questo modo, puoi evitare di apportare modifiche alle stringhe di connessione delle applicazioni o dei servizi dipendenti dopo la modifica dell'edizione sull'istanza RDS per SQL Server.

Per rinominare le istanze RDS di origine e di destinazione dopo aver modificato l'edizione, segui questi passaggi:

In questo esempio, consideriamo come istanza RDS di origine rds-original con Enterprise Edition. L'istanza di destinazione è rds-new con Standard Edition.

1.    Interrompi tutto il traffico in entrata (quindi l'applicazione) verso l'istanza di origine rds-original.

2.    Segui i passaggi o le opzioni precedenti per l'upgrade o il downgrade dell'edizione di SQL Server sull'istanza RDS. Dopo aver modificato correttamente l'edizione, le istanze sono due: quella di origine è rds-original e quella di destinazione è rds-new.

3.    Modifica l'istanza di origine per rinominare l'identificatore DB da rds-original a un nome diverso, ad esempio rds-original-old.

4.    Quando l'istanza rds-original-old è nello stato Disponibile, cambia il nome dell'identificatore DB dell'istanza di destinazione rds-new con il nome dell'istanza originale, ovvero rds-original.

5.    Verifica che le istanze siano rinominate in rds-original-old e rds-original e che siano nello stato Disponibile.

6.    Assicurati che i gruppi di sicurezza RDS correlati che sono collegati all'istanza RDS di destinazione della nuova edizione siano uguali a quelli dell'istanza di origine. Questo garantisce che la connettività di rete delle applicazioni esistenti rimanga invariata.

7.    Ora consenti il traffico in entrata (avvia l'applicazione) verso l'istanza rds-original con l'edizione SQL Server richiesta. Non è richiesta alcuna modifica per le stringhe di connessione dell'applicazione, poiché RDS ha lo stesso endpoint DNS dell'istanza di origine.

8.    Esegui il test dell'applicazione per assicurarti che non vi sia alcun impatto dopo la modifica dell'edizione dell'istanza RDS.

9.    Se tutto funziona, crea uno snapshot finale dell'istanza rds-original-old ed elimina questa istanza per risparmiare sui costi.

Nota: una best practice consiste nel testare le attività in un ambiente inferiore prima di implementarle nell'ambiente di produzione. Questo permette di stimare il tempo necessario per le modifiche. Inoltre, è possibile identificare eventuali problemi che si verificano durante l'attività per rendere più agevole l'implementazione nell'ambiente di produzione.


Informazioni correlate

Prontuario AWS - Valutazione del downgrade di Microsoft SQL Server da Enterprise Edition a Standard Edition su AWS