Mysqldump and MVA

Приветствую.
Не могу победить задачу простую вроде бы на базе 6.2.12. Мне нужно делать бэкап RT таблиц.
Бэкап сделать то не проблема - он делается как физический с помощью mantiore-backup так и через mysqldump так и вызовом BACKUP… А вот восстановление… Восстановить нужно часто одну из десятка существующих таблиц без остановки сервиса.

  • Физический бэкап можно восстановить только с остановкой Replication Cluster что мне недопустимо
  • бэкап, созданный через вызов BACKUP table to PATH похож на тот что выполняется с помощью manticore-backup и восстановление так же через остановку сервиса
  • mysqldump делает нужный вариант по таблично но не восстанавливает таблицы, потому что в таблицах мы используем MVA. Каждый раз восстановление заканчивается ошибкой:
    ERROR 1064 (42000) at line 53: row 1, column 17: non-MVA value specified for a MVA column

Вот такой командой выполняю бэкап:
mysqldump -h0 -P36307 --complete-insert --add-drop-table --extended-insert manticore TBL_NAME > /backup/TBL.sql

Впрочем, не так важно, какие бы я опции не пробовал, всегда одно и то же.

desc t1;
±------±-------±-----------+
| Field | Type | Properties |
±------±-------±-----------+
| id | bigint | |
| n1 | mva | |
±------±-------±-----------+

insert into t1 values(1,(1,2,3));
select * from t1\G
*************************** 1. row ***************************
id: 1
n1: 1,2,3

а mysqldump пишет поле n1(MVA) в дамп файл вот так:

– Dumping data for table t1

LOCK TABLES t1 WRITE;
/*!40000 ALTER TABLE t1 DISABLE KEYS /;
INSERT INTO t1 (id, n1) VALUES (1,‘1,2,3’);
/
!40000 ALTER TABLE t1 ENABLE KEYS */;
UNLOCK TABLES;

То есть скобками не обрамляет значение для n1.

должно быть починено в master версии - вам нужно попробовать dev пакеты

1 Like