none
Backup (SQL Server) com ProgressBar RRS feed

  • Pergunta

  • bem tenho a seguinte query

    string strSQL = "USE SortFA; BACKUP DATABASE SortFA TO DISK = '" + textBox1.Text + "' WITH FORMAT, MEDIANAME = 'Z_SQLServerBackups', NAME = 'Full Backup of AdventureWorks2012';";
               Conexao.Conexao.ExecutaComando(strSQL);

    ela mim faz um backup no seguinte caminho

    só q gostaria de bota um progressBar de tempo restante como eu faço isso?

    agradeço der de já que poder mim ajudar

    terça-feira, 26 de agosto de 2014 20:26

Respostas

  • Rhael,

    Bom este tipo de implementação vai depender de como você conseguiria obter o retorno do commando backup que o SQL Server esta processando.

    Existe uma opção chamada Status que declarada em conjunto com o commando Backup e Restore apresentam durante a execução do backup um indicador de progresso.

    O código que eu apresento abaixo, retorno o tempo restante para o encerramento do Backup, talvez possa ajudar:

    SELECT command, 
    
                  'EstimatedEndTime' = Dateadd(ms,estimated_completion_time,Getdate()),
    
                  'EstimatedSecondsToEnd' = estimated_completion_time / 1000,
    
                  'EstimatedMinutesToEnd' = estimated_completion_time / 1000 / 60,
    
                  'BackupStartTime' = start_time,
    
                  'PercentComplete' = percent_complete
    
       FROM sys.dm_exec_requests
    
    WHERE session_id = SPID
    E também a porcentagem de execução, você vai ter que conseguir obter o SPID que esta sendo utilizado na query que processo o backup.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com



    quarta-feira, 27 de agosto de 2014 17:29
  • Boa tarde,

    Pelo comando abaixo vc pode filtrar pelo spid:

    select session_id, percent_complete, estimated_completion_time
    from sys.dm_exec_requests


    Att. Gabriel Cotian

    quarta-feira, 27 de agosto de 2014 15:53

Todas as Respostas

  • Boa Tarde,

    Não sei como você vai capturar isso pela aplicação, mas o comando 'STATS' do código para backup tem a função de acompanhar esse progresso.

    Olha esse exemplo:

    http://www.mssqltips.com/sqlservertip/2343/how-to-monitor-backup-and-restore-progress-in-sql-server-2005-and-2008/


    Att, Bruno Silva.

    terça-feira, 26 de agosto de 2014 20:55
  • Boa tarde,

    Pelo comando abaixo vc pode filtrar pelo spid:

    select session_id, percent_complete, estimated_completion_time
    from sys.dm_exec_requests


    Att. Gabriel Cotian

    quarta-feira, 27 de agosto de 2014 15:53
  • Rhael,

    Bom este tipo de implementação vai depender de como você conseguiria obter o retorno do commando backup que o SQL Server esta processando.

    Existe uma opção chamada Status que declarada em conjunto com o commando Backup e Restore apresentam durante a execução do backup um indicador de progresso.

    O código que eu apresento abaixo, retorno o tempo restante para o encerramento do Backup, talvez possa ajudar:

    SELECT command, 
    
                  'EstimatedEndTime' = Dateadd(ms,estimated_completion_time,Getdate()),
    
                  'EstimatedSecondsToEnd' = estimated_completion_time / 1000,
    
                  'EstimatedMinutesToEnd' = estimated_completion_time / 1000 / 60,
    
                  'BackupStartTime' = start_time,
    
                  'PercentComplete' = percent_complete
    
       FROM sys.dm_exec_requests
    
    WHERE session_id = SPID
    E também a porcentagem de execução, você vai ter que conseguir obter o SPID que esta sendo utilizado na query que processo o backup.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com



    quarta-feira, 27 de agosto de 2014 17:29