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 / 16510
Accepted
TheVyom
TheVyom
Asked: 2012-04-14 23:42:42 +0800 CST2012-04-14 23:42:42 +0800 CST 2012-04-14 23:42:42 +0800 CST

Mysql Innodb: InnoDB: ERRO: a idade do último ponto de verificação é InnoDB: que excede a capacidade do grupo de logs

  • 772

Eu realmente preciso de algum conhecimento sobre mysql. Eu sou um novato no mysql e estou vendo alguma falha no servidor do meu banco de dados na última semana 1.

Estou usando o mysql 5.1.36 no Ubuntu. Este é um servidor mysql dedicado com dual core e 4GB de memória e 40GB SSD.

Os erros de registro são:

120413 23:57:15 [Note] Plugin 'FEDERATED' is disabled.
120413 23:57:15 [Warning] option 'innodb-autoextend-increment': unsigned value 2000 adjusted to 1000
120413 23:57:15  InnoDB: Initializing buffer pool, size = 2.9G
120413 23:57:15  InnoDB: Completed initialization of buffer pool
120413 23:57:16  InnoDB: Started; log sequence number 0 44234
120413 23:57:16 [Note] Event Scheduler: Loaded 0 events
120413 23:57:16 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.58-1ubuntu1-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)
120414  0:00:25 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=e2-relay-bin' to avoid this problem.
120414  0:00:25 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='', master_port='3306', master_log_file='', master_log_pos='4'. New state master_host='', master_port='3306', master_log_file='mysql-bin.000043', master_log_pos='87039427'.
120414  0:58:37 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='', master_port='3306', master_log_file='mysql-bin.000043', master_log_pos='87039427'. New state master_host='', master_port='3306', master_log_file='mysql-bin.000043', master_log_pos='87846901'.
120414  2:20:34  InnoDB: ERROR: the age of the last checkpoint is 241588252,
InnoDB: which exceeds the log group capacity 241588224.
InnoDB: If you are using big BLOB or TEXT rows, you must set the   
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.

My.cnf é como abaixo.

default-storage-engine=innodb
default-table-type=innodb
key_buffer              = 384M
max_allowed_packet      = 64M
thread_stack            = 256K
thread_cache_size       = 16
max_heap_table_size     = 64M
myisam_sort_buffer_size = 64M
join_buffer_size        = 8M
read_buffer_size        = 2M
read_rnd_buffer_size    = 8M
sort_buffer_size        = 3M
tmp_table_size          = 64M
# Innodb changes
innodb_additional_mem_pool_size = 16M
innodb_autoextend_increment     = 2000
innodb_buffer_pool_size         = 3000M #As current Db is around 1.2G.
innodb_file_per_table
innodb_data_file_path           = ibdata1:512M;ibdata2:512M:autoextend
innodb_flush_log_at_trx_commit  = 2 #For more reliablity use 1
innodb_flush_method             = O_DIRECT
innodb_log_buffer_size          = 8M
innodb_log_file_size            = 128M #Transaction Log up to 1/4 Buffer Pool
innodb_thread_concurrency       = 16
#innodb_force_recovery          = 2
#innodb_read_io_threads         = 8
#innodb_write_io_threads                = 8
innodb_lock_wait_timeout        = 50
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
max_connections        = 400
table_cache            = 1024M
thread_concurrency     = 16

Alguma sugestão o que posso mudar.

mysql innodb
  • 1 1 respostas
  • 48650 Views

1 respostas

  • Voted
  1. Best Answer
    RolandoMySQLDBA
    2012-04-15T19:04:20+08:002012-04-15T19:04:20+08:00

    À primeira vista, eu diria que seu innodb_log_file_size é muito pequeno. Deveria ser maior para fazer duas coisas:

    • Acomode qualquer campo grande BLOB ou TEXT
    • Segurando transações maiores

    Aqui está o que você deve fazer por enquanto para ver se isso ajuda:

    PASSO 01) Altere o seguinte em /etc/my.cnf

    [mysqld]
    innodb_log_buffer_size          = 32M
    innodb_buffer_pool_size         = 3G
    innodb_log_file_size            = 768M
    

    PASSO 02)service mysql stop

    PASSO 03)rm -f /var/lib/mysql/ib_logfile*

    PASSO 04)service mysql start

    Isso irá reconstruir os seguintes arquivos

    • /var/lib/mysql/ib_logfile0
    • /var/lib/mysql/ib_logfile1

    De uma chance !!!

    ATUALIZAÇÃO 2013-07-03 12:37 EDT

    Atualizei meus outros posts sobre isso e perdi este

    ButtleButkus acabou de comentar em2013-07-03 07:18:56 EDT

    Não seria aconselhável copiar o ib_logfile* para outro local para backup antes de excluí-los?

    Como pode haver dados transacionais inacabados, aqui está o que deve ser feito

    PASSO 01) Altere o seguinte em /etc/my.cnf

    [mysqld]
    innodb_log_buffer_size          = 32M
    innodb_buffer_pool_size         = 3G
    innodb_log_file_size            = 768M
    

    PASSO 02) mysql -uroot -p -e"SET GLOBAL innodb_fast_shutdown = 0;"

    PASSO 03)service mysql stop

    PASSO 04)rm -f /var/lib/mysql/ib_logfile*

    PASSO 05)service mysql start

    eu adicionei SET GLOBAL innodb_fast_shutdown = 0;. O que isso faz? Ele força o InnoDB a limpar completamente as alterações transacionais de todas as partes móveis do InnoDB, incluindo os logs transacionais (ib_logfile0, ib_logfile1). Assim, não há necessidade de fazer backup do antigo ib_logfile0, ib_logfile1. Se excluí-los deixa você nervoso, então faça o Passo 04

    mv /var/lib/mysql/ib_logfile* ..
    

    para colocar os logs antigos /var/lib. Se a recriação dos logs for bem-sucedida e o mysqld iniciar, você poderá excluir os logs antigos.

    Estou usando esse recurso há um ano. Atualizei meus outros posts para refletir isso...

    • May 20, 2013: Innodb um arquivo por tablespace
    • May 05, 2013: Problema após mover os arquivos ib_logfile1 e ib_logfile0
    • Jan 10, 2013: Encontrando e corrigindo a corrupção do índice InnoDB
    • Dec 17, 2012: Iniciar/Parar MySQL
    • Feb 16, 2011: Como alterar com segurança a variável innodb do MySQL 'innodb_log_file_size'? (Última atualização)
    • Feb 04, 2011: MySQL InnoDB - innodb_file_per_table contras? (Última atualização)
    • Oct 29, 2010: Como: Limpar um mecanismo de armazenamento mysql InnoDB? (Adicionado como Etapa 03 em Jun 04, 2013)

    Se houver outras postagens minhas mais antigas em que não mencionei innodb_fast_shutdown , me avise para que eu possa atualizá-lo. Obrigado novamente, ButtleButkus .

    • 27

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

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

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

    Como selecionar a primeira linha de cada grupo?

    • 6 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
    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
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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