SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 13.04.2011 04:22:36

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Восстановление MySQL базы данных InnoDB

Здравствуйте. Проблема такая.

Делал бэкап базы простым копированием директории с файлами. Сейчас пытаюсь восстановить. Насколько я понял надо сделать нормальный текстовый дамп. Но у меня не получается.


# mysqldump -u root fengoffice > fengoffice.sql
# mysqldump: Got error: 1146: Table 'fengoffice.og_administration_logs' doesnt exist when using LOCK TABLES
 


Помогите, пожалуйста, восстановить данные.

Отредактированно Neokortex (13.04.2011 04:23:57)

Неактивен

 

#2 13.04.2011 12:37:01

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Восстановление MySQL базы данных InnoDB

Опишите пожалуйста ситуацию более подробно - какие файлы были сохранены, как восстановлены.

Неактивен

 

#3 13.04.2011 13:48:01

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

Для того чтобы сохранить базу fengoffice я cкопировал папку fengoffice из /var/lib/mysql (Fedora) себе на рабочий стол.

Папка эта выглядит следующим образом:


-rw-rw----  1 neokortex neokortex       65 2010-09-14 17:08 db.opt
-rw-rw----  1 neokortex neokortex     8724 2010-09-14 17:08 og_administration_logs.frm
-rw-rw----  1 neokortex neokortex     8730 2010-09-14 17:08 og_administration_tools.frm
-rw-rw----  1 neokortex neokortex     9168 2010-09-14 17:08 og_application_logs.frm
-rw-rw----  1 neokortex neokortex     8846 2010-09-14 17:08 og_application_read_logs.frm
-rw-rw----  1 neokortex neokortex     8902 2010-09-14 17:08 og_billing_categories.frm
-rw-rw----  1 neokortex neokortex     9192 2010-09-14 17:08 og_comments.frm
-rw-rw----  1 neokortex neokortex     9576 2010-09-14 17:08 og_companies.frm
-rw-rw----  1 neokortex neokortex     8676 2010-09-14 17:08 og_config_categories.frm
-rw-rw----  1 neokortex neokortex     8858 2010-09-14 17:08 og_config_options.frm
-rw-rw----  1 neokortex neokortex     8688 2010-09-14 17:08 og_contact_im_values.frm
-rw-rw----  1 neokortex neokortex    19144 2010-09-14 17:08 og_contacts.frm
-rw-rw----  1 neokortex neokortex     8764 2010-09-14 17:08 og_cron_events.frm
-rw-rw----  1 neokortex neokortex     8604 2010-09-14 17:08 og_custom_properties_by_co_type.frm
-rw-rw----  1 neokortex neokortex     8996 2010-09-14 17:08 og_custom_properties.frm
-rw-rw----  1 neokortex neokortex     8686 2010-09-14 17:08 og_custom_property_values.frm
-rw-rw----  1 neokortex neokortex     8658 2010-09-14 17:08 og_event_invitations.frm
-rw-rw----  1 neokortex neokortex     8628 2010-09-14 17:08 og_file_repo_attributes.frm
-rw-rw----  1 neokortex neokortex     8624 2010-09-14 17:08 og_file_repo.frm
-rw-rw----  1 neokortex neokortex     8712 2010-09-14 17:08 og_file_types.frm
-rw-rw----  1 neokortex neokortex     9320 2010-09-14 17:08 og_groups.frm
-rw-rw----  1 neokortex neokortex     8694 2010-09-14 17:08 og_group_users.frm
-rw-rw----  1 neokortex neokortex     8646 2010-09-14 17:08 og_gs_books.frm
-rw-rw----  1 neokortex neokortex     8744 2010-09-14 17:08 og_gs_borderstyles.frm
-rw-rw----  1 neokortex neokortex     8820 2010-09-14 17:08 og_gs_cells.frm
-rw-rw----  1 neokortex neokortex     8790 2010-09-14 17:08 og_gs_columns.frm
-rw-rw----  1 neokortex neokortex     8602 2010-09-14 17:08 og_gs_fonts.frm
-rw-rw----  1 neokortex neokortex     8932 2010-09-14 17:08 og_gs_fontstyles.frm
-rw-rw----  1 neokortex neokortex     8892 2010-09-14 17:08 og_gs_layoutstyles.frm
-rw-rw----  1 neokortex neokortex     8746 2010-09-14 17:08 og_gs_mergedcells.frm
-rw-rw----  1 neokortex neokortex     8778 2010-09-14 17:08 og_gs_rows.frm
-rw-rw----  1 neokortex neokortex     8682 2010-09-14 17:08 og_gs_sheets.frm
-rw-rw----  1 neokortex neokortex     8640 2010-09-14 17:08 og_gs_userbooks.frm
-rw-rw----  1 neokortex neokortex     8782 2010-09-14 17:08 og_gs_users.frm
-rw-rw----  1 neokortex neokortex     8628 2010-09-14 17:08 og_guistate.frm
-rw-rw----  1 neokortex neokortex     8616 2010-09-14 17:08 og_im_types.frm
-rw-rw----  1 neokortex neokortex     8816 2010-09-14 17:08 og_linked_objects.frm
-rw-rw----  1 neokortex neokortex     8662 2010-09-14 17:08 og_mail_account_imap_folder.frm
-rw-rw----  1 neokortex neokortex    13966 2010-09-14 17:08 og_mail_accounts.frm
-rw-rw----  1 neokortex neokortex     8887 2010-09-14 17:08 og_mail_account_users.frm
-rw-rw----  1 neokortex neokortex    13906 2010-09-14 17:08 og_mail_contents.frm
-rw-rw----  1 neokortex neokortex     8556 2010-09-14 17:08 og_mail_conversations.frm
-rw-rw----  1 neokortex neokortex     8790 2010-09-14 17:08 og_mail_datas.frm
-rw-rw----  1 neokortex neokortex     8980 2010-09-14 17:08 og_object_handins.frm
-rw-rw----  1 neokortex neokortex     8724 2010-09-14 17:08 og_object_properties.frm
-rw-rw----  1 neokortex neokortex     8828 2010-09-14 17:08 og_object_reminders.frm
-rw-rw----  1 neokortex neokortex     8586 2010-09-14 17:08 og_object_reminder_types.frm
-rw-rw----  1 neokortex neokortex     8656 2010-09-14 17:08 og_object_subscriptions.frm
-rw-rw----  1 neokortex neokortex     8750 2010-09-14 17:08 og_object_user_permissions.frm
-rw-rw----  1 neokortex neokortex     8626 2010-09-14 17:08 og_project_chart_params.frm
-rw-rw----  1 neokortex neokortex     9134 2010-09-14 17:08 og_project_charts.frm
-rw-rw----  1 neokortex neokortex     8614 2010-09-14 17:08 og_project_companies.frm
-rw-rw----  1 neokortex neokortex     8670 2010-09-14 17:08 og_project_contacts.frm
-rw-rw----  1 neokortex neokortex     8816 2010-09-14 17:08 og_project_co_types.frm
-rw-rw----  1 neokortex neokortex     9650 2010-09-14 17:08 og_project_events.frm
-rw-rw----  1 neokortex neokortex     9176 2010-09-14 17:08 og_project_file_revisions.frm
-rw-rw----  1 neokortex neokortex     9662 2010-09-14 17:08 og_project_files.frm
-rw-rw----  1 neokortex neokortex     9213 2010-09-14 17:08 og_project_forms.frm
-rw-rw----  1 neokortex neokortex     9296 2010-09-14 17:08 og_project_messages.frm
-rw-rw----  1 neokortex neokortex     9484 2010-09-14 17:08 og_project_milestones.frm
-rw-rw----  1 neokortex neokortex     9368 2010-09-14 17:08 og_projects.frm
-rw-rw----  1 neokortex neokortex    10232 2010-09-14 17:08 og_project_tasks.frm
-rw-rw----  1 neokortex neokortex     9858 2010-09-14 17:08 og_project_users.frm
-rw-rw----  1 neokortex neokortex     9066 2010-09-14 17:08 og_project_webpages.frm
-rw-rw----  1 neokortex neokortex     8718 2010-09-14 17:08 og_queued_emails.frm
-rw-rw----  1 neokortex neokortex     8750 2010-09-14 17:08 og_read_objects.frm
-rw-rw----  1 neokortex neokortex     8696 2010-09-14 17:08 og_report_columns.frm
-rw-rw----  1 neokortex neokortex     8824 2010-09-14 17:08 og_report_conditions.frm
-rw-rw----  1 neokortex neokortex     8834 2010-09-14 17:08 og_reports.frm
-rw-rw----  1 neokortex neokortex     8836 2010-09-14 17:08 og_searchable_objects.frm
-rw-rw----  1 neokortex neokortex 10698944 2011-04-05 15:02 og_searchable_objects.MYD
-rw-rw----  1 neokortex neokortex  7549952 2011-04-05 15:56 og_searchable_objects.MYI
-rw-rw----  1 neokortex neokortex     8746 2010-09-14 17:08 og_shared_objects.frm
-rw-rw----  1 neokortex neokortex     8822 2010-09-14 17:08 og_tags.frm
-rw-rw----  1 neokortex neokortex     8734 2010-09-14 17:08 og_template_object_properties.frm
-rw-rw----  1 neokortex neokortex     8754 2010-09-14 17:08 og_template_objects.frm
-rw-rw----  1 neokortex neokortex     8660 2010-09-14 17:08 og_template_parameters.frm
-rw-rw----  1 neokortex neokortex     8810 2010-09-14 17:08 og_templates.frm
-rw-rw----  1 neokortex neokortex     9258 2010-09-14 17:08 og_timeslots.frm
-rw-rw----  1 neokortex neokortex     8678 2010-09-14 17:08 og_user_passwords.frm
-rw-rw----  1 neokortex neokortex    10032 2010-09-14 17:08 og_users.frm
-rw-rw----  1 neokortex neokortex     8706 2010-09-14 17:08 og_user_ws_config_categories.frm
-rw-rw----  1 neokortex neokortex     8874 2010-09-14 17:08 og_user_ws_config_options.frm
-rw-rw----  1 neokortex neokortex     8684 2010-09-14 17:08 og_user_ws_config_option_values.frm
-rw-rw----  1 neokortex neokortex     8826 2010-09-14 17:08 og_workspace_billings.frm
-rw-rw----  1 neokortex neokortex     8756 2010-09-14 17:08 og_workspace_objects.frm
-rw-rw----  1 neokortex neokortex     8758 2010-09-14 17:08 og_workspace_templates.frm
 


Для того чтобы восстановить ее, я скопировал ее в туже папку /var/lib/mysql, но уже на другой машине. Выставил права на папку 700 как и на других базах (MySQL например). На файлы внутри папки выставил права 660 (как и внутри других папок). Пользователя и группу файлам и папке назначил, таких же как и у др. файлов и папок mysql:mysql Перезагрузил сервер mysql.

phpmyadmin мне показывает рядом с названием базы в скобках цифру 84, а если просматривать саму базу то видно только одну таблицу og_searchable_objects 17,4 Мб

Пытаюсь сделать дамп из-того что есть и вот что получается

$ mysqldump -u root fengoffice > fengoffice.sql
mysqldump: Got error: 1146: Table 'fengoffice.og_administration_logs' doesnt exist when using LOCK TABLES
 

Отредактированно Neokortex (13.04.2011 14:02:16)

Неактивен

 

#4 13.04.2011 14:48:23

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Восстановление MySQL базы данных InnoDB

К сожалению в этих файлах только структура таблиц InnoDB. Данные есть только для одной MyISAM таблицы og_searchable_objects. Все остальные данные хранятся в файле /var/lib/mysql/ibdata1 на старой машине.

Неактивен

 

#5 13.04.2011 15:00:37

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

да у меня есть этот файл. что с ним можно сделать?

Неактивен

 

#6 13.04.2011 15:03:37

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Восстановление MySQL базы данных InnoDB

Нужно этот файл положить в /var/lib/mysql на новой машине. Также убедиться, что на новой машине совпадают настройки, касающиеся innodb в /etc/my.cnf. Удалить на новой машине /var/lib/mysql/ib_logfile* затем перезапустить mysql.

Более корректный способ сделать дамп на старой машине и овсстановить на новой.

Неактивен

 

#7 13.04.2011 15:12:01

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

старой машины уже нет sad

файл копировал.

файлы /var/lib/mysql/ib_logfile* удалил

перезапустил - та же ошибка

Неактивен

 

#8 13.04.2011 15:18:02

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Восстановление MySQL базы данных InnoDB

Во-первых, посмотрите, что у Вас написано в журнале ошибок. Скорее всего,
не поднимается InnoDB. Самые частые ошибки — нехватка прав или несоответствие
размеров файлов в журнале и в жизни.

Неактивен

 

#9 13.04.2011 15:22:35

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

110413 15:20:52 [ERROR] Cannot find or open table fengoffice/og_administration_logs from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.
See http://dev.mysql.com/doc/refman/5.1/en/ … oting.html
how you can resolve the problem.

Неактивен

 

#10 13.04.2011 15:27:04

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Восстановление MySQL базы данных InnoDB

У Вас точно ibdata с сервера, с которого Вы делали копию данных? Судя
по тексту ошибки, — это свежесозданный tablespace.

Неактивен

 

#11 13.04.2011 15:36:21

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

да точно.

Неактивен

 

#12 13.04.2011 16:31:37

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Восстановление MySQL базы данных InnoDB

Давайте проведем маленький эксперимент. Можете выполнить
strings ibdata1 | grep fengoffice? Должны быть вхождения этой
базы (она же так называлась на старом сервере?) в файл.

Неактивен

 

#13 13.04.2011 16:46:05

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

да. называлась также.

Я, извините, не знаю как выполнить команду sad


mysql> strings ibdata1 | grep fengoffice;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'strings ibdata1 | grep fengoffice' at line 1
 

Неактивен

 

#14 13.04.2011 17:13:22

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Восстановление MySQL базы данных InnoDB

в консоли сервера

strings /var/lib/mysql/ibdata1 | grep fengoffice

Неактивен

 

#15 13.04.2011 17:20:04

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

вот такая команда ничего не возвращает:


neokortex@neokortex-comp:~$ mysql -u root strings /var/lib/mysql/ibdata1 | grep fengoffice
 


вот еще так пробовал:

mysql> strings /var/lib/mysql/ibdata1 | grep fengoffice;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'strings /var/lib/mysql/ibdata1 | grep fengoffice' at line 1
 


и так:


mysql> strings ibdata1 | grep fengoffice;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'strings ibdata1 | grep fengoffice' at line 1
 

Неактивен

 

#16 13.04.2011 17:23:46

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Восстановление MySQL базы данных InnoDB

Нужно вот так:

neokortex@neokortex-comp:~$ strings /var/lib/mysql/ibdata1 | grep fengoffice

Неактивен

 

#17 13.04.2011 17:24:55

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Восстановление MySQL базы данных InnoDB

mysql тут не при чем, strings — это команда, которая позволяет найти
последовательности, напоминающие строки, в двоичном файле. Если
этот файл был привязан к базе данных fengoffice, в нём должно это
слово упоминаться.

Неактивен

 

#18 13.04.2011 17:33:22

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

спасибо, понял.

вот результат: http://paste.org.ru/?ip3ldm

странный какой-то

Отредактированно Neokortex (13.04.2011 17:35:20)

Неактивен

 

#19 13.04.2011 21:23:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Восстановление MySQL базы данных InnoDB

Хм. Файл и правда правильный. Тогда такое предположение — точно
ли MySQL читает этот файл? Может, у него path прописан не тот?

Неактивен

 

#20 13.04.2011 23:43:30

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

а как это можно проверить?

например команда use показывает таблицы базы.

Неактивен

 

#21 15.04.2011 20:48:31

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Восстановление MySQL базы данных InnoDB

Показывает не USE, а SHOW TABLES, но оно показывает на наличие файликов
.frm, а не на объективное наличие данных в таблице.

Можно, например, посмотреть
lsof -p `cat /var/run/mysqld/mysqld.pid` | grep ibdata

Неактивен

 

#22 16.04.2011 14:38:11

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB


neokortex@neokortex-comp:~$ lsof -p `cat /usr/sbin/mysqld` | grep ibdata
bash: /usr/bin/lsof: Слишком длинный список аргументов
 

Неактивен

 

#23 16.04.2011 21:55:02

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Восстановление MySQL базы данных InnoDB

/usr/sbin/mysqld ≠ /var/run/mysqld/mysqld.pid

cat pid-файла вернет одно число — pid процесса mysqld. lsof -p <pid> покажет
список открытых этим процессом файлов, среди них надо найти ibdata и сравнить
каталоги.

Неактивен

 

#24 21.04.2011 00:18:55

Neokortex
Участник
Зарегистрирован: 13.04.2011
Сообщений: 14

Re: Восстановление MySQL базы данных InnoDB

вопрос решился. не знаю правда каким образом, но решился smile

phpmyadmin стал нормально показывать базу. возмолжно это произошло из-за того что, я прописал в my.cnf "pid-file=/var/run/mysqld/mysqld.pid" в разделе [mysqld_safe]

вывод: надо детально изучить настройку MySQL smile

спасибо вам.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson