Copiare o spostare un database - Istanza gestita di SQL di Azure

Si applica a:Istanza gestita di SQL di Azure

Questo articolo descrive come copiare o spostare un database online tra istanze in Istanza gestita di SQL di Azure. Le operazioni di copia e spostamento del database sono supportate in sottoscrizioni di Azure diverse, purché entrambe le sottoscrizioni si trovino nello stesso tenant di Azure.

Panoramica

È possibile eseguire un'operazione di copia o spostamento online di un database tra istanze gestite usando la tecnologia del gruppo di disponibilità Always On. La funzionalità copia e spostamento crea un nuovo database nell'istanza di destinazione come copia del database di origine. Con questa funzionalità, la replica dei dati è affidabile, coerente, asincrona e quasi in tempo reale.

Quando si copia un database, il database di origine rimane online durante l'operazione e dopo il completamento.

Al contrario, quando si sposta un database, il database di origine viene eliminato al termine dell'operazione.

È possibile eseguire più operazioni di copia e spostamento del database dall'istanza gestita di origine a una o più istanze di destinazione.

La copia e lo spostamento di un database sono diverse dal ripristino temporizzato perché crea una copia del database dopo il completamento dell'operazione. Il ripristino temporizzato crea una copia del database da un momento specificato in passato.

Importante

Quando si sposta un database in una nuova destinazione, i backup di ripristino temporizzato esistenti non vengono spostati con il database e non sono disponibili. Al termine dell’operazione di spostamento, il database avvia una nuova catena di backup nell'istanza di destinazione.

Quando utilizzare la funzionalità

Lo spostamento o la copia di un database è utile quando si vuole:

  • Gestire i requisiti di crescita e prestazioni del database.
  • Bilanciare i carichi di lavoro tra più istanze gestite.
  • Spostare i database in un'istanza con risorse più disponibili per gestire il carico di lavoro.
  • Consolidare più database da diverse istanze.
  • Creare la parità di database tra ambienti di sviluppo, test e produzione.

Flusso di lavoro

Ecco il flusso di lavoro per la copia o lo spostamento di un database:

  1. Scegliere il database, l'istanza gestita di origine e l'istanza di destinazione e quindi avviare l'operazione.

    Viene eseguito il seeding del database nel server di destinazione. Controllare lo stato per determinare se l'operazione è in corso o se ha avuto esito positivo.

  2. Al termine del seeding, lo stato dell'operazione viene visualizzato come pronto per il completamento.

    Fino al completamento manuale dell'operazione, tutte le modifiche apportate al database di origine vengono applicate al database di destinazione. È possibile annullare l'operazione in qualsiasi momento. Sono disponibili 24 ore per completare in modo esplicito l'operazione. Se l'operazione non viene completata entro 24 ore, viene annullata automaticamente e il database di destinazione viene eliminato.

  3. Dopo aver completato manualmente l'operazione, il database di destinazione viene online ed è pronto per i carichi di lavoro di lettura/scrittura.

  4. Se si sceglie di spostare il database, il database di origine viene eliminato. Se si sceglie di copiare il database, il database di origine rimane online, ma la sincronizzazione dei dati si interrompe.

Un flusso di lavoro di esempio per un'operazione di spostamento è illustrato nel diagramma seguente:

Diagram that illustrates the workflow of a move operation.

La progettazione dell'operazione di spostamento del database garantisce che non si verifichi alcuna perdita di dati. Quando un utente completa l'operazione di spostamento, il database di origine smette di accettare carichi di lavoro e la transazione viene replicata nel database di destinazione. Solo in seguito, il database di destinazione diventa online e il database di origine è stato eliminato. Questa progettazione garantisce che tutti i dati del database di origine vengano spostati nel database di destinazione.

L'operazione di copia del database è simile allo spostamento del database. L'unica differenza importante è il modo in cui l’operazione termina. Il completamento dell'operazione di copia del database interrompe la replica del log delle transazioni nel database di destinazione. Anche se l'utente invia in modo esplicito il comando per completare l'operazione di copia, l'utente non controlla esattamente il momento in cui la replica del log si arresta. Infine, sia il database di origine che quello di destinazione sono online, indipendenti e pronti per il carico di lavoro di lettura/scrittura.

Prerequisiti

Prima di poter copiare o spostare un database, è necessario soddisfare i requisiti seguenti:

  • È necessario disporre delle autorizzazioni di lettura per il gruppo di risorse che contiene l'istanza gestita di origine ed è necessario disporre delle autorizzazioni di scrittura a livello di database per le istanze di origine e di destinazione.
  • Se le istanze di origine e di destinazione si trovano in reti virtuali diverse, è necessario che vi sia connettività di rete tra le reti virtuali delle due istanze, ad esempio con il peering di reti virtuali di Azure. Inoltre, il traffico in ingresso e in uscita sulla porta 5022 e l'intervallo di porte 11000-11999 deve essere consentito per il protocollo TCP. Questo vale per entrambe le subnet che ospitano le istanze di origine e di destinazione. Ecco la documentazione su come stabilire la connettività di rete tra istanze in reti virtuali di Azure diverse.

Copiare o spostare un database

È possibile copiare o spostare un database in un'altra istanza gestita usando il portale di Azure. A questo scopo:

  1. Passare a Istanza gestita nel portale di Azure.

  2. In Gestione dati selezionare Database.

  3. Selezionare uno o più database e quindi selezionare l'opzione Copia o Sposta nella parte superiore del riquadro.

    Selezionando Sposta elimina il database di origine al termine dell'operazione, mentre se si seleziona Copia, al termine dell’operazione il database di origine resterà online. Se si seleziona un'opzione, viene aperta la pagina Sposta database gestito o Copia database gestito. Dopo aver aperto la pagina, è possibile selezionare altri database da includere nell'operazione.

    Screenshot of the 'Databases' page for Azure SQL Managed Instance, with the 'Move' and 'Copy' options highlighted.

  4. Nel riquadro Dettagli origine. specificare i dettagli per il database di origine e l'istanza gestita.

  5. Nel riquadro Dettagli destinazione specificare i dettagli per l'istanza gestita di destinazione.

  6. Selezionare Rivedi e avvia per convalidare i dettagli dell'origine e della destinazione e quindi selezionare Avvia per avviare l'operazione.

    Selezionando Avvia si torna alla pagina Database dell'istanza, in cui è possibile monitorare lo stato di avanzamento dell'operazione.

  7. Nella pagina Database selezionare la colonna Dettagli operazione per verificare che lo stato dell'operazione sia Spostamento in corso o Copia in corso.

    Se è necessario annullare, selezionare In corso, selezionare il database in uso e quindi selezionare Annulla operazione per arrestare il seeding e rilasciare il database di destinazione.

    Screenshot of the 'Databases' page for Azure SQL Managed Instance, showing that a copy operation is in progress.

  8. Monitorare l'operazione. Al termine del seeding, nella colonna Dettagli operazione viene visualizzato lo stato Spostamento pronto per il completamento o Copia pronto per il completamento.

  9. Selezionare Pronto per il completamento per aprire la colonna Dettagli operazione, scegliere il database che si è pronti per copiare o spostare e quindi selezionare Completa per finalizzare l'operazione e portare online il database di destinazione.

    Le modifiche apportate al database di origine vengono replicate nel database di destinazione durante questo periodo, fino a quando non si seleziona Completa. Se l'operazione non viene completata entro 24 ore, viene annullata automaticamente e il database di destinazione viene eliminato. Se si seleziona Completa, l'operazione viene completata e si torna alla pagina Database, in cui è possibile verificare che l'operazione sia stata completata.

    Se il database è stato spostato, il nome del database non è disponibile perché è ora offline.

Prestazioni delle operazioni di copia e spostamento

Entrambe le operazioni di copia e spostamento del database hanno due fasi. Il primo è il seeding iniziale e il secondo è la replica delle modifiche dal database di origine al database di destinazione. In genere, il seeding iniziale è una fase più impegnativa dell'operazione. Il tempo necessario per il completamento del seeding iniziale dipende dalle dimensioni dei dati e dal numero di operazioni di copia o spostamento attive. L'intensità del carico di lavoro che si verifica sul Istanza gestita di SQL di Azure di origine e di destinazione e la velocità della rete tra origine e destinazione influirà anche sulla velocità di seeding. In circostanze ottimali e quando viene stabilita la connettività tra l'origine e la destinazione usando il peering reti virtuali globali consigliate, la velocità di seeding è fino a 360 GB all'ora. Il processo di seeding e la sua velocità possono essere monitorati tramite la DMV sys.dm_hadr_physical_seeding_stats.

SELECT 
	role_desc,
	transfer_rate_bytes_per_second,
	transferred_size_bytes,
	database_size_bytes,
	start_time_utc,
	estimate_time_complete_utc,
	end_time_utc,
	local_physical_seeding_id
FROM
	sys.dm_hadr_physical_seeding_stats;

Limiti

Considerare le limitazioni seguenti della funzionalità di copia e spostamento:

  • Le istanze di origine e di destinazione non possono essere uguali.
  • L'istanza gestita di origine e quella di destinazione devono risiedere nella stessa area di Azure.
  • È possibile copiare e spostare solo i database utente. La copia e lo spostamento dei database di sistema non sono supportati.
  • Un database può partecipare a una singola operazione di spostamento o copia alla volta.
  • L'istanza di origine può eseguire fino a otto operazioni di copia o spostamento alla volta. È possibile avviare più di otto operazioni, ma il servizio le gestirà accodandole ed elaborandone alcune in un secondo momento.
  • Non è possibile rinominare un database durante un'operazione di copia o spostamento.
  • I tag del database non vengono copiati con l'operazione di copia o spostamento.
  • Le operazioni di copia e spostamento del database non copiano o spostano i backup di ripristino temporizzato.
  • Non è possibile copiare o spostare un database che fa parte di un gruppo di failover o che usa il collegamento Istanza gestita.
  • L'istanza gestita di origine o di destinazione non deve essere configurata con un gruppo di failover (ripristino di emergenza geografico).
  • È necessario riconfigurare la replica transazionale, change data capture (CDC) o le transazioni distribuite dopo lo spostamento di un database che si basa su queste funzionalità.

Altre documentazione relative alla copia e allo spostamento del database.

Per altre opzioni di spostamento dei dati, vedere: