Recuperando um banco de dados MySQL quando o servidor mysql não for iniciado

1

Meu Windows Server 2003 perdeu energia ontem à tarde. Ao trazer o servidor de volta, o banco de dados MySQL 5.0 não iniciaria. Verifiquei o log de erros e vi que havia erros ao acessar páginas no arquivo ibdata1. Houve também uma falha de declaração que indicou que preciso habilitar o innodb_force_recovery. Eu tentei isso e configurei o valor para 4, 5, 6 e 8. Cada vez que o servidor mysql falharia em iniciar. Eu vi o innodb-tools aqui mas parece que eu preciso de pelo menos uma instância mysql parcialmente funcional para aqueles trabalho.

Eu preciso pelo menos recuperar os dados das tabelas. O backup mais recente não contém tudo o que preciso recuperar. Tudo o que vi até agora indica que estou sem sorte. Eu pensei em ver se alguém poderia me apontar na direção certa.

Aqui está a entrada do log de erros relacionado:

InnoDB: The user has set SRV_FORCE_NO_LOG_REDO on
InnoDB: Skipping log redo
InnoDB: Error: trying to access page number 4294965119 in space 0,
InnoDB: space name .\ibdata1,
InnoDB: which is outside the tablespace bounds.
InnoDB: Byte offset 0, len 16384, i/o type 10.
InnoDB: If you get this error at mysqld startup, please check that
InnoDB: your my.cnf matches the ibdata files that you have in the
InnoDB: MySQL server.
091015 18:46:22InnoDB: Assertion failure in thread 4648 in file .\fil\fil0fil.c line     3959
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
InnoDB: about forcing recovery.
091015 18:46:22 [ERROR] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Got signal 11. Aborting!

091015 18:46:22 [ERROR] Aborting

091015 18:46:22 [Note] C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt: Shutdown complete

Arquivo de configuração:

[client]
port=3306
[mysql]    
default-character-set=latin1
[mysqld]
innodb_force_recovery = 8
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
default-character-set=latin1
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=103M
thread_cache_size=8
#*** MyISAM Specific options
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=205M
key_buffer_size=175M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
#*** INNODB Specific options ***
innodb_additional_mem_pool_size=7M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=3498K
innodb_buffer_pool_size=339M
innodb_log_file_size=170M
innodb_thread_concurrency=8
    
por James 16.10.2009 / 00:14

1 resposta

1

Dê uma olhada no link . Isso parece muito com o seu erro. A causa raiz nesse caso foi uma mudança acidental na configuração. Se você tem um backup do seu arquivo de configuração, você pode compará-lo com o atual.

Se você não tiver certeza do que procurar, poste uma cópia do seu my.cnf e uma listagem dos arquivos no diretório de dados do mysql.

    
por 16.10.2009 / 00:54

Tags