Приветствую.
Не могу победить задачу простую вроде бы на базе 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.