Newsgroup: it.comp.lang.visual-basic
Titolo: File Mdf (Forse OT)

Buongiorno al NG,
vorrei il vostro aiuto per un problema occorso ad un mio amico.
Aveva un programmini con il quale registrava alcuni dati importanti su
un db creato (credo con Mysql). Detto fatto il pistola si formatta
il pc e dimeentica o sconosce la locazione di questo file. Il soggetto
non è Bill Gates e ci sta pure. Con stella phoenix gli recuper questo
file che mi dice essere in buone condizioni e pesare 3.077 mega.
Come posso aprirlo per accertarmi che ci siano i dati?
Il tizio che gli ha installato il sw, dice che sono db vuoti.
C'è un modo di leggere rapidamente questo db? Verificare almeno
se ci sono record?
Grazie

salve Giovanni,

l'estensione ".Mdf" solitamente rappresenta il data file primario di un 
database Microsoft SQL Server...
a tutti gli effetti, 3mb sono veramente molto pochi e quello che ha detto 
"il tizio che gli ha installato il sw" potrebbe avere ragione indicando che 
contenga solo la struttura con tabelle vuote..
puoi provare a scaricare SQLExpress 2008 R2 
(
http://www.microsoft.com/express/Database/InstallOptions.aspx
)
dovresti scegliere la versione "with management tools", che include lo 
strumento amministrativo principale di SQL Server, SQL Server Management 
Studio, che puo' aiutarti a vedere cosa ci sia "dentro" il database senza 
doverlo interrogare a mano.. per installare il tutto puoi vedere ad esempio 
anche 
http://www.asql.biz/Articoli/SQLX08/Art5_2.aspx
 ..
una volta installato il motore relazionale, potrai usare SQL Server 
Management Studio per ispezionare il database..
nel mondo SQL Server, al pari di molti motori rdbms, un database non e' solo 
un insieme di file fisici, ma anche un'entita' logica registrata nel 
catalogo del rdbms... per registrare il database a partire dai suoi file 
fisici, utilizzerai la funzionalita' di "Attach" (rx click sul nodo 
Database, menu contestuale ->"Attach..") ti chiedera' di indicargli il file 
fisico da utilizzare come data file primario...
nei "dettagli" sottostanti, vedrai che potrebbe essere aggiunto anche un 
altro file che avra' estensione ".Ldf".. questo rappresenta il transaction 
log file del db (
http://msdn.microsoft.com/en-us/library/ms189563.aspx
 e 
http://msdn.microsoft.com/en-us/library/ms179355.aspx
), indicazione che 
viene memorizzata nel catalogo del data file... prova ad eseguire e vedere 
se riesci a collegare il db.. potrebbe fallire... nel mio caso ovviamente 
fallisce in quanto ho preso un datafile di un db esistente e l'ho spostato 
altrove, ma la procedura di attach cerca di utilizzare il transaction log 
della posizione originale, che e' nel mio caso fortunatamente lockato dallo 
storage engine di SQL Server (in qunato legato ad un'altra istanza di SQL 
Server.. ne ho 2 installate).. qualora fallisse, prova comunque ad 
aggiornare il nodo dei database registratri.. se non fosse presente, dovrai 
utilizzare una procedura di sistema specifica, 
http://msdn.microsoft.com/en-us/library/ms174385.aspx
, nel mio caso, ho 
utilizzato
EXEC sp_attach_single_file_db @dbname=  'Pubs'
    , @physname=  'C:\Program Files\Microsoft SQL 
Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Pubs.mdf';
volendo attaccare il file['C:\Program Files\Microsoft SQL 
Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Pubs.mdf] registrandolo come 
database logico [Pubs] (e' uno dei database di esempio di SQL Server)..
una volta eseguito (speriamo con successo), verra' creato un nuovo 
transaction log per il database registrato, e potrai accedere sia a 
verificarne le proprieta' che al suo contenuto..
saluti
-- 
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz
DbaMgr2k ver 0.21.1 - DbaMgr ver 0.65.1 and further SQL Tools
http://www.hotelsole.com
--------- remove DMO to reply


Grazie Andrea. Ma il grazie è un pò poco per tanta dovizia! E' tuttavia 
sentito e ricco di ammirazione...Ok, intanto accetto la valanga di 
istruzioni e suggerimenti, anche se ad onor del vero, 3 mb sono davvero 
troppo pochi per ipotizzare 1000 record...
Sto rieffettuando una scansione approfondita con qualche altro tipo di 
software, sì da avere la certezza che non ci sia ombra di questo filee 
un pò piu pieno, da qualche parte nell'hdd, poi vedrò il da farsi.
Saluti
Gio


c'era un post qualche mese fa sull'argomento.....
cmq....
in caso di perdita di dati ....
se ha riformattato usando il setup di windows....
oltre che darsi di pirla per i backup...dovrebbe darsi di pirla per
CONTINUARE AD USARE l'hard disk!
La procedure è quella di STACCARE ALIMENTAZIONE SUBITO...all'hard disk
con i dati.
Prendere un altro pc...o installare un altro hd....
Installare una distro linux pensata apposta per il recovery (cerca in
rete) oppure programmi comemerciali per windows...e SOLO allora
ricollegare corrente sull'hard disk "danneggiato" .
Infatti se con la formattazione veloce di fatto riscrivi solo la
tabella dei file....ad ogni...OGNI....uso che fai dell'hard disk si
abbassano drammaticamente le percentuali di riuscita nell'operazione
di recupero dati!
Quindi se il pirlotto ha usato un po il sistema "fresco" di
reinstallazione...non confidare molto in un ripristino dei
dati!...sarebbe una fortuna fortunata!
:)


Grazie anche a te Wodka, in effetti è andata proprio come tu dici. 
Comunque, lui (anzi io!) l'hdd l'ho staccato subito. Gliene ho dato un 
altro e questo qui l'ho 'congelato' in attesa di capire.
Ma tra tutti i suoi guai, se n'è aggiunto n'antro: l'hdd è schioppato
definitivamente!
Ergo...chi è causa del suo mal, pianga se stesso e pace all'anima sua...
Grazie
(Anzi, grazissime[rafforzativo])