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 / 332430
Accepted
But those new buttons though..
But those new buttons though..
Asked: 2023-10-23 22:46:12 +0800 CST2023-10-23 22:46:12 +0800 CST 2023-10-23 22:46:12 +0800 CST

max_binlog_files no servidor MySQL?

  • 772

Li recentemente sobre uma configuração chamada Percona Server max_binlog_filesque restringe o número total de arquivos binlog. Isso é exatamente o que eu preciso. Atualmente, o meu binlog_expire_logs_secondsestá definido para 3 dias, o que funciona muito bem 99% do tempo. No entanto, atualmente estou envolvido em um projeto que executa uma grande quantidade de consultas e os binlogs consumiram mais de 70 GB em apenas algumas horas. Nesse caso, eu realmente preciso limitar o número de arquivos.

Existe alguma configuração nativa do MySQL para conseguir isso? Qual é a melhor maneira de restringir o espaço total em disco consumido pelos binlogs?

mysql
  • 2 2 respostas
  • 100 Views

2 respostas

  • Voted
  1. Best Answer
    Bill Karwin
    2023-10-23T23:42:58+08:002023-10-23T23:42:58+08:00

    Não, a implementação upstream do MySQL não possui um recurso equivalente ao max_binlog_files. Portanto, você não pode realmente evitar um aumento de curto prazo no crescimento do log binário.

    Bem, a opção log_bin=OFFdefinitivamente impediria o crescimento ilimitado do log binário, mas essa é a única solução fornecida pelo MySQL Server padrão.

    Você pode implementar um trabalho agendado fora do MySQL (por exemplo, um cron job) para verificar periodicamente SHOW BINARY LOGSse eles estão usando mais espaço do que você deseja e, em seguida, PURGE BINARY LOGSreduzir o espaço.

    O risco é que sua limpeza agressiva exclua alguns logs que ainda são necessários para replicação, recuperação pontual ou ferramentas de CDC, se você usar esses recursos.

    No meu último trabalho, ocasionalmente tivemos logs binários em um determinado MySQL crescendo para 500 GB. Os desenvolvedores não estavam cientes do impacto de fazer grandes cargas de dados em massa e fariam isso sempre que quisessem, sem notificar a equipe de DBA. Estávamos usando o Percona Server, então definimos um limite max_binlog_files=500para que eles não usassem mais do que 500 GB, mas não tínhamos liberdade para ser mais restritivos.

    Em última análise, só precisávamos ter certeza de que havia espaço de armazenamento livre suficiente em cada servidor de banco de dados para esses tipos de picos.

    • 3
  2. But those new buttons though..
    2023-10-24T00:17:04+08:002023-10-24T00:17:04+08:00

    À luz da resposta útil de @BillKarwin, optei por fazer com que o cron executasse um script bash simples em intervalos de 15 minutos. Eu não sou muito bom com o bash, então pode haver uma maneira mais sucinta, mas por enquanto isso parece estar funcionando:

    #!/bin/bash
    MAX_BINLOG_FILES=50
    PURGE_TO_LOG=$(mysql -e "SHOW BINARY LOGS" | tac | sed "${MAX_BINLOG_FILES}q;d" | awk '{print $1}')
    if [ ! -z "$PURGE_TO_LOG" ] 
    then
        mysql -e "PURGE BINARY LOGS TO '$PURGE_TO_LOG'"
    fi
    
    • 0

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

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