Я использую Percona xtrabackup для резервного копирования моих онлайн-баз данных. Есть ли способ преобразовать файлы резервной базы данных в дамп SQL, аналогичный резервной копии, созданной с помощью mysqldump?
К сожалению, способ, которым Percona выполняет процедуру XtraBackup, включает запуск чего-то вроде rsync на работающем производственном сервере, а затем применяет восстановление после сбоя InnoDB к папке tmp (каталог резервных копий) с возможностью создания ib_logfile0 и ib_logfile1, которые могут быть заменой для тех, которые находятся в производство. Эти данные - всего лишь резервная копия.
Если все ваши данные - InnoDB, вам лучше просто выполнение mysqldump для производства с использованием параметра --single-transaction. Еще лучше, вы можете снова выполнять параллельные mysqldump баз данных или inidivdual таблицы, используя параметр --single-transaction для каждого процесса mysqldump.
Вы имеете в виду, что он берет копию на уровне файла /var/lib/mysql
(или эквивалент Windows)?
Если это так, восстановите файлы где-нибудь и измените каталог данных MySQL туда, где вы восстановили /var/lib/mysql
к, например, в /etc/my.cnf
(или эквивалент Windows):
datadir=/tmp/restore/var/lib/mysql
Затем перезапустите MySQL, и вы будете использовать восстановленные базы данных, которые вы можете использовать mysqldump
против.
Если вы используете таблицы InnoDB, вам может потребоваться прочитай это.