Ubicación del archivo mdf de la base de datos.

19

Tengo una base de datos Project. Mi problema es dónde puedo encontrar el .mdfy _log.ldfde mi base de datos para poder transferir mi base de datos a otro usuario. Estoy usando Microsoft SQL Server 2008 Management Studio

Propiedades de la base de datos f

Mi Ssms.exeestá almacenado en esta ruta

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

fuente

Respuestas:

22

Hay pocas formas de determinar la ubicación de los archivos mdf de SQL Server y los archivos de registro asociados.

  1. Abra Enterprise Manager, haga clic derecho en la base de datos que le interesa y seleccione propiedades. Seleccione la sección Archivos y desplácese hasta las columnas Pathy FileName.

  2. Abra una ventana de consulta y ejecute la consulta relevante a continuación y vea la Physical_Namecolumna.

SQL 2005 o posterior:

SELECT * FROM sys.database_files

SQL 2000:

SELECT * FROM dbo.sysfiles
  1. Abra una ventana de consulta y ejecute sp_helpfiley vea la FileNamecolumna.

Por supuesto, dado que SQL Server utiliza estos archivos, no debe intentar copiarlos en una ubicación diferente.

El mejor método es realizar una copia de seguridad desde Enterprise Manager haciendo clic derecho en la base de datos que le interesa y seleccionando Tareas -> Copia de seguridad.

Alternativamente, puede separar su base de datos, copiar los archivos y luego adjuntarlos.

Una tercera alternativa una vez que tenga una copia de la base de datos ejecutándose en otro lugar, es configurar el envío de registros o la replicación.

armitage
fuente
1
Esto no produce información sobre TempDB, modelo o msdb.
Slogmeister Extraordinaire
14

SQL 2005 en adelante: la siguiente consulta le dará una lista de todas las bases de datos y archivos asociados:

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
masam
fuente
1
Quitaría la cláusula WHERE para asegurarme de que obtenga todos los archivos asociados con la base de datos.
Slogmeister Extraordinaire
14

Estaba en el cuadro de diálogo correcto, pero con la pestaña incorrecta Abra la pestaña Archivos , la ruta se muestra para todos los archivos de la base de datos ingrese la descripción de la imagen aquí

Milena Petrovic
fuente
2

La forma mejor y más fácil de encontrar el (.mdf & .ldf)archivo, el tamaño y la tasa de crecimiento, etc., detalles de la base de datos en particular a través de la siguiente consulta de TSQL.

exec sp_helpdb @dbname='Databasename';
Go
MD Haidar Ali Khan
fuente
-2

La ruta para .mdf y .ldf será

Unidad raíz (donde está instalado Os) ->

Archivos de programa (para aplicaciones de 64 bits) o archivos de programa (x86) para 32 pero aplicaciones->

Microsoft SQL Server->

MSSQL11.SQL2012->

MSSQL->

DATOS


MSSQL11.SQL2012 Esto es para usuarios que usan SQL 2012 ...

Por lo tanto, puede reconocer fácilmente cuál es el nombre de la carpeta para usted, ya que está utilizando SQL 2008 en la carpeta "Microsoft SQL Serve" en la ruta mencionada

VSVAditya
fuente
2
Esto es totalmente correcto, para instalaciones pequeñas. Para cualquier instalación real, alguien habrá planeado un diseño de disco y puede haber definido ubicaciones alternativas en db create, o incluso por defecto. Incluso puede cambiar eso durante la configuración. Yo diría que en cualquier entorno no trivial las personas NO están volcando datos y archivos de registro en la unidad C (que es la vida de los archivos de programa).
TomTom