Come posso migrare i database dalle istanze EC2 o dalle VM on-premise a RDS per SQL Server?

5 minuti di lettura
0

Desidero migrare i database da un'istanza Amazon Elastic Compute Cloud (Amazon EC2) o da un'istanza on-premise di Microsoft SQL Server alla mia istanza Amazon Relational Database Service (Amazon RDS) per Microsoft SQL Server. Quali sono le opzioni disponibili per la migrazione dei dati?

Risoluzione

Metodi per la migrazione dei dati

Backup e ripristino nativi di SQL Server

Puoi migrare il database SQL Server da un'istanza on-premise o EC2 a un'istanza Amazon RDS per SQL Server utilizzando il backup e il ripristino nativi.

1.    Crea un bucket Amazon Simple Storage Service (Amazon S3) per archiviare il backup dall'istanza di origine. Il bucket S3 deve essere nella stessa regione dell’istanza RDS.

2.    Crea il ruolo AWS Identity and Access Management (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 dall'istanza di origine (on-premise o EC2), quindi copialo nel bucket S3 creato nel passaggio 1.

5.    Esegui il seguente script per ripristinare il backup sull'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';

6.    Esegui il seguente script per eseguire il backup del database dell'istanza RDS su S3:

exec msdb.dbo.rds_backup_database 
@source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension', 
@overwrite_S3_backup_file=1;

Nota: è anche possibile eseguire il backup e il ripristino dei backup differenziali.

AWS Database Migration Service (AWS DMS)

1.    Verifica i prerequisiti e le limitazioni di utilizzo di SQL Server come origine o destinazione per AWS DMS:

2.    Crea un'istanza di replica di DMS.

3.    Crea endpoint di origine e destinazione utilizzando DMS.

4.    Crea un'attività di migrazione.

Replica transazionale

È possibile configurare la replica transazionale da istanze SQL Server on-premise o EC2 su istanze RDS per SQL Server. L'istanza RDS per SQL Server può essere creata solo come sottoscrittore con sottoscrizione push dall'istanza SQL Server on-premise o EC2 come Publisher-Distributor.

Per istruzioni dettagliate di configurazione della replica delle transazioni da un'istanza di SQL Server on-premise o EC2, consulta:

File del pacchetto di backup (.bacpac)

Il file .bacpac è composto da metadati copiati e dati compressi in un file. Questo approccio è la scelta migliore per i database di circa 200 GB.

È possibile creare un file .bacpac utilizzando Export/Import o utilizzando l'utilità SQLPackage.exe (riga di comando).

Per maggiori informazioni sui file .bacpac, consulta Migrazione del database SQL Server da un database Azure SQL ad Amazon RDS per SQL Server utilizzando il metodo.bacpac.

Metodi per l'importazione dei dati

Procedura guidata per la creazione e la pubblicazione di script

Se il database è più piccolo di 1 GB, puoi utilizzare la procedura guidata di generazione e pubblicazione di script. Per i database più grandi, è possibile creare script per lo schema del database utilizzando i metodi Procedura guidata di importazione ed esportazione o Copia in blocco.

Per ulteriori informazioni sulla procedura guidata di generazione e pubblicazione di script, vedere Procedura: generazione di uno script (SQL Server Management Studio) nella documentazione di Microsoft SQL Server.

Nota: assicurati di selezionare Salva script in una posizione specifica, Avanzato nella pagina Imposta opzione di script. L'impostazione Avanzata fornisce opzioni aggiuntive per includere o escludere un oggetto nella tabella durante l'importazione e l'esportazione.

Procedura guidata di importazione ed esportazione

La procedura guidata di importazione ed esportazione crea un pacchetto di integrazione. Il pacchetto di integrazione viene utilizzato per copiare i dati dal database SQL Server on-premise o EC2 all'istanza RDS per SQL Server. È possibile filtrare le tabelle specifiche che si desidera copiare nell'istanza RDS.

Per ulteriori dettagli sulla procedura guidata di importazione ed esportazione, vedi Procedura: eseguire la procedura guidata di importazione ed esportazione di SQL Server nella documentazione di Microsoft SQL Server.

Nota: quando esegui la procedura guidata di importazione ed esportazione, assicurati di scegliere le seguenti opzioni per l'istanza Destinazione di RDS per SQL Server:

  • In Nome server, immettere il nome dell'endpoint per l'istanza DB RDS.
  • Per la Modalità di autenticazione, selezionare Autenticazione SQL Server.
  • Per il Nome utente e la Password, immettete l'utente master creato nell'istanza RDS.

Utilità Bulk Copy Program

Il Bulk Copy Program (bcp) è un'utilità da riga di comando utilizzata per copiare in blocco i dati tra istanze di SQL Server. È possibile utilizzare l'utilità bcp per importare set di dati di grandi dimensioni in un'istanza di SQL Server o esportarli in un file.

Di seguito sono riportati alcuni esempi dei comandi IN e OUT:

OUT: usa questo comando per esportare o scaricare i record da 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 codice 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 di SQL Server a cui si connette l'utilità bcp.
  • -U: specifica il nome utente dell'account per accedere all'istanza di SQL Server.
  • -P: specifica la password per l'utente specificata da -U.
  • -b: specifica il numero di righe per batch di dati importati.

IN: Usa questo comando per importare tutti i record dal file di dump alla tabella esistente. La tabella deve essere creata prima di eseguire il comando bcp.

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, vedere utilità bcp nella documentazione di Microsoft SQL Server.