Страница 1 из 1
Mysqldump all and restore one
Добавлено: 2009-07-08 16:01:47
koffu
Добрый день, коллеги!
Снова прошу совета. Есть довольно таки большой бэкап БД сделанный mysqldump --all-databases > mysqldump.sql. Мне нужно оттуда выдернуть одну не очень большую БД. Подскажите, как это правильно сделать, чтобы не восстанавливать все базы? Если делаю mysql -u root -p dbname < mysqldump.sql, то восстанавливается все, мне это не нужно, т.к. из всех бекапов нужно найти наиболее актуальный, а мой ноут Pm1,73 восстанавливает один бэкап около 45 мин.
Re: Mysqldump all and restore one
Добавлено: 2009-07-08 16:10:32
ViktorichZ
не делайте так никогда "mysqldump --all-databases"
ну либо ручками разбирать, либо залить куданить в инет базу и выдернуть только то, что надо
Re: Mysqldump all and restore one
Добавлено: 2009-07-08 16:14:31
koffu
У меня нет точного скрипта с какими опциями его делали, есть только готовый mysqldump.tgz. А выдернуть как-то красиво и автоматически можно?
Можно конечно сделать распаковку всего дампа, а потом сделать дамп нужной таблицы, с какими его опциями импортировать? Для теста есть линукс, распаковывать будем на фрю, откуда и сливали.
Кусочек из дампа:
Код: Выделить всё
--
-- Table structure for table `archive`
--
DROP TABLE IF EXISTS `archive`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `archive` (
`ar_namespace` int(11) NOT NULL default '0',
`ar_title` varchar(255) character set latin1 collate latin1_bin NOT NULL default '',
`ar_text` mediumblob NOT NULL,
`ar_comment` tinyblob NOT NULL,
`ar_user` int(10) unsigned NOT NULL default '0',
`ar_user_text` varchar(255) character set latin1 collate latin1_bin NOT NULL,
`ar_timestamp` binary(14) NOT NULL default '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
`ar_minor_edit` tinyint(4) NOT NULL default '0',
`ar_flags` tinyblob NOT NULL,
`ar_rev_id` int(10) unsigned default NULL,
`ar_text_id` int(10) unsigned default NULL,
`ar_deleted` tinyint(3) unsigned NOT NULL default '0',
`ar_len` int(10) unsigned default NULL,
`ar_page_id` int(10) unsigned default NULL,
`ar_parent_id` int(10) unsigned default NULL,
KEY `name_title_timestamp` (`ar_namespace`,`ar_title`,`ar_timestamp`),
KEY `usertext_timestamp` (`ar_user_text`,`ar_timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;
Re: Mysqldump all and restore one
Добавлено: 2009-07-08 18:50:11
zg
koffu писал(а):А выдернуть как-то красиво и автоматически можно?
можно
Re: Mysqldump all and restore one
Добавлено: 2009-07-09 1:00:13
buryanov
Я сегодня востанавливал свой exim, грохну случайно blacklist, делал так
Код: Выделить всё
cat mysqldump.sql|grep 'insert into email_blacklist' > 123.sql
mysql -p exim < 123.sql
Перед заливкой можно просмотреть фаил и подредактировать
Re: Mysqldump all and restore one
Добавлено: 2009-07-14 10:40:51
koffu
Решил так: на лэптопе поднял mysql и
Код: Выделить всё
mysql -p < mysqldump.sql, а потом mysql -p database > database.sql