使用T-SQL将SQL Server Restore任务结果写入文本文件

时间:2016-10-29 13:58:25

标签: sql-server sql-server-2012 database-restore

我已将我的一个备份文件从数据库sales从Dev恢复到测试,我被要求将日志文件发送给团队负责人,表明任务已完成。

我尝试使用不同的表,但我只能在SSMS中看到它,但不能在日志文件中看到它。我需要有关T-SQL查询的帮助,该查询可以将该还原作业写入日志文件。

我需要的全部内容包括恢复所需的时间以及DBA在数据库还原中查看的所有常规内容。

2 个答案:

答案 0 :(得分:1)

本网站:

https://www.mssqltips.com/sqlservertip/1860/identify-when-a-sql-server-database-was-restored-the-source-and-backup-date/

包含此查询:

SELECT [rs].[destination_database_name], 
[rs].[restore_date], 
[bs].[backup_start_date], 
[bs].[backup_finish_date], 
[bs].[database_name] as [source_database_name], 
[bmf].[physical_device_name] as [backup_file_used_for_restore]
FROM msdb..restorehistory rs
INNER JOIN msdb..backupset bs
ON [rs].[backup_set_id] = [bs].[backup_set_id]
INNER JOIN msdb..backupmediafamily bmf 
ON [bs].[media_set_id] = [bmf].[media_set_id] 
ORDER BY [rs].[restore_date] DESC

您还应该能够在SQL Server日志中找到信息 - 更多信息:

https://sqlserver-help.com/2011/06/26/help-where-is-sql-server-errorlog/ https://msdn.microsoft.com/en-us/library/ms187109.aspx

将来您应该使用脚本进行恢复并复制/粘贴脚本的输出并将其发送给团队。

答案 1 :(得分:0)

如果您已配置数据库邮件,那么这应该有效:

USE MASTER;

EXEC MSDB.DBO.SP_SEND_DBMAIL
  @profile_name = 'ProfileName',
  @recipients = 'Recipent',
  @query = '
       RESTORE DATABASE [DBName] FROM
       DISK = N''Path to backup file'' WITH  FILE = 1,
       MOVE N''DBFileName_Data'' TO N''Path to database file'',
       MOVE N''LogFileName_Log'' TO N''Path to log file'',
       NOUNLOAD,  REPLACE,  STATS = 5;
       GO',
  @subject = 'Restore report',
  @attach_query_result_as_file = 0,
  @body_format = 'TEXT';

GO