Localização do arquivo mdf do banco de dados


19

Eu tenho um banco de dados Project. Meu problema é onde posso encontrar o .mdfe _log.ldfdo meu banco de dados para poder transferi-lo para outro usuário. Estou usando o Microsoft SQL Server 2008 Management Studio

Propriedades do banco de dados f

Meu Ssms.exeé armazenado neste caminho

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

Respostas:


22

Existem algumas maneiras de determinar o local dos arquivos mdf do SQL Server e dos arquivos de log associados.

  1. Abra o Enterprise Manager, clique com o botão direito do mouse no banco de dados de seu interesse e selecione propriedades. Selecione a seção Arquivos e role até as colunas Pathe FileName.

  2. Abra uma janela de consulta, execute a consulta relevante abaixo e visualize a Physical_Namecoluna.

SQL 2005 ou posterior:

SELECT * FROM sys.database_files

SQL 2000:

SELECT * FROM dbo.sysfiles
  1. Abra uma janela de consulta e execute sp_helpfilee visualize a FileNamecoluna.

Obviamente, como esses arquivos estão em uso pelo SQL Server, você não deve tentar copiar os arquivos para um local diferente.

O melhor método é executar um backup no Enterprise Manager, clicando com o botão direito do mouse no banco de dados do seu interesse e selecionando Tarefas -> Backup.

Como alternativa, você pode desanexar seu banco de dados, copiar os arquivos e depois anexá-lo.

Uma terceira alternativa, depois de ter uma cópia do banco de dados em execução em outro lugar, é configurar o envio ou a replicação de logs.


1
Isso não produz informações sobre TempDB, modelo ou msdb.
Slogmeister Extraordinaire

14

SQL 2005 em diante: A consulta a seguir fornecerá uma lista de todos os bancos de dados e arquivos associados:

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
Eu removeria a cláusula WHERE para garantir que você obtenha todos os arquivos associados ao banco de dados.
Slogmeister Extraordinaire

14

Você estava na caixa de diálogo correta, mas na guia errada Abra a guia Arquivos , o caminho é mostrado para todos os arquivos de banco de dados insira a descrição da imagem aqui


2

A melhor e mais fácil maneira de encontrar os detalhes do (.mdf & .ldf)arquivo, tamanho e taxa de crescimento, etc. do banco de dados específico, abaixo menciona a Consulta TSQL.

exec sp_helpdb @dbname='Databasename';
Go

-2

O caminho para .mdf e .ldf será

Unidade raiz (onde o sistema operacional está instalado) ->

Arquivos de programa (para aplicativos de 64 bits) ou arquivos de programa (x86) para 32, mas aplicativos->

Microsoft SQL Server->

MSSQL11.SQL2012->

MSSQL->

DADOS


MSSQL11.SQL2012 Isso é para usuários que usam o SQL 2012 ...

Portanto, você pode reconhecer facilmente qual é o nome da pasta para você enquanto usa o SQL 2008 na pasta "Microsoft SQL Serve" no caminho mencionado


2
Isso é totalmente correto - para pequenas instalações. Para qualquer instalação real, alguém terá planejado um layout de disco e pode ter definido locais alternativos no db create, ou mesmo como padrão. Você pode até mudar isso durante a instalação. Eu diria que em qualquer ambiente não trivial, as pessoas NÃO estão despejando dados e arquivos de log na unidade C (que existe em arquivos de programa).
TomTom
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.