Esporta (0) Stampa
Espandi tutto

Copia di database nel database SQL di Azure

Aggiornamento: luglio 2014

L'operazione di copia del database consente di copiare un database SQL di Microsoft Azure in un nuovo database. La copia può essere creata nello stesso o in un altro server logico. Al termine del processo di copia, si disporrà di un database completamente funzionante e indipendente dal database di origine e a partire da quel momento il nuovo database sarà coerente dal punto di vista transazionale con il database di origine. Il livello di servizio, le dimensioni e il livello di prestazioni del database della copia sono uguali a quelli del database di origine.

Poiché il nuovo database ha lo stesso livello di servizio e lo stesso livello di prestazioni del database, ogni copia viene sommata al conteggio totale del database e fatturata alla stessa tariffa del database di origine. Per ulteriori informazioni, vedere Dettagli prezzi del database SQL.

Contenuto dell'argomento

Negli scenari seguenti sarà necessario eseguire una copia del database di origine in un nuovo database. I metodi usati in questi scenari dipendono dalla possibilità che i database di origine e destinazione risiedano o meno negli stessi server, aree e sottoscrizioni. Tali metodi saranno descritti in maniera approfondita nella sezione Altri metodi disponibili per la copia di un database più avanti in questo argomento.

  • Sviluppo e testing delle applicazioni: copiare il database di produzione in un nuovo database che possa essere utilizzato per lo sviluppo e il testing.

  • Aggiornamento delle applicazioni: prima di importanti aggiornamenti dell'applicazione, copiare il database dell'applicazione in un database di backup con un nome diverso. Se il processo di aggiornamento non riesce oppure viene completato con errori, è possibile tornare alla versione del database precedente all'aggiornamento semplicemente rinominando il database di backup con il nome del database di applicazione.

  • Migrazione delle applicazioni: Può essere necessario eseguire la migrazione dell'applicazione, che implica anche lo spostamento del database.

noteNota
I database creati con la funzionalità di copia vengono presi in considerazione per il calcolo del limite di 150 database Database di Azure SQL per ogni server Database di Azure SQL. Per gli effetti sui costi e sulla fatturazione, vedere Account e fatturazione nel database SQL di Azure.

Icona freccia usata con il collegamento Torna all'inizio [Top]

Quando si usa la funzionalità di copia del database, i database vengono copiati in modo asincrono, pertanto una connessione al server Database di Azure SQL non è necessaria per la durata completa del processo. È possibile copiare un database accedendo al database master del server di destinazione ed eseguendo l'istruzione CREATE DATABASE Transact-SQL con la clausola AS COPY OF. Sarà quindi possibile monitorare il processo di copia utilizzando le viste sys.dm_database_copies e sys.databases nel server di destinazione.

È possibile copiare un database nello stesso server Database di Azure SQL, utilizzando un nome di database diverso, oppure copiarlo in un server Database di Azure SQL diverso. In questa sezione vengono analizzate entrambe le alternative.

Quando si copia un database per crearne uno nuovo nello stesso server Database di Azure SQL, è possibile utilizzare gli stessi account di accesso per entrambi i database. L'entità di sicurezza utilizzata per copiare il database diventa il proprietario del nuovo database (DBO) durante la sua creazione. La seguente figura illustra la copia sullo stesso server:

Copia del database nello stesso server di database SQL

In questa figura, Database1A viene copiato in un nuovo database, Database1B, sullo stesso server Database di Azure SQL Server1. L'account di accesso con il quale è stata eseguita la copia del database diventa DBO del Database1B. Tutti gli utenti del database, le relative autorizzazioni e gli ID di sicurezza (SID) di Database1A vengono copiati in Database1B. Poiché gli ID di sicurezza degli utenti sono gli stessi su entrambi i database, gli account di accesso di Server1 gestiscono le stesse autorizzazioni su entrambi i database.

Al termine della copia, Database1B diventa un database indipendente, completamente funzionante. Gli account di accesso, gli utenti e le autorizzazioni di Database1B possono essere gestiti indipendentemente rispetto a Database1A.

È inoltre possibile copiare un database tra due server di Database di Azure SQL diversi, purché tali server si trovino nella stessa area. Poiché il nuovo database viene creato in un server Database di Azure SQL diverso, viene associato a un database master diverso. Tutti gli utenti del nuovo database gestiscono le autorizzazioni ottenute nel database di origine. L'entità di sicurezza utilizzata per copiare il database diventa il proprietario del nuovo database durante la sua creazione e viene associata a un nuovo ID di sicurezza (SID). La seguente figura illustra la copia su più server:

Copia del database in un altro server di database SQL

In questa figura, Database1A viene copiato da Server1 in un nuovo database Database2A su un server Database di Azure SQL distinto, Server2. L'account di accesso con il quale è stata eseguita la copia del database diventa DBO del Database2A. Tutti gli utenti del database e le relative autorizzazioni (ma non gli ID di sicurezza) di Database1A vengono copiati in Database2A. Gli account di accesso di Server1 non possono essere utilizzati con il nuovo database perché sono associati a un server Database di Azure SQL diverso e perché gli ID di sicurezza utente di Database2A sono diversi dagli ID di sicurezza utente di Database1A.

ImportantImportante
Un'area del database SQL di Azure può essere costituita da più cluster fisici. Attualmente non è possibile copiare un database tra due diversi cluster. Non è inoltre possibile copiare un database tra due diverse sottoscrizioni.  Per ulteriori informazioni su queste limitazioni, vedere Restrictions.

Al termine del processo di copia tra server, gli account di accesso, gli utenti e le autorizzazioni di Database2A possono essere gestiti indipendentemente da Database1A. Utilizzare l'account di accesso DBO e l'istruzione ALTER USER Transact-SQL per eseguire il mapping degli utenti nel nuovo database agli account di accesso nel nuovo server Database di Azure SQL. Esempio: ALTER USER userName WITH LOGIN='loginName'. Per ulteriori informazioni, vedere ALTER USER.

Icona freccia usata con il collegamento Torna all'inizio [Top]

La copia di un database mediante l'apposita funzionalità (Copia di database) è il metodo più diretto ma, in considerazione delle restrizioni descritte in precedenza, in alcuni casi può essere necessario considerare l'uso di uno dei metodi alternativi. .

Alcune note sulle opzioni supportate:

La funzionalità di ripristino temporizzato consente di creare una copia di una versione precedente del database, ad esempio se è necessario creare una copia di una versione del database precedente all'ultimo aggiornamento. La funzionalità di ripristino temporizzato è disponibile solo nei nuovi livelli di servizio. Per altre informazioni sulla funzionalità di ripristino temporizzato, vedere Backup e ripristino del database SQL di Azure.

La replica geografica attiva è disponibile solo sui database che usano il livello di servizio Premium e consente di controllare i tempi di completamento della copia. Si consiglia di usare questa funzionalità quando è necessario un attento coordinamento del completamento della copia con altre operazioni del flusso di lavoro. Per altre informazioni, vedere Replica geografica attiva per il database SQL di Azure.

Si consiglia di prendere in considerazione il servizio di Importazione/Esportazione qualora non fossero disponibili altre opzioni in un particolare scenario. Per informazioni sull'Importazione/Esportazione, vedere Procedura: importare ed esportare un database (database SQL di Azure).

Nella tabella seguente sono elencate le opzioni disponibili per i diversi casi di utilizzo:

 

Caso Sottoscrizione Area geografica Server Opzioni supportate

Caso A

Uguale

Uguale

Uguale

  • Copia di database (T-SQL, REST o PowerShell)

  • Ripristino temporizzato

Caso B

Uguale

Uguale

Diverso

  • Copia di database (T-SQL)

  • Copia di database (T-SQL, REST o PowerShell) sullo stesso server + Importazione/Esportazione

  • Ripristino temporizzato sullo stesso server + Importazione/Esportazione

  • Replica geografica attiva

Caso B

Uguale

Diverso

Diverso

  • Copia di database (T-SQL, REST o PowerShell) sullo stesso server + importazione/esportazione

  • Ripristino temporizzato sullo stesso server + importazione/esportazione

  • Replica geografica attiva

Caso C

Diverso

Uguale

Diverso

  • Copia di database (T-SQL, REST o PowerShell) sullo stesso server + importazione/esportazione

  • Ripristino temporizzato sullo stesso server + importazione/esportazione

Caso C

Diverso

Diverso

Diverso

  • Copia di database (T-SQL, REST o PowerShell) sullo stesso server + importazione/esportazione

  • Ripristino temporizzato sullo stesso server + importazione/esportazione

Caso di utilizzo A
Quando origine e destinazione si trovano sullo stesso server, è il modo più diretto per copiare il database con le funzionalità Copia di database o Ripristino temporizzato. Come descritto in precedenza, la funzionalità Ripristino temporizzato consente di creare una copia del database a un momento specifico nel passato, mentre la funzionalità Copia di database esegue la copia del database a partire dall'ora corrente.

Caso di utilizzo B
Quando l'origine e la destinazione si trovano nelle stesse sottoscrizioni, ma server diversi, è possibile usare la funzionalità Copia di database con T-SQL per eseguire la copia su un diverso server logico. Se tuttavia il server logico si trova in un cluster fisico diverso, la copia avrà esito negativo. Per determinare se i server logici si trovano nello stesso cluster, usare "Ping" su entrambi i server per controllare se condividono lo stesso indirizzo IP. Se il server di destinazione si trova in un cluster diverso, eseguire i passaggi seguenti:

  1. Creare una copia intermedia (gestione temporanea) del database nello stesso server di quello di origine. A tale scopo, è possibile usare la funzionalità Copia di database o Ripristino temporizzato.

  2. Esportare la copia in un file BACPAC in Archiviazione BLOB di Azure.

  3. Importare il file BACPAC creato nel Passaggio 2 in un database nella sottoscrizione/area/server desiderati.

  4. Eliminare il database intermedio (di gestione temporanea) creato nel Passaggio 1.

Per i database Premium: In alternativa, è possibile scegliere di usare Replica geografica attiva per creare un database secondario come copia del database di origine. Per creare una copia del database eseguire i passaggi seguenti:

  1. Creare un database secondario nel server di destinazione.

  2. Quando il processo di replica è nello stato di recupero arrestare il database secondario.

  3. La nuova copia diventa un database indipendente, disponibile per operazioni di lettura e scrittura.

  4. Rinominare la copia se è necessario assegnare un nome diverso da quello del database di origine.

Caso di utilizzo C
Quando l'origine e la destinazione si trovano in diverse sottoscrizioni, indipendentemente dal fatto che l'area sia uguale o diversa, è possibile usare il processo descritto per il Caso di utilizzo B, ad eccezione di Replica geografica attiva. Replica geografica attiva non funziona nelle sottoscrizioni.

Nelle sezioni seguenti viene illustrato il funzionamento della copia del database nello stesso server logico o in un server logico diverso.

Vedere anche

Mostra:
© 2014 Microsoft