Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I file di dati e di log delle transazioni di un database possono essere scollegati e quindi ricollegati alla stessa istanza o a un'altra istanza di SQL Server. Scollegare e collegare un database è utile se si desidera modificare il database in un'istanza diversa di SQL Server nello stesso computer o per spostare il database.
Il formato di archiviazione su disco di SQL Server è lo stesso negli ambienti a 64 bit e a 32 bit. Pertanto, il collegamento funziona in ambienti a 32 bit e a 64 bit. Un database scollegato da un'istanza del server in esecuzione in un ambiente può essere collegato in un'istanza del server eseguita in un altro ambiente.
Sicurezza
Le autorizzazioni di accesso ai file vengono impostate durante l'esecuzione di alcune operazioni del database, inclusi il collegamento e lo scollegamento.
Importante
È consigliabile evitare di collegare o ripristinare database provenienti da origini sconosciute o non attendibili. Tali database possono contenere codice dannoso che potrebbe eseguire codice Transact-SQL indesiderato o causare errori modificando lo schema o la struttura fisica del database. Prima di utilizzare un database da un'origine sconosciuta o non attendibile, eseguire DBCC CHECKDB sul database in un server non di produzione ed esaminare il codice contenuto nel database, ad esempio le stored procedure o altro codice definito dall'utente.
Scollegamento di un database
Il scollegamento di un database lo rimuove dall'istanza di SQL Server, ma lascia intatto il database all'interno dei file di dati e dei file di log delle transazioni. Questi file possono quindi essere usati per collegare il database a qualsiasi istanza di SQL Server, incluso il server da cui è stato scollegato il database.
Non è possibile scollegare un database se si verifica una delle condizioni seguenti:
Il database viene replicato e pubblicato. Se replicato, il database deve essere rimosso dalla pubblicazione. Prima di scollegarlo, è necessario disabilitare la pubblicazione eseguendo sp_replicationdboption.
Annotazioni
Se non è possibile usare sp_replicationdboption, è possibile rimuovere la replica eseguendo sp_removedbreplication.
Nel database è presente uno snapshot del database.
Prima di poter scollegare il database, è necessario eliminare tutti gli snapshot. Per altre informazioni, vedere Eliminare uno snapshot del database (Transact-SQL).
Annotazioni
Non è possibile scollegare o collegare uno snapshot del database.
Il database viene sottoposto a mirroring in una sessione di mirroring del database.
Il database non può essere scollegato a meno che la sessione non venga terminata. Per altre informazioni, vedere Rimozione del mirroring del database (SQL Server).
Il database è sospetto. Non è possibile scollegare un database sospetto; prima di poter scollegarlo, è necessario metterlo in modalità di emergenza. Per altre informazioni su come inserire un database in modalità di emergenza, vedere ALTER DATABASE (Transact-SQL).
Il database è un database di sistema.
Backup e ripristino e scollegamento
Il scollegamento di un database di sola lettura perde informazioni sulle basi differenziali dei backup differenziali. Per altre informazioni, vedere Backup differenziali (SQL Server).
Risposta agli errori di scollegamento
Gli errori generati durante la disconnessione di un database possono impedire la chiusura pulita del database e la ricompilazione del log delle transazioni. Se viene visualizzato un messaggio di errore, eseguire le azioni correttive seguenti:
Ricollegare tutti i file associati al database, non solo il file primario.
Risolvere il problema che ha causato il messaggio di errore.
Scollegare di nuovo il database.
Collegamento di un database
È possibile collegare un database di SQL Server copiato o scollegato. Quando si collega un'istanza del server SQL Server 2014, i file di catalogo vengono allegati dal percorso precedente insieme agli altri file di database, come in SQL Server 2005. Per altre informazioni, vedere Upgrade Full-Text Search.
Quando si collega un database, tutti i file di dati (file MDF e NDF) devono essere disponibili. Se un file di dati si trova in un percorso diverso rispetto al momento della creazione o dell'ultimo collegamento del database, è necessario specificare il percorso corrente.
Annotazioni
Se il file di dati primario collegato è di sola lettura, il motore di database presuppone che il database sia di sola lettura.
Quando un database crittografato viene prima collegato a un'istanza di SQL Server, il proprietario del database deve aprire la chiave master del database eseguendo l'istruzione SEGUENTE: OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password
'. È consigliabile abilitare la decrittografia automatica della chiave master eseguendo l'istruzione seguente: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY. Per altre informazioni, vedere CREATE MASTER KEY (Transact-SQL) e ALTER MASTER KEY (Transact-SQL).
Il requisito per allegare i file di log dipende in parte dal fatto che il database sia in modalità di lettura/scrittura o di sola lettura, come indicato di seguito.
Per un database di lettura/scrittura, in genere è possibile allegare un file di log in un nuovo percorso. Tuttavia, in alcuni casi, il ricollegamento di un database richiede i file di log esistenti. Pertanto, è importante mantenere sempre tutti i file di log scollegati finché il database non viene collegato correttamente senza di essi.
Se un database di lettura/scrittura ha un singolo file di log e non si specifica un nuovo percorso per il file di log, l'operazione di collegamento cerca nel percorso precedente per il file. Se viene trovato, viene usato il file di log precedente, indipendentemente dal fatto che il database sia stato arrestato correttamente. Tuttavia, se il file di log precedente non viene trovato e se il database è stato arrestato correttamente e non dispone di una catena di log attiva, l'operazione di collegamento tenta di compilare un nuovo file di log per il database.
Se il file di dati primario collegato è di sola lettura, SQL Server non può aggiornare il percorso del log archiviato nel file primario.
Modifiche ai metadati per il collegamento di un database
Quando un database di sola lettura viene scollegato e ricollegato, le informazioni di backup sulla base differenziale corrente andranno perse. La base differenziale è il backup completo più recente di tutti i dati nel database o in un subset dei file o dei filegroup del database. Senza le informazioni di backup di base, il database master diventa non sincronizzato con il database di sola lettura, quindi i backup differenziali eseguiti successivamente potrebbero fornire risultati imprevisti. Pertanto, se si usano backup differenziali con un database di sola lettura, è necessario stabilire una nuova base differenziale eseguendo un backup completo dopo aver ricollegato il database. Per informazioni sui backup differenziali, vedere Backup differenziali (SQL Server).
Al collegamento, viene eseguito l'avvio del database. In genere, il collegamento di un database lo inserisce nello stesso stato in cui si trovava quando è stato scollegato o copiato. Tuttavia, le operazioni di collegamento e scollegamento disabilitano il concatenamento della proprietà tra database. Per informazioni su come abilitare il concatenamento, vedere Opzione di configurazione del server cross db ownership chaining. Inoltre, TRUSTWORTHY viene impostato su OFF ogni volta che il database è collegato. Per informazioni su come impostare TRUSTWORTHY su ON, vedere ALTER DATABASE (Transact-SQL).
Backup e ripristino e collegamento
Come qualsiasi database completamente o parzialmente offline, non è possibile allegare un database con il ripristino dei file. Se si arresta la sequenza di ripristino, è possibile collegare il database. È quindi possibile riavviare la sequenza di ripristino.
Collegamento di un database a un'altra istanza del server
Importante
Un database creato con una versione più recente di SQL Server non può essere collegato nelle versioni precedenti.
Quando si collega un database a un'altra istanza del server, per offrire un'esperienza coerente agli utenti e alle applicazioni, potrebbe essere necessario ricreare alcuni o tutti i metadati per il database, ad esempio account di accesso e processi, nell'altra istanza del server. Per altre informazioni, vedere Gestire i metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server).
Attività correlate
Per scollegare un database
Per collegare un database
Per aggiornare un database tramite operazioni di scollegamento e collegamento
Per spostare un database tramite operazioni di scollegamento e collegamento
Per eliminare uno snapshot del database