Posizione del file mdf del database


19

Ho un database Project. Il mio problema è dove posso trovare il .mdfe _log.ldfdel mio database in modo da poter trasferire il mio database a un altro utente. Sto usando Microsoft SQL Server 2008 Management Studio

Proprietà database f

My Ssms.exeè memorizzato in questo percorso

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe

Risposte:


22

Esistono alcuni modi per determinare la posizione dei file mdf di SQL Server e dei file di registro associati.

  1. Apri Enterprise Manager, fai clic con il pulsante destro del mouse sul database che ti interessa e seleziona le proprietà. Seleziona la sezione File e scorri fino alle colonne Pathe FileName.

  2. Aprire una finestra della query ed eseguire la query pertinente di seguito e visualizzare la Physical_Namecolonna.

SQL 2005 o successivo:

SELECT * FROM sys.database_files

SQL 2000:

SELECT * FROM dbo.sysfiles
  1. Apri una finestra di query ed esegui sp_helpfilee visualizza la FileNamecolonna.

Naturalmente, poiché questi file sono in uso da SQL Server non si dovrebbe tentare di copiare i file in una posizione diversa.

Il metodo migliore consiste nell'eseguire un backup da Enterprise Manager facendo clic con il tasto destro del mouse sul database a cui si è interessati e selezionando Attività -> Backup.

In alternativa è possibile scollegare il database, copiare i file e quindi allegare.

Una terza alternativa, una volta che hai una copia del database in esecuzione altrove, è impostare il log shipping o la replica.


1
Questo non produce informazioni su TempDB, modello o msdb.
Slogmeister Extraordinaire,

14

A partire da SQL 2005: la seguente query fornisce un elenco di tutti i database e file associati:

SELECT sd.NAME
,smf.NAME
,smf.type_desc
,(CAST(smf.size AS FLOAT) * 8096) AS SizeBytes
,(CAST(smf.size AS FLOAT) * 8096) / (1024) AS SizeKB
,(CAST(smf.size AS FLOAT) * 8096) / (1024 * 1024) AS SizeMB
,(CAST(smf.size AS FLOAT) * 8096) / (1024 * 1024 * 1024) AS SizeGB
,smf.physical_name
,sd.log_reuse_wait_desc
,sd.recovery_model_desc
,*
FROM sys.databases sd
INNER JOIN sys.master_files smf ON sd.database_id = smf.database_id
WHERE
smf.type_desc IN (
    'ROWS'
    ,'LOG'
    )
ORDER BY SizeGB DESC

1
Vorrei rimuovere la clausola WHERE per essere sicuro di ottenere tutti i file associati al database.
Slogmeister Extraordinaire,

14

Eri nella finestra di dialogo giusta, ma scheda sbagliata Apri la scheda File , il percorso è mostrato per tutti i file di database inserisci qui la descrizione dell'immagine


2

Il modo migliore e semplice per trovare il (.mdf & .ldf)file, le dimensioni e il tasso di crescita, ecc. Dettagli di un particolare database tramite la query TSQL sotto menzionata.

exec sp_helpdb @dbname='Databasename';
Go

-2

Il percorso per .mdf e .ldf sarà

Unità principale (dove è installato Os) ->

File di programma (per applicazioni a 64 bit) o ​​file di programma (x86) per 32 ma applicazioni->

Microsoft SQL Server->

MSSQL11.SQL2012->

MSSQL->

DATI


MSSQL11.SQL2012 Questo è per gli utenti che utilizzano SQL 2012 ...

Quindi potresti facilmente riconoscere qual è il nome della cartella per te mentre stai usando SQL 2008 nella cartella "Microsoft SQL Serve" nel percorso menzionato


2
Questo è assolutamente corretto - per piccole installazioni. Per qualsiasi installazione reale qualcuno avrà pianificato un layout del disco e potrebbe aver definito percorsi alternativi su db create, o anche come impostazione predefinita. Puoi persino cambiarlo durante l'installazione. Direi che in qualsiasi ambiente non banale le persone NON scaricano dati e file di registro sull'unità C (che è presente nei file dei programmi).
TomTom
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.