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 / 111958
Accepted
AKDiscer
AKDiscer
Asked: 2015-08-24 08:58:54 +0800 CST2015-08-24 08:58:54 +0800 CST 2015-08-24 08:58:54 +0800 CST

Alertas aleatórios e constantes de "Log Growths", como fazer isso parar?

  • 772

Configurei alertas em todos os meus servidores de banco de dados e, de vez em quando, recebo o seguinte erro, às vezes ele continua e continua, outras vezes, algumas vezes aqui e ali.

The SQL Server performance counter 'Log Growths' (instance '_Total') of object 'SQLServer:Databases' now equals the threshold of 1.00.

Existe alguma configuração que eu possa alterar para impedir isso? Parece vir apenas de dois servidores.

transaction-log alerts
  • 2 2 respostas
  • 479 Views

2 respostas

  • Voted
  1. Best Answer
    Ali Razeghi - AWS
    2015-08-24T09:55:26+08:002015-08-24T09:55:26+08:00

    Isso está informando que um ou vários logs de transações estão crescendo repetidamente, o que significa que está definido para o modo de recuperação FULL ou BULK LOGGED sem backups de log de transações ou com backups insuficientes ou alguém escreveu uma consulta muito ruim ou longa que está mantendo o log de transações ativo.

    Você deve procurar todos os bancos de dados do modelo de recuperação COMPLETO naquele servidor e quando foi a última vez que um backup do log de transações ocorreu primeiro, pois isso é o mais perigoso. O tlog pode crescer até ocupar todo o disco, interrompendo todas as gravações nesse banco de dados ou em qualquer outro banco de dados com dados ou logs nesse disco, supondo que não haja um tamanho máximo definido. Se não houver, movendo para frente, você provavelmente desejará definir um tamanho máximo para que 1 DB não derrube todos os DBs tlogs.

    SELECT name, recovery_model_desc 
    FROM sys.databases
    

    Vê algum que está cheio? Em caso afirmativo, quando foi o último backup do log de transações? Aqui está um script para ajudá-lo nisso:

    SELECT   d.name,
             d.recovery_model_desc,
             MAX(b.backup_finish_date) AS backup_finish_date
    FROM     master.sys.databases d
             LEFT OUTER JOIN msdb..backupset b
             ON       b.database_name = d.name
             AND      b.type          = 'L'
    GROUP BY d.name, d.recovery_model_desc
    ORDER BY backup_finish_date DES
    

    Se isso não fornecer as informações de que você precisa, aqui está uma maneira de encontrar as 10 principais transações mais antigas do msdn:

    SELECT DISTINCT TOP 10
    t.TEXT QueryName,
    s.execution_count AS ExecutionCount,
    s.max_elapsed_time AS MaxElapsedTime,
    ISNULL(s.total_elapsed_time / 1000 / NULLIF(s.execution_count, 0), 0) AS AvgElapsedTime,
    s.creation_time AS LogCreatedOn,
    ISNULL(s.execution_count / 1000 / NULLIF(DATEDIFF(s, s.creation_time, GETDATE()), 0), 0) AS FrequencyPerSec
    FROM sys.dm_exec_query_stats s
    CROSS APPLY sys.dm_exec_sql_text( s.sql_handle ) t
    ORDER BY s.max_elapsed_time DESC, ExecutionCount DESC
    GO
    

    Finalmente, depois de ver qual banco de dados tem arquivos de log crescentes, você pode ver o que está mantendo o arquivo de log aberto. Pode até ser algo como configuração de replicação ou outras soluções HA que não foram totalmente removidas. Isso lhe dirá:

    SELECT [log_reuse_wait_desc]
        FROM [master].[sys].[databases]
    --  WHERE [name] = N'DBNAME';
    GO
    
    • 2
  2. Jens W.
    2015-08-24T13:38:30+08:002015-08-24T13:38:30+08:00

    Isso não é um erro. É apenas um arquivo de log muito pequeno e com crescimento automático ativado. Isso significa que, enquanto houver transações em execução, o processo do servidor SQL precisa expandir o arquivo de log. A expansão do arquivo de log é um processo de encadeamento único e cada transação que precisa gravar algo no log de transações deve esperar. E não: sem IFI - você tem que esperar enquanto o servidor sql está gravando todos os zeros no disco.

    Felizmente, você pode consultar os traços padrão sobre todos os eventos de encolhimento e crescimento. Modificado de sqlblog.com para eventos de redução/crescimento de log:

    DECLARE @filename VARCHAR(MAX)
    SELECT @filename = CAST(value AS VARCHAR(MAX))
    FROM fn_trace_getinfo(DEFAULT)
    WHERE property = 2
      AND value IS NOT NULL
    
    SELECT gt.EventClass,
           te.Name AS EventName, 
           gt.TEXTData,
           gt.NTUserName,
           gt.NTDomainName,
           gt.HostName,
           gt.ApplicationName,
           gt.LoginName,
           gt.SPID,
           gt.StartTime,
           gt.EndTime,
           gt.ObjectName,
           gt.DatabaseName,
           gt.FileName
    FROM [fn_trace_gettable](@fileName, DEFAULT) gt
    JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id
    WHERE  EventClass In (92, 95) 
    ORDER BY StartTime;
    
    • 2

relate perguntas

  • Este procedimento para Failover para Logshipped secundário e Failback novamente está correto?

  • Qual é a passagem de desfazer que o SQL Server faz durante uma operação RESTORE WITH STANDBY?

  • tempdb no servidor sql

  • Desativar envio de log do SQL Server para destino inexistente

  • Como você corrige o crescimento automático sendo definido para 12800%

Sidebar

Stats

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

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 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

    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
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • 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
    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