Discussione:
restore db sql server da .bak
(troppo vecchio per rispondere)
lucasweb.it >>> >>@discussions.microsoft.com>
2006-10-19 08:09:02 UTC
Permalink
Salve ragazzi,
ho un problema nel restore di un database sqlServer da un normale .bak.

Nella procedura di restore specifico oltre al file .bak, anche i consueti
file di log e mdf e cambio il percorso che mi porta la maschera.
Sul veccho server forse stavano li D:\sito\file.mdf e file.log
Io li cambio C:\sql_data\file.mdf e file.log ma mi va in errore.

Precisamente mi dice :

IL SET DI BACKUP INCLUDE UN DATABASE DIVERSO DAL DATABASE ESISTENTE
'VENDITEL'.

Che significa ?
Ho fatto centinaia di restore, ma non mi è mai capitato questo.

Grazie
Lorenzo Benaglia
2006-10-19 08:19:55 UTC
Permalink
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Nella procedura di restore specifico oltre al file .bak, anche i
consueti file di log e mdf e cambio il percorso che mi porta la
maschera.
Eh?!
In che senso specifichi i files .mdf e .ldf?
Stai utilizzando la clausola WITH MOVE?
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Ho fatto centinaia di restore, ma non mi è mai capitato questo.
Come?
Il db che stai restorando è già agganciato all'istanza?
Se si, puoi postare l'output della sp_helpdb e il path fisico dove risiede
il file .bak?
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://italy.mvps.org
lucasweb.it >>>
2006-10-19 08:29:02 UTC
Permalink
Inserisco il percorso dei nuovi file mdf e ldf da creare, ma non li posseggo.
Suppongo cha dal .bak vengano ricreati come ho sempre fatto e scritti nel
percorso
che vado a specificare C:\sql_data\ecc. ecc in sostituzione di quello
D:\data\ecc. esistente già nella maschera e che forse è relativo al vecchio
db.

Purtroppo non ho mai fatto un restore con script, sempre da maschera.
Non ho idea di come farlo da script quindi non utilizzo clausole.
Post by Lorenzo Benaglia
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Nella procedura di restore specifico oltre al file .bak, anche i
consueti file di log e mdf e cambio il percorso che mi porta la
maschera.
Eh?!
In che senso specifichi i files .mdf e .ldf?
Stai utilizzando la clausola WITH MOVE?
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Ho fatto centinaia di restore, ma non mi è mai capitato questo.
Come?
Il db che stai restorando è già agganciato all'istanza?
Se si, puoi postare l'output della sp_helpdb e il path fisico dove risiede
il file .bak?
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://italy.mvps.org
Andrea Benedetti
2006-10-19 08:32:36 UTC
Permalink
Salve lucasweb.it >>>,
Post by lucasweb.it >>>
Inserisco il percorso dei nuovi file mdf e ldf da creare, ma non li posseggo.
Suppongo cha dal .bak vengano ricreati come ho sempre fatto e scritti nel
percorso
che vado a specificare C:\sql_data\ecc. ecc in sostituzione di quello
D:\data\ecc. esistente già nella maschera e che forse è relativo al vecchio
db.
Purtroppo non ho mai fatto un restore con script, sempre da maschera.
Non ho idea di come farlo da script quindi non utilizzo clausole.
Intendi una cosa del genere?

"Restore db da file .bak"
http://www.absistemi.it/tipsql.aspx?id=121

Ciao!
--
Andrea Benedetti
Microsoft MVP - SQL Server
www.absistemi.it - www.ugiss.org
http://blogs.ugidotnet.org/ab
http://mvp.support.microsoft.com
http://italy.mvps.org
AlessandroD
2006-10-19 08:38:00 UTC
Permalink
Post by lucasweb.it >>>
Inserisco il percorso dei nuovi file mdf e ldf da creare, ma non li
posseggo. Suppongo cha dal .bak vengano ricreati come ho sempre fatto
e scritti nel percorso
che vado a specificare C:\sql_data\ecc. ecc in sostituzione di quello
D:\data\ecc. esistente già nella maschera e che forse è relativo al
vecchio db.
Non è che il DB su cui vuoi fare il restore già esiste (quel VENDITEL che
riporti nel messaggio di errore)?
Perché in questo caso devi checkare l'opzione "imponi ripristino su db
esistente" che si trova appena sopra la sezione dove ora stai indicando i
nuovi percorsi per l'mdf e l'ldf.
Credo che l'errore che ottieni sia dovuto al fatto che il file di bakcup che
stai usando è stato generato da un'istanza di SQL Server diversa da quella
dove stai facendo il restore.
Ciao, Alessandro
Luca Bianchi
2006-10-19 08:40:00 UTC
Permalink
Post by lucasweb.it >>> >>@discussions.microsoft.com>
IL SET DI BACKUP INCLUDE UN DATABASE DIVERSO DAL DATABASE ESISTENTE
'VENDITEL'.
Che significa ?
Incolla la stringa che segue nel BOL (menù GO->URL)

trblsql.chm::/tr_reslsyserr_2_7mk4.htm

e ti viene indicato di specificare l'opzione REPLACE equivalente al check
box "force restore over existing database" o qualcosa di simile nel tab
Option di Enterprise Manager
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Grazie
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
lucasweb.it >>>
2006-10-19 09:37:02 UTC
Permalink
Ho già spuntato l'opzione per imporre il ripristino su database esistemte.
L'ho anche eliminato e ricreato nuovo per evitare problemi.

Ma nulla.
Poi volevo chiedere un'altra cosa.
Quegli script per il restore tramite codice, dove li scrivo ?
Non ho mai eseguito un restore con gli script, qualcuno crede che
potrebbe funzionare ?

Grazie
Post by Luca Bianchi
Post by lucasweb.it >>> >>@discussions.microsoft.com>
IL SET DI BACKUP INCLUDE UN DATABASE DIVERSO DAL DATABASE ESISTENTE
'VENDITEL'.
Che significa ?
Incolla la stringa che segue nel BOL (menù GO->URL)
trblsql.chm::/tr_reslsyserr_2_7mk4.htm
e ti viene indicato di specificare l'opzione REPLACE equivalente al check
box "force restore over existing database" o qualcosa di simile nel tab
Option di Enterprise Manager
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Grazie
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
Luca Bianchi
2006-10-19 09:50:18 UTC
Permalink
Post by lucasweb.it >>>
Ho già spuntato l'opzione per imporre il ripristino su database esistemte.
L'ho anche eliminato e ricreato nuovo per evitare problemi.
Ma nulla.
Beh, allora c'è dell'altro che non ci stai dicendo...
Post by lucasweb.it >>>
Quegli script per il restore tramite codice, dove li scrivo ?
In una finestra di query analyzer o di SQL Server Management Studio
Post by lucasweb.it >>>
Non ho mai eseguito un restore con gli script, qualcuno crede che
potrebbe funzionare ?
Se non funzionasse un restore ci sarebbe veramente da preoccuparsi. Visto
che i problemi succedono sempre e solo a chi "non è esperto" posso
facilmente dedurre che se qualcosa non funziona non è da imputare alla
procedura che si segue... ;-)
Post by lucasweb.it >>>
Grazie
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
lucasweb.it >>>
2006-10-19 10:28:01 UTC
Permalink
Questo è quello che ho scritto nel QueryAnalyzer di Sql Server per l'elenco
dei file logici:
RESTORE FILELISTONLY
FROM DISK = 'C:\Inetpub\wwwroot\PCREATIVE\backup\venditel.bak'

Avuti i nomi, come mi riportava la procedura tramite la maschera ho eseguito.
RESTORE DATABASE venditel
FROM DISK = 'c:\inetpub\wwwroot\PCREATIVE\backup\venditel.bak' -- path dove
esiste il file . bak
WITH MOVE 'venditel' TO 'D:\SQLDATA\80\MSSQL\Data\venditel.mdf', -- nuovo
path per mdf
MOVE 'venditel_log' TO 'D:\SQLDATA\80\MSSQL\Data\venditel.ldf' -- nuovo path
per ldf

Questa è la risposta del server:
Server: messaggio 3234, livello 16, stato 2, riga 1
Il file logico 'venditel' non è un file del database 'venditel'. Utilizzare
RESTORE FILELISTONLY per ottenere un elenco dei nomi di file logici.
Server: messaggio 3013, livello 16, stato 1, riga 1
Interruzione anomala di RESTORE DATABASE in corso.

Questo è il messaggio che ricevo se eseguo la procedura senza creare il db
vuoto:
Server: messaggio 913, livello 16, stato 8, riga 1
Impossibile trovare l'ID di database 65535. Il database potrebbe essere in
transizione o non ancora attivato.
Server: messaggio 3013, livello 16, stato 1, riga 1
Interruzione anomala di RESTORE DATABASE in corso.

Non avevo mai fatto un tentativo di restore tramite codice di script, forse
perchè
non ne ho mai avuta la reale necessità.

A proposito dei problemi che capitano solo a chi non è esperto, bhè che dire
forse sei l'unico "esperto" a cui non è mai capitato nulla.

Comunque grazie sempre per la vostra ammirevole disponibilità.
Post by Luca Bianchi
Post by lucasweb.it >>>
Ho già spuntato l'opzione per imporre il ripristino su database esistemte.
L'ho anche eliminato e ricreato nuovo per evitare problemi.
Ma nulla.
Beh, allora c'è dell'altro che non ci stai dicendo...
Post by lucasweb.it >>>
Quegli script per il restore tramite codice, dove li scrivo ?
In una finestra di query analyzer o di SQL Server Management Studio
Post by lucasweb.it >>>
Non ho mai eseguito un restore con gli script, qualcuno crede che
potrebbe funzionare ?
Se non funzionasse un restore ci sarebbe veramente da preoccuparsi. Visto
che i problemi succedono sempre e solo a chi "non è esperto" posso
facilmente dedurre che se qualcosa non funziona non è da imputare alla
procedura che si segue... ;-)
Post by lucasweb.it >>>
Grazie
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
Luca Bianchi
2006-10-19 11:13:10 UTC
Permalink
Post by lucasweb.it >>>
Questo è quello che ho scritto nel QueryAnalyzer di Sql Server per l'elenco
RESTORE FILELISTONLY
...un device di backup può contenere diversi set di backup di diverso tipo e
provenienti da diversi database. Con questa istruzione, senza specificare
l'opzione WITH FILE = x, recuperi le informazioni del primo backup eseguito
su questo device. Fai un passo indietro (se vuoi) e con l'istruzione RESTORE
HEADERONLY verifica che nel campo BackupType ci sia il valore 1 (che
equivale ad un full) in corrispondenza del record in cui il campo Position è
uguale a 1 (questo corrisponde al primo device).
In questo modo ti levi eventuali dubbi (se ancora ce ne sono) se questo
backup è un full oppure no...
Post by lucasweb.it >>>
Server: messaggio 3234, livello 16, stato 2, riga 1
Il file logico 'venditel' non è un file del database 'venditel'. Utilizzare
RESTORE FILELISTONLY per ottenere un elenco dei nomi di file logici.
Server: messaggio 3013, livello 16, stato 1, riga 1
Interruzione anomala di RESTORE DATABASE in corso.
Bene, l'output dell'istruzione RESTORE FILELISTONLY mostrava nel campo
LogicalName ESATTAMENTE il valore venditel così come lo hai scritto tu? O si
tratta di un (tuo) tentativo di modificare il nome logico del file
contestualmente all'attività di ripristino?
Post by lucasweb.it >>>
Questo è il messaggio che ricevo se eseguo la procedura senza creare il db
Significa che il tentativo precedente lo eseguivi cercando di sovrascrivere,
con questo backup, un database esistente? In questo caso avresti dovuto
specificare l'opzione REPLACE come ti è stato detto in precedenza.
Altrimenti cerca di spiegare meglio la situazione...
Post by lucasweb.it >>>
Server: messaggio 913, livello 16, stato 8, riga 1
Impossibile trovare l'ID di database 65535. Il database potrebbe essere in
transizione o non ancora attivato.
Stai facendo un restore point in time?
http://support.microsoft.com/default.aspx?scid=kb;en-us;272683
Post by lucasweb.it >>>
A proposito dei problemi che capitano solo a chi non è esperto, bhè che dire
forse sei l'unico "esperto" a cui non è mai capitato nulla.
Non si tratta di essere esperti o fortunati. Si tratta di capire ciò che si
compie, sia se lo si fa attraverso un'interfaccia grafica e sia se lo si
esegue attraverso uno script. Le interfaccie grafiche sono belle (spesso) e
semplificano (talvolta) l'esecuzione di talune attività ma il fatto di
eseguire con estrema facilità alcune operazioni vitali per un sistema danno
troppo spesso l'illusione di non avere necessità di comprenderne la
tecnologia che c'è dietro.
Solo studiando è possibile ridurre (bada bene, non eliminare) l'insorgenza
di problemi ed è la conoscenza di cui si dispone che fa in modo che i
problemi che (inevitabilmente) si verificano possano essere affrontati
approfondendo un determinato argomento in maniera mirata e senza dover
rincorrere, spesso alla rinfusa, delle idee che ci balenano per la testa e/o
suggerite in un newsgroup.
Post by lucasweb.it >>>
Comunque grazie sempre per la vostra ammirevole disponibilità.
Di nulla...
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
lucasweb.it >>>
2006-10-19 10:06:01 UTC
Permalink
Ragazzi sono giunto a conclusione che il file .bak da cui tento di effettuare
il restore, sia frutto di un salvataggio differenziale e non completo, quindi
impossibile da ripristinare.

Vi farò sapere se è così.
Grazie mille comunque a tutti.
Post by Luca Bianchi
Post by lucasweb.it >>> >>@discussions.microsoft.com>
IL SET DI BACKUP INCLUDE UN DATABASE DIVERSO DAL DATABASE ESISTENTE
'VENDITEL'.
Che significa ?
Incolla la stringa che segue nel BOL (menù GO->URL)
trblsql.chm::/tr_reslsyserr_2_7mk4.htm
e ti viene indicato di specificare l'opzione REPLACE equivalente al check
box "force restore over existing database" o qualcosa di simile nel tab
Option di Enterprise Manager
Post by lucasweb.it >>> >>@discussions.microsoft.com>
Grazie
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
Luca Bianchi
2006-10-19 10:26:39 UTC
Permalink
Post by lucasweb.it >>>
Ragazzi sono giunto a conclusione che il file .bak da cui tento di effettuare
il restore, sia frutto di un salvataggio differenziale e non completo, quindi
impossibile da ripristinare.
...e la tua convinzione è frutto di analisi esoterica oppure frutto
dell'esame del contenuto del device eseguito con la RESTORE HEADERONLY o
RESTORE FILELISTONLY (o l'equivalente disponibile attraverso la gui)?
Post by lucasweb.it >>>
Vi farò sapere se è così.
...adesso ho la netta sensazione (convinzione) che si tratti di analisi
esoterica o similare... ;-)
Togliti ogni dubbio eseguendo i comandi di cui sopra o visualizzando il
contenuto del device attraverso l'interfaccia grafica...
Post by lucasweb.it >>>
Grazie mille comunque a tutti.
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
lucasweb.it >>>
2006-10-21 09:45:18 UTC
Permalink
Post by Luca Bianchi
...e la tua convinzione è frutto di analisi esoterica oppure frutto
dell'esame del contenuto del device eseguito con la RESTORE HEADERONLY o
RESTORE FILELISTONLY (o l'equivalente disponibile attraverso la gui)?
La seconda che hai detto.
RESTORE HEADERONLY
FROM DISK = 'C:\Inetpub\wwwroot\......'

Mi restituisce 2 righe
Quella che ha position = 1 ha backuptype = 5 (differenziale) ed è fatta da
sa DATA 2006-10-13 16:22:33.000
Quella che ha position = 2 ha backuptype = 1 ed è fatta da
NTAUTORITY/SYSTEM DATA 2006-10-15 00:00:12.000
Post by Luca Bianchi
...adesso ho la netta sensazione (convinzione) che si tratti di analisi
esoterica o similare... ;-)
Sbagliavi !!!

Comunque il problema è che la persona che sta eseguendo il .bak sul database
non ha
nessuna competenza, è un agente commerciale, quindi probabilmente quando
parlavi di quella cosa
degli errori che capitano ecc. ecc. avevi parzialmente ragione.

Attendo che mi rimandi il .bak sperando questa volta che esegua l'operazione
qualcuno competente.
Vi farò sapere come finisce la soap.

Grazie ancora a tutti della gentile disponibilità.
Post by Luca Bianchi
Post by lucasweb.it >>>
Ragazzi sono giunto a conclusione che il file .bak da cui tento di effettuare
il restore, sia frutto di un salvataggio differenziale e non completo, quindi
impossibile da ripristinare.
...e la tua convinzione è frutto di analisi esoterica oppure frutto
Post by Luca Bianchi
dell'esame del contenuto del device eseguito con la RESTORE HEADERONLY o
RESTORE FILELISTONLY (o l'equivalente disponibile attraverso la gui)?
Post by lucasweb.it >>>
Vi farò sapere se è così.
...adesso ho la netta sensazione (convinzione) che si tratti di analisi
esoterica o similare... ;-)
Togliti ogni dubbio eseguendo i comandi di cui sopra o visualizzando il
contenuto del device attraverso l'interfaccia grafica...
Post by lucasweb.it >>>
Grazie mille comunque a tutti.
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
Luca Bianchi
2006-10-23 06:22:25 UTC
Permalink
Post by Luca Bianchi
RESTORE HEADERONLY
FROM DISK = 'C:\Inetpub\wwwroot\......'
Mi restituisce 2 righe
Quella che ha position = 1 ha backuptype = 5 (differenziale) ed è fatta
da sa DATA 2006-10-13 16:22:33.000
Quella che ha position = 2 ha backuptype = 1 ed è fatta da
NTAUTORITY/SYSTEM DATA 2006-10-15 00:00:12.000
Il backup contrassegnato da Position = 2 è utilizzabile.
Al comando RESTORE DATABASE con tutte le opzioni che già prevedevi aggiungi
in coda l'opzione FILE = 2 per eseguire il ripristino del secondo backup
contenuto nel device...
Post by Luca Bianchi
Post by Luca Bianchi
...adesso ho la netta sensazione (convinzione) che si tratti di analisi
esoterica o similare... ;-)
Sbagliavi !!!
OK, però se avessi dato da subito il responso della RESTORE HEADERONLY ci
avresti aiutato facendoci tirare meno ad indovinare... ;-)
Post by Luca Bianchi
Comunque il problema è che la persona che sta eseguendo il .bak sul
database non ha
nessuna competenza, è un agente commerciale,
NO COMMENT
Post by Luca Bianchi
Grazie ancora a tutti della gentile disponibilità.
Bye
--
Luca Bianchi
Microsoft MVP - SQL Server
http://blogs.aspitalia.com/lucabianchi
Loading...