Guto, what version of MySQL you are running and on what operating system and version?
Please upgrade to the latest 3.23.47. Many bugs in earlier versions have been fixed. Starting from 3.23.44 you have the following forced recovery option which you can use to dump your tables from a corrupt database. See the online manual at http://www.innodb.com/ibman.html for more information. Best regards, Heikki Tuuri Innobase Oy --- Order technical MySQL/InnoDB support at https://order.mysql.com/ See http://www.innodb.com for the online manual and latest news on InnoDB .............. 6.1 Forcing recovery In some cases apparent database page corruption is actually due to the operating system which has corrupted its own file cache, and the data on disk may be ok. It is best first to try rebooting your computer. It may remove the errors which appeared as database page corruption. If there is database page corruption, you may want to dump your tables from the database with SELECT INTO OUTFILE, and usually most of the data is intact and correct. But the corruption may cause InnoDB background operations to crash or assert, or even the InnoDB roll-forward recovery to crash. Starting from the InnoDB version 3.23.44 there is a my.cnf option with which you can force InnoDB to start up, and you can also prevent background operations from running, so that you will be able to dump your tables. For example, you can set set-variable = innodb_force_recovery = 4 in my.cnf. The alternatives for innodb_force_recovery are listed below. The database must not otherwise be used with these options! As a safety measure InnoDB prevents a user from modifying data when this option is > 0. A bigger number below means that all precautions of lower numbers are included. If you are able to dump your tables with an option at most 4, then you are relatively safe that only some data on corrupt individual pages is lost. Option 6 is more dramatic, because database pages are left in an obsolete state, which in turn may introduce more corruption into B-trees and other database structures. 1 (SRV_FORCE_IGNORE_CORRUPT) let the server run even if it detects a corrupt page; 2 (SRV_FORCE_NO_BACKGROUND) prevent the main thread from running: if a crash would occur in purge, this prevents it; 3 (SRV_FORCE_NO_TRX_UNDO) do not run transaction rollbacks after recovery; 4 (SRV_FORCE_NO_IBUF_MERGE) prevent also insert buffer merge operations: if they would cause a crash, better not do them; 5 (SRV_FORCE_NO_UNDO_LOG_SCAN) do not look at undo logs when starting the database: InnoDB will treat even incomplete transactions as committed; 6 (SRV_FORCE_NO_LOG_REDO) do not do the log roll-forward in connection with recovery. .......... ....................................... Dear folks, Itīs the first time Iīm using this list and now I got a really big problem. Itīs the fourth time the error below hapens to my server and every time it happened I had to process back my backup file. Iīve been working all day long and I donīt wanna loose the information this time. How can I get inside the log and delete manually this uncommitted transaction to put my server up again? Is there a way to do such a thing? Thanks. Guto Vannini 020116 17:21:23 mysqld started InnoDB: Database was not shut down normally. InnoDB: Starting recovery from log files... InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 96570467 InnoDB: Doing recovery: scanned up to log sequence number 0 96587059 Innobase: 1 uncommitted transaction(s) which must be rolled back Innobase: Starting rollback of uncommitted transactions Innobase: Rolling back trx no 760417 mysqld got signal 11; The manual section 'Debugging a MySQL server' tells you how to use a stack trace and/or the core file to produce a readable backtrace that may help in finding out why mysqld died. Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... Bogus stack limit or frame pointer, aborting backtrace. 020116 17:21:23 mysqld ended --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php