Spostamento di database tra computer che eseguono SQL Server

Traduzione articoli Traduzione articoli
Identificativo articolo: 314546 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene illustrato in dettaglio come spostare database utente di Microsoft SQL Server e i pi¨ comuni componenti di SQL Server tra computer che eseguono SQL Server.

La procedura riportata in questo articolo prevede che non vengano spostati i database di sistema master, model, tempdb o msdb. Sono fornite diverse opzioni per il trasferimento di accessi e dei componenti pi¨ comuni contenuti nei database master e msdb.

Per informazioni sugli elementi che non vengono trasferiti effettuando la procedura indicata in questo articolo, fare riferimento alla sezione "Informazioni" di questo articolo.

Nota ╚ supportata la migrazione di dati da SQL Server 2000 a Microsoft SQL Server 2000 (64 bit). Per collegare un database a 32 bit a un database a 64 bit Ŕ possibile utilizzare la stored procedure di sistema sp_attach_db o sp_attach_single_file_db oppure la funzionalitÓ di backup e ripristino in Enterprise Manager a 32 bit. ╚ possibile spostare i database dalla versione 32 bit alla versione a 64 bit di SQL Server e viceversa. Gli stessi metodi possono essere utilizzati anche per effettuare la migrazione dei dati da SQL Server 7.0. Non Ŕ invece supportato il downgrade dei dati da SQL Server 2000 (64 bit) a SQL Server 7.0. Di seguito viene riportata la descrizione di ciascun metodo.

Se si utilizza SQL Server 2005

╚ possibile utilizzare lo stesso metodo per migrare i dati da SQL Server 7.0 o da SQL Server 2000. Lo strumento di gestione disponibile in Microsoft SQL Server 2005, tuttavia, differisce da quello incluso in SQL Server 7.0 o in SQL Server 2000. Occorre utilizzare SQL Server Management Studio anzichÚ SQL Server Enterprise Manager; Importazione/Esportazione guidata (DTSWizard.exe) di SQL Server anzichÚ Importazione/Esportazione guidata di Data Transformation Services.

Backup e ripristino

Eseguire il backup dei database utente sul server di origine, quindi ripristinarli sul server di destinazione.
  • Il database pu˛ essere utilizzato quando il backup Ŕ in corso. Se gli utenti eseguono le istruzioni INSERT, UPDATE o DELETE sul database dopo il completamento del backup, quest'ultimo non conterrÓ tali modifiche. Se Ŕ necessario trasferire tutte le modifiche, Ŕ possibile effettuare questa operazione con una minima interruzione dell'attivitÓ se si esegue un backup del registro delle transazioni e un backup completo del database.
    1. Ripristinare il backup del database completo sul server di destinazione e specificare l'opzione WITH NORECOVERY.

      Nota Per impedire ulteriori modifiche del database, informare gli utenti della necessitÓ di non effettuare attivitÓ di database sul server di origine.
    2. Effettuare un backup del registro delle transazioni e ripristinare tale backup sul server di destinazione utilizzando l'opzione WITH RECOVERY. L'interruzione di attivitÓ Ŕ limitata al tempo necessario per il backup e il ripristino del registro delle transazioni. Per ulteriori informazioni, vedere l'argomento "RESTORE" nella "Guida di riferimento a Transact-SQL" della Documentazione in linea di SQL Server.
  • Il database sul server di destinazione avrÓ la stessa dimensione di quello sul server di origine. Per ridurre la dimensione del database, Ŕ necessario ridurre quella del database di origine prima dell'esecuzione del backup oppure quella del database di destinazione al termine del ripristino. Per ulteriori informazioni, vedere "Compattazione di un database" nell'argomento "Creazione e gestione di database" della Documentazione in linea di SQL Server.
  • Se il database viene ripristinato in un percorso di file diverso rispetto al database di origine, Ŕ necessario specificare l'opzione WITH MOVE. Un caso di questo tipo si verifica, ad esempio, quando il database sul server di origine si trova nella cartella D:\Mssql\Data ma sul server di destinazione non esiste un'unitÓ D e si desidera ripristinare il database nella cartella C:\Mssql\Data. Per ulteriori informazioni su come ripristinare un database in una posizione diversa, fare clic sui numeri dei seguenti articoli della Microsoft Knowledge Base:
    221465 INF: Utilizzo dell'opzione WITH MOVE con l'istruzione RESTORE
    304692 INF: Spostamento di database di SQL Server in una nuova posizione mediante BACKUP e RESTORE
  • Se si desidera sovrascrivere un database preesistente sul server di destinazione, Ŕ necessario specificare l'opzione WITH REPLACE. Per ulteriori informazioni, vedere l'argomento "RESTORE" nella "Guida di riferimento a Transact-SQL" della Documentazione in linea di SQL Server.
  • A seconda della versione di SQL Server in cui si effettua il ripristino, pu˛ essere necessario che il set di caratteri, il tipo di ordinamento e le regole di confronto Unicode siano uguali sui server di origine e di destinazione. Per ulteriori informazioni, vedere la sezione "Nota sulle regole di confronto" di questo articolo.

Stored procedure Sp_detach_db e Sp_attach_db

Per utilizzare le stored procedure sp_detach_db e sp_attach_db, attenersi alla procedura seguente:
  1. Scollegare il database sul server di origine utilizzando la stored procedure sp_detach_db. ╚ necessario copiare i file mdf, ndf e ldf associati al database sul server di destinazione. Nella tabella che segue Ŕ riportata una descrizione dei tipi di file:
    Riduci questa tabellaEspandi questa tabella
    Estensioni del fileDescrizione
    mdf File di dati principale
    ndf File di dati secondario
    ldf File del registro delle transazioni
  2. Collegarsi al database sul server di destinazione utilizzando la stored procedure sp_attach_db e fare riferimento ai file copiati sul server di destinazione nel passaggio precedente. Per ulteriori informazioni su come utilizzare questi metodi, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    224071 INF: Spostamento di database di SQL Server in una nuova posizione mediante le funzionalitÓ di scollegamento/collegamento
  • Il database Ŕ inaccessibile dopo averlo scollegato, e non Ŕ possibile utilizzarlo quando si copiano i file. Tutti i dati contenuti nel database al momento dello scollegamento vengono spostati.
  • Pu˛ essere necessario che il set di caratteri, il tipo di ordinamento e le regole di confronto Unicode siano uguali su entrambi i server quando si utilizza il metodo di collegamento o scollegamento. Per ulteriori informazioni, vedere la sezione "Nota sulle regole di confronto" di questo articolo.

Nota sulle regole di confronto

Se si spostano database tra server SQL Server 7.0 utilizzando il metodo di backup e ripristino o il metodo di collegamento e scollegamento, il set di caratteri, l'ordinamento e le regole di confronto Unicode devono essere gli stessi su entrambi i server. Se lo spostamento avviene da SQL Server 7.0 a SQL Server 2000 o tra server con SQL Server 2000, il database mantiene le regole di confronto del database di origine. Questo significa che se le regole di confronto del server di destinazione che esegue SQL Server 2000 sono diverse rispetto a quelle del database di origine, il database di destinazione avrÓ regole di confronto diverse rispetto ai database master, model, tempdb e msdb del server di destinazione. Per ulteriori informazioni, vedere l'argomento della documentazione in linea di SQL Server 2000 dedicato agli ambienti con regole di confronto miste.

Importazione ed esportazione di dati (copia di oggetti e dati tra database di SQL Server)

╚ possibile copiare un intero database o specifici oggetti e dati dal database di origine al database di destinazione utilizzando Importazione/Esportazione guidata di Data Transformation Services.
  • Il database di origine pu˛ essere utilizzato durante il trasferimento. Se il database di origine viene utilizzato durante il trasferimento, Ŕ possibile che vengano visualizzati dei blocchi nel corso del trasferimento.
  • Quando si utilizza la procedura guidata di importazione ed esportazione dati, non Ŕ necessario che il set di caratteri, il tipo di ordinamento e le regole di confronto siano uguali sui server di origine e di destinazione.
  • Dato che gli spazi inutilizzati nel database di origine non vengono inclusi nello spostamento, la dimensione del database di destinazione non coincide necessariamente con quella del database di origine. Allo stesso modo, se si spostano solo alcuni oggetti, la dimensione del database di destinazione pu˛ essere diversa rispetto a quella del database di origine.
  • Con Data Transformation Services di SQL Server 7.0 Ŕ possibile che i testi e le immagini superiori a 64 KB non vengano trasferiti correttamente. Questo problema non si verifica con la versione di Data Transformation Services di SQL Server 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    257425 FIX: Con DTS Object Transfer non vengono trasferiti dati BLOB con dimensione superiore a 64 KB

Passaggio 2: Trasferimento di accessi e password

Se non si trasferiscono gli accessi dal server di origine a quello di destinazione, gli utenti correnti di SQL Server potrebbero non essere in grado di accedere al server di destinazione. Per trasferire gli accessi e le password, attenersi alle istruzioni riportate nell'articolo della Microsoft Knowledge Base riportato di seguito:
246133 Trasferimento di accessi e password tra istanze di SQL Server
I database predefiniti per gli accessi sul server di destinazione potrebbero essere diversi dal database predefinito per gli accessi sul server di origine. Per cambiare il database predefinito per un accesso, Ŕ possibile utilizzare la stored procedure sp_defaultdb. Per ulteriori informazioni, vedere l'argomento "sp_defaultdb" nella "Guida di riferimento a Transact-SQL" della Documentazione in linea di SQL Server.

Passaggio 3: Risoluzione di utenti isolati

Dopo il trasferimento degli accessi e delle password sul server di destinazione, Ŕ possibile che il database risulti inaccessibile agli utenti. Gli accessi sono associati agli utenti mediante l'identificativo SID (Security Identifier) e se questo non Ŕ coerente quando si sposta un database, l'accesso utente al database potrebbe essere negato in SQL Server. Questo problema Ŕ noto come "utente isolato". Se il trasferimento di accessi e password viene effettuato utilizzando la funzione di trasferimento degli account di accesso di SQL Server 2000 DTS, Ŕ probabile che si creino utenti isolati. Questo stesso problema si verifica anche se gli account di accesso integrati sono autorizzati ad accedere a un server di destinazione in un dominio diverso rispetto al server di origine.
  1. Cercare gli utenti isolati. Aprire Query Analyzer sul server di destinazione, quindi eseguire il codice riportato di seguito nel database utente spostato:
    exec sp_change_users_login 'Report'
    Con questa procedura vengono elencati tutti gli utenti isolati non collegati a un accesso. Se non viene segnalato alcun utente, saltare i passaggi 2 e 3 e procedere con il passaggio 4.
  2. Risolvere gli utenti isolati. Se un utente Ŕ isolato, gli utenti del database potranno accedere al server ma non saranno autorizzati ad accedere al database. Se si tenta di autorizzare l'accesso al database, viene visualizzato il messaggio di errore riportato di seguito poichÚ l'utente risulta giÓ esistente:
    Microsoft SQL-DMO (ODBC SQLState: 42000) Errore 15023: L'utente o il ruolo '%1!' esiste giÓ nel database corrente.
    Per ulteriori informazioni su come risolvere utenti isolati, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
    240872 INF: Risoluzione di problemi relativi alle autorizzazioni in caso di spostamento di un database tra server con SQL Server

    In questo articolo vengono fornite istruzioni per associare gli accessi agli utenti del database e risolvere gli utenti isolati dagli accessi standard di SQL Server e dagli accessi integrati.

    274188 L'argomento della documentazione in linea sulla risoluzione dei problemi relativi agli utenti orfani non Ŕ completo

    In questo articolo viene illustrato come utilizzare la stored procedure sp_change_users_login per risolvere gli utenti isolati uno per uno. La stored procedure sp_change_users_login consente di risolvere solo gli utenti isolati dagli accessi standard di SQL Server.
  3. Se il proprietario del database (dbo) Ŕ indicato come isolato, eseguire il codice riportato di seguito nel database utente:
    exec sp_changedbowner 'sa'
    La stored procedure risolve il problema assegnando la proprietÓ del database a dbo. Per assegnare la proprietÓ del database a un altro utente, eseguire nuovamente sp_changedbowner con l'utente desiderato. Per ulteriori informazioni, vedere l'argomento "sp_changedbowner" nella "Guida di riferimento a Transact-SQL" della Documentazione in linea di SQL Server.
  4. Se il server di destinazione esegue SQL Server 2000 Service Pack 1, Ŕ possibile che il proprietario del database non sia incluso nell'elenco nella cartella Users in Enterprise Manager dopo l'esecuzione del collegamento o del ripristino o di entrambi. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    305711 BUG: L'utente DBO non viene visualizzato in Enterprise Manager
  5. Se si tenta di modificare la password dell'amministratore del sistema (sa) tramite Enterprise Manager qualora l'accesso associato a dbo sul server di origine non esista sul server di destinazione, Ŕ possibile che venga visualizzato il seguente messaggio di errore:
    Errore 21776: [SQL-DMO] Impossibile trovare il nome 'dbo' nell'insieme Users. Se si tratta di un nome qualificato, separare le varie parti del nome con [], quindi riprovare.
    Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    218172 PRB: Impossibile modificare la password SA in Enterprise Manager
Avviso Se si ripete il ripristino o il collegamento del database, Ŕ possibile che gli utenti del database siano nuovamente isolati e che sia necessario ripetere il passaggio 3.

Passaggio 4: Spostamento di processi, avvisi e operatori

Il passaggio 4 Ŕ facoltativo. ╚ possibile generare script per tutti i processi, gli avvisi e gli operatori sul server di origine, quindi eseguire lo script sul server di destinazione.
  • Per spostare processi, avvisi e operatori, attenersi alla procedura seguente:
    1. Aprire SQL Server Enterprise Manager ed espandere la cartella Gestione.
    2. Espandere Agente SQL Server, quindi fare clic con il pulsante destro del mouse su Avvisi, Processi o Operatori.
    3. Fare clic su Tutte le attivitÓ, quindi su Genera script SQL. Per SQL Server 7.0, fare clic su Inserisci nello script tutti i processi o Avvisi o Operatori.
    A seconda dell'elemento oggetto dell'operazione, sarÓ possibile generare script per Tutti gli avvisi, Tutti i processi o Tutti gli operatori.
  • Non Ŕ possibile spostare processi, avvisi e operatori da SQL Server 7.0 a SQL Server 2000 o tra server che eseguono SQL Server 7.0 e SQL Server 2000.
  • Se alcuni operatori sono impostati per la notifica mediante SQL Mail sul server di origine, Ŕ necessario configurare SQL Mail sul server di destinazione in modo che disponga della stessa funzionalitÓ. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    263556 INF: Configurazione di SQL Mail

Passaggio 5: Spostamento di pacchetti DTS

Il passaggio 5 Ŕ facoltativo. I pacchetti DTS archiviati sul server di origine in SQL Server o nel repository possono essere spostati, se necessario. Per spostare i pacchetti DTS tra utenti, utilizzare uno dei metodi seguenti.

Metodo 1

  1. Salvare in un file il pacchetto DTS sul server di origine, quindi aprire il file del pacchetto DTS sul server di destinazione.
  2. Salvare il pacchetto sul server di destinazione in SQL Server o nel repository.
    Nota I pacchetti devono essere spostati uno per uno in file separati.

Metodo 2

  1. Aprire ciascun pacchetto DTS in Progettazione DTS.
  2. Scegliere Salva con nome dal menu Pacchetto.
  3. Specificare il computer SQL Server di destinazione.
Nota ╚ possibile che il pacchetto non venga eseguito correttamente sul nuovo server. Pu˛ essere necessario modificare il pacchetto, nonchÚ tutti i riferimenti del pacchetto a connessioni, file, origini dati, profili e altre informazioni sul server di origine in modo che facciano riferimento al nuovo server di destinazione. Queste modifiche devono essere effettuate singolarmente, pacchetto per pacchetto, in base alla struttura di ciascun pacchetto.

Informazioni

In alcuni casi pu˛ essere necessario spostare anche altri elementi, quali repliche, distribuzione dei registri, cataloghi full-text, periferiche di backup con nome, piani di manutenzione e server collegati. Esaminare queste configurazioni sul server di origine ed effettuare le procedure necessarie per impostarle manualmente sul server di destinazione, se necessario.

Per ulteriori informazioni sullo spostamento di componenti full-text, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
240867 INF: Spostamento, copia e backup di file e cartelle di cataloghi full-text
I diagrammi del database e la cronologia di backup e ripristino non vengono spostati se si effettuano le procedure indicate in questo articolo. Se Ŕ necessario spostare tali informazioni, spostare il database di sistema msdb. Per informazioni sullo spostamento del database msdb, fare riferimento agli articoli della Microsoft Knowledge Base indicati nella sezione "Passaggio 1: Spostamento dei database utente" di questo articolo. In caso di spostamento del database msdb, non effettuare il "Passaggio 4: Spostamento di processi, avvisi e operatori" o il "Passaggio 5: Spostamento di pacchetti DTS".

Riferimenti

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
320125 Spostamento di un diagramma di database

ProprietÓ

Identificativo articolo: 314546 - Ultima modifica: martedý 16 luglio 2013 - Revisione: 7.2
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
Chiavi:á
kbsqlmanagementtools kbhowtomaster KB314546
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com