Non Ŕ possibile ripristinare i backup del database di sistema a una build diversa di SQL Server

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

Sintomi

╚ Impossibile ripristinare un backup di un database di sistema ( master , modello o msdb ) in una build per server diverso dalla generazione in cui Ŕ stato originariamente eseguito il backup. Un tentativo di eseguire un ripristino di tali causa il seguente messaggio di errore si verifichi:
Server: Messaggio 3168, livello 16, stato 1, riga 1
Impossibile ripristinare il backup del database di sistema sul dispositivo d:\temp\master.bak perchÚ Ŕ stato creato con una versione diversa del server (134217904) rispetto a questo server (134217920).
Server: Messaggio 3013, livello 16, stato 1, riga 1
RESTORE DATABASE Ŕ stato terminato in modo anomalo.

Cause

╚ possibile che lo schema di database per i database di sistema viene modificato tra build del server. Per poter garantire che questa modifica dello schema non provochi eventuali incoerenze, uno dei controlli primo che esegue il comando RESTORE Ŕ un confronto tra il numero di build del server nel file di backup e il numero di build del server su cui l'utente sta tentando di eseguire il ripristino. Se le due versioni sono diverse, il messaggio di errore e l'operazione di ripristino viene interrotta in modo anomalo.

Nota L'installazione di un service pack o un aggiornamento rapido (hotfix) di generazione modifiche il numero di build del server e server build sono sempre incrementale.

Ecco alcuni scenari in cui questo problema pu˛ verificarsi:
  • Un utente tenta di ripristinare un database di sistema sul Server A da un backup sul server server b. A e B sono generazioni di server diverso. Ad esempio, Server A potrebbe essere una versione RTM e Server B potrebbe essere un service pack 1 (SP1) generazione.
  • Un utente tenta di ripristinare un database di sistema da un backup sullo stesso server. Tuttavia, il server Ŕ stato in esecuzione una compilazione differente quando si Ŕ verificato il backup. Vale a dire il server Ŕ stato aggiornato poichÚ Ŕ stato eseguito il backup.

Workaround

Il processo di ripristino in tale situazione Ŕ piuttosto coinvolti e viene utilizzata solo come ultima risorsa.

Il primo passaggio il tentativo di risolvere il problema consiste nel determinare la generazione corrente del server e SQL Server basate su cui Ŕ stato eseguito il backup.

Microsoft SQL Server 2000 e di Microsoft SQL Server 2005 forniscono due metodi seguenti per determinare la generazione di SQL Server corrente:
  • metodo 1
    SELECT @@version
    questo codice restituisce testo simile a:
    Microsoft SQL Server  2000 - 8.00.192 (Intel X86)
    Jul 31 2000 15:47:46
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 (Build 2195: )
    (1 row(s) affected)
  • metodo 2
    SELECT SERVERPROPERTY('ProductVersion')
    questo codice restituisce testo simile a:
    8.00.192
    (1 row(s) affected)
Allo scopo di questo articolo, questo numero di build viene fatto riferimento come il "SQL Server Build" nella parte restante di questo articolo.

╚ possibile determinare la generazione in cui durante il backup utilizzando il comando riportato di seguito il file di backup:
RESTORE HEADERONLY
FROM DISK = 'd:\temp\master176.bak'
in output generato, le colonne seguenti tre (3) informazioni il server di generazione:
SoftwareVersionMajor SoftwareVersionMinor SoftwareVersionBuild
-------------------- -------------------- --------------------
8                    0                    176

The actual output has several other columns; however, only the columns that are of interest are included in this article for clarity.
allo scopo di questo articolo, questo numero di build viene fatto riferimento come il "backup build" per il resto di questo articolo.

Nell'esempio, il "SQL Server" indica 8.00.192, mentre la "backup" indica 8.00.176. PoichÚ le due versioni sono diverse, l'operazione di ripristino non Ŕ consentito e messaggio di errore 3168.

Il processo di ripristino per risolvere questo problema varia in base su database di sistema l'utente sta tentando di ripristinare. Come misura precauzionale, Microsoft consiglia che si faccia un backup dei tutti i database esistenti (database di sistema e utente) prima di procedere con uno di questi passaggi.

Se il tentativo di ripristino Ŕ nel database master , Ŕ possibile utilizzare la procedura seguente per tentare un ripristino:
  1. Scollegare tutti i database utente presente nel sistema utilizzando la procedura sp_detach_db memorizzati. Per ulteriori informazioni sulla disconnessione database utente, fare riferimento all'argomento "Collegamento e scollegamento di database" nella documentazione in linea di SQL Server 2000. Se si utilizza SQL Server 2005, vedere la "Detaching e collegamento di un database" nella documentazione in linea di SQL Server 2005. Come un controllo incrociato, la query seguente restituisce un elenco di tutti i database utente sul sistema:
    SELECT name FROM SYSDATABASES
    WHERE dbid > 4
  2. Backup i database msdb e model nel sistema utilizzando i comandi seguenti:
    BACKUP DATABASE MSDB TO DISK = '<backup device>' WITH NOINIT, NOSKIP
    BACKUP DATABASE MODEL TO DISK = '<backup device>' WITH NOINIT, NOSKIP
  3. Se il "backup build" Ŕ maggiore del "SQL Server Build", installare tutti i necessari service pack o esegue lo build di aggiornamento rapido (hotfix) per ripristinare il software del server di "backup build" che Ŕ stato determinato in precedenza. Procedere al passaggio 6.
  4. Rimuovere SQL Server 2000 o SQL Server 2005. Per ulteriori informazioni sulla rimozione di SQL Server 2000, fare riferimento all'argomento "How to remove SQL Server 2000" nella documentazione in linea di SQL Server 2000.
  5. Reinstallare SQL Server 2000 o la build di SQL Server 2005 e tutti i necessari service pack o aggiornamento rapido (hotfix) per ripristinare il software del server di "backup build" che Ŕ stato determinato in precedenza.
  6. Avviare il server in modalitÓ utente singolo e ripristinare il database master dal file di backup per la generazione. Per istruzioni sul ripristino del database master , fare riferimento all'argomento "Ripristino del master database da un backup corrente" nella documentazione in linea di SQL Server 2000. Se si utilizza SQL Server 2005, vedere "Ripristino del database master" nella documentazione in linea di SQL Server 2005.
  7. Dopo aver ripristinato correttamente il database master , Ŕ necessario arrestare e riavviare il servizio SQL Server.
  8. Se il "backup build" Ŕ maggiore del "SQL Server Build", andare al passaggio 10.
  9. Riapplicare eventuali service pack o di una build di aggiornamento rapido (hotfix) necessari per ripristinare il software del server "build SQL Server".
  10. Ripristinare i database msdb e model dai backup creati nel passaggio 2. Se si utilizza SQL Server 2005, vedere "Ripristino del database model e msdb" nella documentazione in linea di SQL Server 2005.
  11. Ricollegare tutti i database utente utilizzando la procedura sp_attach_db memorizzati. Per ulteriori informazioni su come ricollegare il database, fare riferimento all'argomento "Collegamento e scollegamento di database" nella documentazione in linea di SQL Server 2000.
Le modifiche apportate al database master dopo che Ŕ stato eseguito il backup di master sono ora persa e deve essere riapplicato manualmente.
Se si tenta l'operazione di ripristino il modello o il database msdb , Ŕ possibile utilizzare la procedura seguente per risolvere il problema. Per illustrare questa procedura con un esempio, in questo articolo si riferisce al server originale in cui uno di questi database, ad esempio msdb , deve essere ripristinato come server a. Questa procedura implica l'installazione di SQL Server in un diverso Server B per evitare il messaggio di errore 3168. Il presupposto naturalmente, Ŕ di solo avere un backup valido da un build precedente per il msdb su server a.
  1. Installare SQL Server 2000 nel Server B (con le stesse regole di confronto Impostazioni Server A) e service pack o build di aggiornamento rapido (hotfix) necessari per il software del server per il "backup build".
  2. Dopo l'installazione di SQL Server 2000, avviare il servizio SQL Server e provare a ripristinare il database msdb dal file di backup. Il funzionamento di ripristino se il server di generare e la generazione in cui Ŕ stato eseguito il backup sono identici.
  3. Se il "backup build" Ŕ maggiore del "corrente build", andare al passaggio 5.
  4. Dopo un ripristino, aggiornamento da SQL Server 2000 nel Server B applicando eventuali service pack o aggiornamento rapido (hotfix) Crea necessari per ripristinare il software del server di "corrente build".
  5. Al termine dell'aggiornamento, eseguire un backup del database msdb . A questo punto sarÓ possibile ripristinare da questa copia di backup sul Server A, considerando che la generazione del server su cui Ŕ stato eseguito il backup e il "corrente build" sono identici.
La stessa procedura funziona per nonchÚ il database di modello . Anche in questo caso, tutte le modifiche apportate per questi database poichÚ Ŕ stato eseguito il backup vengono perse e devono essere riapplicate manualmente.

Informazioni

╚ sempre una buona norma disporre di una strategia di backup corrente, effettiva. Questa limitazione Ŕ ancora un altro esempio di una buona strategia di backup Ŕ importante. Luce di questa limitazione, Ŕ necessario eseguire un backup del database di sistema non appena si aggiorna il server quando si installa un service pack o di una build di aggiornamento rapido (hotfix).

ProprietÓ

Identificativo articolo: 264474 - Ultima modifica: giovedý 22 febbraio 2007 - Revisione: 6.4
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Chiavi:á
kbmt kbbackup kbprb KB264474 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 264474
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