Salta al contenuto

Come posso eseguire la migrazione di database da istanze Amazon EC2 o macchine virtuali (VM) on-premises ad Amazon RDS per SQL Server?

6 minuti di lettura
0

Desidero eseguire la migrazione di database da un'istanza Amazon Elastic Compute Cloud (Amazon EC2) o da un'istanza Microsoft SQL Server on-premises alla mia istanza Amazon Relational Database Service (Amazon RDS) per Microsoft SQL Server.

Breve descrizione

Utilizza uno dei seguenti metodi per eseguire la migrazione del database:

  • Backup e ripristino nativi di SQL Server
  • AWS Database Migration Service (AWS DMS)
  • Replica transazionale
  • File del pacchetto di backup (.bacpac)
  • Procedura guidata di generazione e pubblicazione di script in SQL Server
  • Importazione ed esportazione guidata di SQL Server
  • Utilità Bulk Copy Program di SQL Server (bcp)

Il tempo di migrazione e il tempo di inattività dipendono dal metodo di migrazione utilizzato. Per ulteriori informazioni, consulta Best practice per la migrazione ad Amazon RDS per SQL Server.

Risoluzione

Backup e ripristino nativi di SQL Server

Il metodo del backup e ripristino nativi è più lento rispetto ai metodi che utilizzano la replica, ma può presentare meno limitazioni.

Completa i seguenti passaggi:

  1. Crea un bucket Amazon Simple Storage Service (Amazon S3) per archiviare il backup dell'istanza on-premises o EC2. Il bucket Amazon S3 deve trovarsi nella stessa Regione AWS dell'istanza RDS per SQL Server.

  2. Crea il ruolo AWS Identity and Access Management (AWS IAM) per accedere al bucket.

  3. Aggiungi l'opzione SQLSERVER_BACKUP_RESTORE al gruppo di opzioni associato all'istanza RDS per SQL Server.

  4. Crea un backup dell'istanza on-premises o EC2, quindi spostalo nel bucket S3.

  5. Esegui questo script per ripristinare il backup nell'istanza RDS per SQL Server:

    exec msdb.dbo.rds_restore_database  
    @restore_db_name='database_name',   
    @s3_arn_to_restore_from='arn:aws:s3:::bucket_name file_name_and_extension';

    Nota: sostituisci database_name con il nome del tuo database, bucket_name con il nome del tuo bucket e file_name_and_extension con il nome del tuo file.

  6. Esegui questo script per monitorare lo stato del backup:

    exec msdb.dbo.rds_task_status;

Se l'attività non riesce, controlla nella colonna task_info dell'output se sono presenti messaggi di errore. Cerca i messaggi di errore nella tabella Risoluzione dei problemi relativi ad Amazon RDS.

Nota: puoi eseguire il backup e il ripristino dei backup differenziali. Puoi inoltre ripristinare i log per riportarli a un determinato momento.

AWS DMS

Completa i seguenti passaggi:

  1. Per utilizzare SQL Server come origine o destinazione per AWS DMS, verifica i prerequisiti e le limitazioni.
  2. Crea un'istanza di replica AWS DMS.
  3. Utilizza AWS DMS per creare endpoint di origine e di destinazione.
  4. Crea un'attività di migrazione.

Replica transazionale

Puoi configurare una replica transazionale dalle istanze SQL Server on-premises o EC2 a un'istanza RDS per SQL Server. Tuttavia, puoi solo rendere l'istanza RDS per SQL Server un abbonato. Inoltre, puoi solo rendere l'istanza SQL Server on-premises o EC2 il publisher o il distributore con un abbonamento push.

Nota: una replica transazionale dipende dal nome host EC2 che può cambiare in RDS per SQL Server. A causa di questa limitazione, è consigliabile utilizzare una replica transazionale solamente per una migrazione una tantum dei dati all'istanza RDS per SQL Server.

File del pacchetto di backup (.bacpac)

Il file .bacpac è costituito da metadati copiati e dati compressi in un file. È consigliabile utilizzare un file .bacpack per database di circa 200 GB. Puoi utilizzare l'esportazione/importazione o l'utilità SQLPackage.exe (riga di comando) per creare un file .bacpac. Per ulteriori informazioni sul file .bacpac, consulta Migrate SQL Server databases from an Azure SQL database to Amazon RDS for SQL Server using bacpac method (Migrazione di database SQL Server da un database Azure SQL ad Amazon RDS per SQL Server utilizzando il metodo bacpac).

Procedura guidata di generazione e pubblicazione di script in SQL Server

Se il database è inferiore a 1 GB, puoi utilizzare la procedura guidata di generazione e pubblicazione di script. Per i database più grandi, puoi utilizzare l’utilità di copia in blocco Bulk Copy Program o la procedura guidata di importazione ed esportazione per creare script sullo schema del database. Per ulteriori informazioni sulla procedura guidata di generazione e pubblicazione di script, consulta Procedura: generazione di uno script (SQL Server Management Studio) nella documentazione di Microsoft SQL Server.

Nota: assicurati di selezionare Save scripts to specific location (Salva script in una posizione specifica), Advanced (Avanzate) nella pagina Set Scripting Option (Imposta opzione di scripting). L'impostazione Advanced (Avanzate) fornisce opzioni aggiuntive per includere o escludere oggetti della tabella durante l'importazione e l'esportazione.

Importazione ed esportazione guidata di SQL Server

La procedura guidata di importazione ed esportazione crea un pacchetto di integrazione. Il pacchetto di integrazione viene utilizzato per copiare dati dall'istanza SQL Server on-premises o EC2 all'istanza RDS per SQL Server. Puoi filtrare le tabelle specifiche che desideri copiare nell'istanza RDS per SQL Server.

Prima di eseguire la procedura guidata di importazione ed esportazione, verifica che possa raggiungere la rete e configura le autorizzazioni per il gruppo di sicurezza. Consulta Quali sono le autorizzazioni necessarie?sul sito web Microsoft Learn.

Per ulteriori informazioni sulla procedura guidata di importazione ed esportazione, consulta Procedura: esecuzione dell'importazione/esportazione guidata di SQL Server sul sito Microsoft Learn.

Quando esegui la procedura guidata di importazione ed esportazione, scegli le seguenti opzioni per l'istanza RDS per SQL Server di destinazione:

  • In Server Name (Nome server), inserisci il nome dell'endpoint dell'istanza database Amazon RDS.
  • Per Authentication mode (Modalità autenticazione), scegli SQL Server Authentication (Autenticazione SQL Server).
  • In Username (Nome utente) e Password, inserisci l'utente principale che hai creato nell'istanza RDS per SQL Server.

Utilità bcp di SQL Server

Utilizza l'utilità della riga di comando per importare in blocco grandi set di dati tra istanze SQL Server o esportarli in un file. Puoi utilizzare l'utilità bcp per importare grandi set di dati in un'istanza SQL Server o esportarli in un file.

Di seguito sono riportati alcuni esempi dei comandi in e out:

out

Esegui questo comando out per esportare o estrarre e copiare i record di una tabella in un file:

bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P     password -b 10000

Il comando precedente include le seguenti opzioni:

  • -n: specifica che la copia in blocco utilizza i tipi di dati nativi dei dati da copiare.
  • -S: specifica l'istanza SQL Server a cui si connette l'utilità bcp.
  • -U: specifica il nome utente dell'account AWS per accedere all'istanza SQL Server.
  • -P: specifica la password dell'utente specificato da -U.
  • -b: specifica il numero di righe per batch di dati importati.

in

Esegui questo comando in per importare tutti i record dal file di dump nella tabella .

bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000

Per ulteriori informazioni, consulta Utilità bcp sul sito web Microsoft Learn.