AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 33703
Accepted
Kees C. Bakker
Kees C. Bakker
Asked: 2013-01-29 01:43:06 +0800 CST2013-01-29 01:43:06 +0800 CST 2013-01-29 01:43:06 +0800 CST

Como consultar a data da última restauração no SQL Server?

  • 772

Existe uma consulta T-SQL que mostra a data e hora da última restauração para um determinado banco de dados?

sql-server sql-server-2008
  • 8 8 respostas
  • 272470 Views

8 respostas

  • Voted
  1. Best Answer
    marc_s
    2013-01-29T01:53:41+08:002013-01-29T01:53:41+08:00

    Isso listará todas as restaurações "mais recentes" para cada banco de dados em seu servidor:

    WITH LastRestores AS
    (
    SELECT
        DatabaseName = [d].[name] ,
        [d].[create_date] ,
        [d].[compatibility_level] ,
        [d].[collation_name] ,
        r.*,
        RowNum = ROW_NUMBER() OVER (PARTITION BY d.Name ORDER BY r.[restore_date] DESC)
    FROM master.sys.databases d
    LEFT OUTER JOIN msdb.dbo.[restorehistory] r ON r.[destination_database_name] = d.Name
    )
    SELECT *
    FROM [LastRestores]
    WHERE [RowNum] = 1
    
    • 149
  2. Kees C. Bakker
    2013-01-29T01:49:10+08:002013-01-29T01:49:10+08:00

    O script que pode ser usado é:

    declare @DB sysname = 'MyDB';
    select * from msdb.dbo.restorehistory where destination_database_name = @DB;
    
    • 18
  3. Iman
    2014-10-11T00:42:40+08:002014-10-11T00:42:40+08:00

    tabela principal para esta finalidade é msdb..restorehistory

    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
    

    de mssqltips

    • 15
  4. Rajendra Maloo
    2015-01-23T11:05:39+08:002015-01-23T11:05:39+08:00

    Ele fornecerá a data de atualização mais recente para o seu banco de dados:

    use [msdb]
    select top 1 * from restorehistory 
    where destination_database_name='DB_NAME'
    order by restore_history_id desc 
    
    • 4
  5. Edwin Arias
    2015-08-10T08:00:38+08:002015-08-10T08:00:38+08:00

    Adicionando informações importantes sobre o nome de usuário do sistema operacional e o nome da máquina:

    Select Destination_database_name, 
           restore_date,
           database_name as Source_database,
           Physical_device_name as Backup_file_used_to_restore,
           bs.user_name,
           bs.machine_name
    from msdb.dbo.restorehistory rh 
      inner join msdb.dbo.backupset bs 
        on rh.backup_set_id=bs.backup_set_id
      inner join msdb.dbo.backupmediafamily bmf 
        on bs.media_set_id =bmf.media_set_id
    ORDER BY [rh].[restore_date] DESC
    
    • 2
  6. user118167
    2018-03-30T12:09:37+08:002018-03-30T12:09:37+08:00

    Existe uma consulta T-SQL que mostra a data e hora da última restauração para um determinado banco de dados?

    Oi, eu gerei o script abaixo que pode fornecer informações muito mais detalhadas sobre sua consulta.

    Consulta para obter as informações de "Restauração mais recente" sobre o banco de dados específico:

    WITH MostRecentRestore AS
    (
    SELECT 
    RowNum = ROW_NUMBER() OVER (PARTITION BY RH.Destination_database_name ORDER BY RH.Restore_Date DESC),
    RH.Restore_date, 
    BS.[database_name] as Source_Database, 
    RH.Destination_Database_Name, 
    BS.Backup_Start_Date, 
    BS.Backup_Finish_Date, 
    CASE WHEN RH.restore_type = 'D' THEN 'Database'
      WHEN RH.restore_type = 'F' THEN 'File'
      WHEN RH.restore_type = 'G' THEN 'Filegroup'
      WHEN RH.restore_type = 'I' THEN 'Differential'
      WHEN RH.restore_type = 'L' THEN 'Log'
      WHEN RH.restore_type = 'V' THEN 'Verifyonly'
      WHEN RH.restore_type = 'R' THEN 'Revert'
      ELSE RH.restore_type 
    END AS Restore_Type,
    RH.[Replace],
    RH.[Recovery],
    RH.Restore_Date AS Restored_On,
    BMF.physical_device_name AS Restored_From,
    RF.destination_phys_name AS Current_DB_File_Location,
    RH.user_name AS Restored_By,
    BS.machine_name,
    BS.Server_Name
    FROM msdb.dbo.RestoreHistory RH 
    INNER JOIN msdb.dbo.BackupSet BS ON RH.backup_set_id = BS.backup_set_id
    INNER JOIN msdb.dbo.restorefile RF ON RH.Restore_History_id = RF.Restore_History_id
    INNER JOIN msdb.dbo.Backupmediafamily BMF ON bs.media_set_id = bmf.media_set_id
    )
    SELECT *
    FROM MostRecentRestore
    WHERE [RowNum] = 1 AND destination_database_name = 'YourDatabaseName'
    
    • 2
  7. Ritu
    2014-05-08T08:29:07+08:002014-05-08T08:29:07+08:00
    Select Destination_database_name, 
           restore_date,database_name as Source_database,
           Physical_device_name as Backup_file_used_to_restore 
    from msdb.dbo.restorehistory rh 
      inner join msdb.dbo.backupset bs 
        on rh.backup_set_id=bs.backup_set_id
      inner join msdb.dbo.backupmediafamily bmf 
        on bs.media_set_id =bmf.media_set_id
    ORDER BY [rh].[restore_date] DESC
    

    Para informações detalhadas, você pode verificar o link abaixo:

    http://www.passionforsql.com/how-to-find-when-last-database-backuprestore-was-done/

    • 0
  8. Quandary
    2021-09-09T23:49:10+08:002021-09-09T23:49:10+08:00

    Necromante.
    Um pouco antigos esses row_numbers em CTEs.
    Aqui SQL mais moderno:

    -- Records in restorehistory may be cleaned by sp_delete_backuphistory. 
    -- USE msdb; GO EXEC sp_delete_backuphistory @oldest_date = '01/14/2010';  
    
    SELECT 
         dbs.name AS db_name 
        ,dbs.create_date 
        ,dbs.compatibility_level 
        ,dbs.collation_name 
        ,dbs.recovery_model_desc 
        ,dbs.snapshot_isolation_state_desc 
        ,dbs.user_access_desc 
        ,dbs.state_desc 
         
        ,dbs.physical_database_name 
        ,dbs.log_reuse_wait_desc 
         
        ,tRestoreHistory.restore_date 
    FROM master.sys.databases AS dbs 
    
    OUTER APPLY 
        (
            SELECT restore_date 
            FROM msdb.dbo.restorehistory AS rhistory 
            WHERE rhistory.destination_database_name = dbs.Name 
            ORDER BY rhistory.restore_date DESC 
            OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY 
        ) AS tRestoreHistory 
    
    WHERE (1=1) 
    -- AND restore_date < CAST(FLOOR(CAST(CURRENT_TIMESTAMP AS float)) AS datetime) 
    
    ORDER BY restore_date DESC, create_date DESC 
    
    • 0

relate perguntas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Quanto "Padding" coloco em meus índices?

  • Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?

  • Como determinar se um Índice é necessário ou necessário

  • Downgrade do SQL Server 2008 para 2005

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve