Страница 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