Бекап базы данных с помощью Percona xtrabackup

Привет! Уже довольно долго бьюсь над задачей, похоже, настало время попросить совета.
Имеется mysql innodb с перконой, Server version: 5.5.28-29.2-log Percona Server (GPL), Release 29.2. Есть желание снять бекап с одной базы на этом сервере, и залить на этот же сервер, но в другую базу. Дампы довольно объемные (сейчас 45Gb,   но может быть и 200), так что mysqldump не подходит.
В мускуле выставлены innodb_import_table_from_xtrabackup и innodb_file_per_table.

Снятие бекапа
cd /path/to/backup/ && sudo rm -r * && sudo xtrabackup --backup --datadir=/SSD/mysql --target-dir= /path/to/backup/ --tables="^source_db[.].*"

xtrabackup --prepare --export --target-dir=/path/to/backup/ 


Создание новой базы и заливка бекапа
mysql -'user' -p'pass' -e 'CREATE DATABASE IF NOT EXISTS destination_db DEFAULT CHARSET utf8;'

mysql -'user' -p'pass'  destination_db < database_schema.sql

mysql -u'user -p'pass' -Nse 'show tables' destination_db | while read table; do mysql -u'user' -p'pass' -e "ALTER TABLE $table DISCARD TABLESPACE" destination_db; done

find /path/to/backup/source_db  -name '*.ibd' -exec sudo cp {} /SSD/mysql/destination_db \;

chown -R mysql:mysql /SSD/mysql/destination_db/

sudo chmod -R 660 /SSD/mysql/destination_db/

mysql -u'user' -p'pass' -Nse 'show tables' destination_db | while read table; do mysql -u'user' -p'apass' -e "ALTER TABLE $table IMPORT TABLESPACE" destination_db; done


Все гут, пока не доходит до alter table $table import tablespace, mysql выдает ERROR 1030 (HY000): Got error -1 from storage engine. В /var/log/mysql/error.log записи типа такого:

130703 20:10:19 InnoDB: Error: trying to open a table, but could not
InnoDB: open the tablespace file './db666/zreports.ibd'!
130703 20:10:19 InnoDB: Error: cannot reset lsn's in table `db666`.`zreports`
InnoDB: in ALTER TABLE… IMPORT TABLESPACE
130703 20:12:22 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
130703 20:12:22 InnoDB: Error: trying to open a table, but could not
InnoDB: open the tablespace file './db666/zreports.ibd'!
130703 20:12:22 InnoDB: Error: cannot reset lsn's in table `db666`.`zreports`
InnoDB: in ALTER TABLE… IMPORT TABLESPACE

И вот я не пойму что не так, или я дамп делаю неправильно, или его заливаю не так? Место на диске есть, права (не смотря на ошибку в логе) вроде бы правильные.
  • Вопрос задан
  • 7841 просмотр
Пригласить эксперта
Ответы на вопрос 2
Вот у человека похожая проблема. Видиму у Вас тоже самое
unixway.info/mysql/innodb-the-error-means-mysqld-does-not-have-the-access-rights-to-the-directory/
Ответ написан
uMg
@uMg
попробуй дамп снимать не xtrabackup а xtrabackup_55
xtrabackup не работает с Percona выше 5.1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы