Задавайте вопросы, мы ответим
Вы не зашли.
как восстановить таблицы в формате Innodb.
пробовали:
mysql> CHECK TABLE `discount_transactions_all`;
ERROR 2013: Lost connection to MySQL server during query
REPAIR TABLE `discount_transactions_all`;discount_transactions_all | repair | error | The handler for the table doesn't support repair
Неактивен
Боюсь, что только из бэкапа. Таблички InnoDB не бьются так, как бьются MyISAM.
Но и восстанавливаться сами по себе не умеют.
Если бэкапа нет — можно попробовать вытаскивать данные из побившейся таблички,
для этого есть ключик innodb_force_recovery.
Неактивен
Сделали дамп. получилось больше 100 таблиц в текстовом формате.
Теперь как дропнуть таблицы, просто удалить файл ibdata1 ? И как обратно из дампа восстановить в Innodb?
Заранее благодарю.
Неактивен
Да, проще всего удалить все файлики ib* (предварительно остановив сервер), а потом запустить его.
Впрочем, файлики можно оставить (просто переименовать), может, если реально данных очень мало
вытащилось, можно будет каким-то innodb hot backup пробежаться...
Восстановить просто cat *.sql | mysql
Неактивен
cat UTM5.sql | mysql UTM5 не идет. пишет exist
откопал в логах время когда начались проблемы. может поможет в чем то....
090601 10:14:59 mysqld started
InnoDB: 2 transaction(s) which must be rolled back or cleaned up
InnoDB: in total 2 row operations to undo
InnoDB: Trx id counter is 0 411553792
InnoDB: Starting rollback of uncommitted transactions
InnoDB: Cleaning up trx with id 0 389372908
InnoDB: Cleaning up trx with id 0 384659687
InnoDB: Rollback of uncommitted transactions completed
090601 10:15:02 InnoDB: Started
/usr/local/libexec/mysqld: ready for connections.
Version: '4.0.24' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-4.0.24
090610 13:43:07 InnoDB: error clustered record for sec rec not found
InnoDB: index `first_dtr` of table `UTM5/discount_transactions_iptraffic_all`
InnoDB: sec index record PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE; info bits 0
0: len 4; hex c9de6840; asc h@;; 1: len 4; hex 80000000; asc ;; 2: len 4; hex 80000000; asc ;; 3: len 4; hex 82eea8
95; asc ;;
InnoDB: clust index record PHYSICAL RECORD: n_fields 19; 1-byte offs TRUE; info bits 0
0: len 4; hex 82eea88c; asc ;; 1: len 6; hex 0000173565a4; asc 5e ;; 2: len 7; hex 800000002d0084; asc - ;; 3: le
n 4; hex 80000fb9; asc ;; 4: len 8; hex 0000000000000000; asc ;; 5: len 8; hex 0000000000000000; asc ;; 6:
len 4; hex 80000076; asc v;; 7: len 4; hex 800021d6; asc ! ;; 8: len 4; hex 800012c7; asc ;; 9: len 4; hex c9de6840;
asc h@;; 10: len 4; hex c9de61d0; asc a ;; 11: len 4; hex c9de45b0; asc E ;; 12: len 4; hex c9d26830; asc h0;; 13: le
n 4; hex 80000028; asc (;; 14: len 8; hex 0000000000000000; asc ;; 15: len 4; hex 40a84b18; asc @ K ;; 16: len 8; h
ex 8000000000000b40; asc @;; 17: len 4; hex 80000000; asc ;; 18: len 4; hex 80000000; asc ;;
TRANSACTION 0 415211737, ACTIVE 9 sec, OS thread id 176086528 fetching rows, thread declared inside InnoDB 234
mysql tables in use 1, locked 0
MySQL thread id 71, query id 2749985 localhost root Copying to tmp table
SELECT SUM(discount),SUM(bytes),t_class,base_cost,account_id,slink_id, SUM(discount_with_tax) FROM discount_transactions_iptra
ffic_all WHERE discount_date>='1238526000' AND discount_date <='1241080860' AND account_id='3974' GROUP BY t_class,base_cost,s
link_id,account_id
InnoDB: Submit a detailed bug report to http://bugs.mysql.com
090610 13:43:07 InnoDB: error clustered record for sec rec not found
InnoDB: index `first_dtr` of table `UTM5/discount_transactions_iptraffic_all`
InnoDB: sec index record PHYSICAL RECORD: n_fields 4; 1-byte offs TRUE; info bits 0
0: len 4; hex c9de6840; asc h@;; 1: len 4; hex 80000000; asc ;; 2: len 4; hex 80000000; asc ;; 3: len 4; hex 82eea8
97; asc ;;
InnoDB: clust index record PHYSICAL RECORD: n_fields 19; 1-byte offs TRUE; info bits 0
0: len 4; hex 82eea88c; asc ;; 1: len 6; hex 0000173565a4; asc 5e ;; 2: len 7; hex 800000002d0084; asc - ;; 3: l
Неактивен
Ну, разумеется, данные перед началом восстановления надо удалить (стереть ib*, *.frm, если делали дамп
с созданием БД, то и каталог БД).
Неактивен
paulus написал:
Ну, разумеется, данные перед началом восстановления надо удалить (стереть ib*, *.frm, если делали дамп
с созданием БД, то и каталог БД).
Так и сделал. Проблема решилась! Спасибо!
Неактивен
Не забудьте настроить регулярные бэкапы, чтобы не приходилось так восстанавливать данные еще раз.
Неактивен
Здравствуйте, у меня такой вопрос:
Как конвертировать таблички на Innodb?
Неактивен