Я могу восстановить единственную таблицу от полного mysql mysqldump файл?

@Marc B Спасибо за комментарий. Помог мне узнать это:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
the_content();
endwhile; else: ?>
<p>Sorry, no posts matched your criteria.</p>
<?php endif; ?>
181
задан Mobius 18 June 2009 в 05:50
поделиться

6 ответов

Вы можете попробовать использовать sed для извлечения только нужной таблицы.

Допустим, имя вашей таблицы - mytable , а файл mysql.dump это файл, содержащий ваш огромный дамп:

$ sed -n -e '/CREATE TABLE.*`mytable`/,/CREATE TABLE/p' mysql.dump > mytable.dump

Это скопирует в файл mytable.dump то, что находится между CREATE TABLE mytable и следующей CREATE TABLE соответствующей следующей таблице.

Затем вы можете настроить файл mytable.dump , который содержит структуру таблицы mytable и данные (список INSERT ).

272
ответ дан 23 November 2019 в 06:08
поделиться

Большинство современных текстовых редакторов должны уметь обрабатывать текстовые файлы такого размера, если ваша система подходит для этого.

В любом случае, мне пришлось сделать это один раз очень быстро, и у меня не было время найти любые инструменты. Я установил новый экземпляр MySQL, импортировал всю резервную копию и затем выплюнул только ту таблицу, которую хотел.

Затем я импортировал эту таблицу в основную базу данных.

Это было утомительно, но довольно легко. Удачи.

1
ответ дан 23 November 2019 в 06:08
поделиться

Чанки SQL заблокированы с помощью «Структура таблицы для таблицы my_table » и «Выгрузка данных для таблицы my_table ».

Вы можете использовать командную строку Windows, как показано ниже, чтобы получить строку номера для различных разделов. При необходимости измените искомую строку.

find / n "для таблицы" "sql.txt

Будет возвращено следующее:

---------- SQL.

0
ответ дан 23 November 2019 в 06:08
поделиться

Один из возможных способов справиться с этим - восстановить временную базу данных и выгрузить только эту таблицу из временной базы данных. Затем используйте новый сценарий.

4
ответ дан 23 November 2019 в 06:08
поделиться

Получите приличный текстовый редактор, например Notepad ++ или Vim (если вы уже разбираетесь в нем). Найдите имя таблицы, и вы сможете выделить только команды CREATE, ALTER и INSERT для этой таблицы. Навигация может быть проще с помощью клавиатуры, чем с помощью мыши. И я хотел бы убедиться, что вы находитесь на машине с большим количеством оперативной памяти, чтобы у нее не было проблем с загрузкой всего файла сразу. После того, как вы выделили и скопировали нужные строки, было бы неплохо сделать резервную копию только скопированной части в ее собственный файл резервной копии, а затем импортировать ее в MySQL.

0
ответ дан 23 November 2019 в 06:08
поделиться

Так или иначе, любой процесс, выполняющий, который должен будет пройти весь текст дампа и каким-то образом его разобрать. Я бы просто набрал

INSERT INTO `the_table_i_want`

с помощью grep и передал вывод в mysql. Взгляните на первую таблицу в дампе, чтобы убедиться, что вы правильно понимаете INSERT.

Edit: Хорошо, на этот раз правильно форматирование.

9
ответ дан 23 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: