如何查找分离日志文件的位置?

时间:2017-08-21 14:42:04

标签: sql-server

如果我在单个数据库的2个驱动器上有2个日志文件,则附加其中1个, 是否有任何系统表/视图存储有关分离日志文件的信息?

2 个答案:

答案 0 :(得分:1)

如果由于无法找到日志位置而陷入困境,您可能需要考虑在没有它的情况下进行附加,如果它干净地分离,它应该生成一个新的日志文件。首先备份文件。

答案 1 :(得分:1)

  

是否有任何系统表/视图存储有关分离日志的信息   文件?

Hi Kiran,

这是一个很好的问题。 现在谈谈答案;如果您有已分离的数据库的任何现有备份;然后,您可以使用以下查询来查找数据的物理位置以及日志文件。

use master
Go
RESTORE FILELISTONLY FROM DISK = 'Physical_Path_of_Backup_File\backup_file_Name.bak'
GO

但是备份完成后,您的数据库的物理文件不应该移动到其他位置。

  

同样在MSDB系统数据库中所有备份相关信息都是   默认存储。所以我也准备了以下查询   用于查找数据库的数据和日志的物理位置   文件,但您必须在分离操作之前进行某种备份。

脚本如下:

Use MSDB
Go
Select * from backupfile bf where 
EXISTS
(
SELECT 1
FROM msdb.dbo.backupmediafamily 
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id 
and msdb.dbo.backupset.database_name ='YourDatabaseName'
where bf.backup_set_id=backup_set_id

)
order by backup_set_id desc
Go

注意:: 在上面的脚本中,只需查看最近的" backup_set_id"获取正确的详细信息。(这将是查询中的第一行)。