【MySQL学习笔记】innobackupex还原时报错Original data directory './' is not empty! line 590

innobackupex命令还原时报错。

报错信息如下:

[mysql@ggg2 ~]$  innobackupex --defaults-file=/data/mysqldata/backup/2016-10-16_21-47-35/backup-my.cnf --copy-back /data/mysqldata/backup/2016-10-16_21-47-35

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Ireland Ltd 2009-2012.  All Rights Reserved.

This software is published under
the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.

IMPORTANT: Please check that the copy-back run completes successfully.
           At the end of a successful copy-back run innobackupex
           prints "completed OK!".

Original data directory './' is not empty! at /usr/local/percona-xtrabackup-2.0.7/bin/innobackupex line 590.


1、在网上也找到一些类似错误的解决办法,但是都无效。

命令中通过 --defaults-file选项,指定了参数文件(备份的):/DATA/mysqldata/BACKUP/2016-10-16_21-47-35/BACKUP-my.cnf

于是查看了参数文件,内容如下:

# This MySQL options file was generated by innobackupex.

# The MySQL server
[mysqld]
innodb_data_file_path=ibdata1:2048M:autoextend
innodb_log_files_in_group=3
innodb_log_file_size=134217728
innodb_page_size=16384
innodb_undo_tablespaces=0

额,被innobackupex命令备份的参数文件给坑了,竟然没有datadir参数。

于是加了一行:datadir=/data/mysqldata/3306/data

再次运行命令,还是报错:

Original data directory '/data/mysqldata/3306/data' does not exist! at /usr/local/percona-xtrabackup-2.0.7/bin/innobackupex line 586.


2、不过这个错误,和网上找到的错误类似,所以按照网上找到的解决方法,就是要创建 /data/mysqldata/3306/data 数据目录:
[mysql@ggg2 ~]$ mkdir -p /data/mysqldata/3306/data
[mysql@ggg2 ~]$ ls -al /data/mysqldata/3306
总用量 12
drwxrwxr-x. 3 mysql mysql 4096 10月 18 22:44 .
drwxr-xr-x. 7 mysql mysql 4096 10月 18 22:44 ..
drwxrwxr-x. 2 mysql mysql 4096 10月 18 22:44 data

3、再次执行命令,还是报错了,不过这次是空间不足可怜

innobackupex: Error: copy failed: 设备上没有空间 at /usr/local/percona-xtrabackup-2.0.7/bin/innobackupex line 386.

看了一下,确实是没有剩余空间了,使用率100%了偷笑

[root@ggg2 Desktop]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        16G   15G     0 100% /
tmpfs           936M  228K  936M   1% /dev/shm
/dev/sda1       194M   36M  148M  20% /boot

删了一些不需要的文件之后,再次执行命令,就成功了,这样就把之前所备份的文件还原到 数据目录中了:

161018 22:55:37  innobackupex: completed OK!


4、把参数文件复制到原来的目录:

[mysql@ggg2 ~]$ cp /data/mysqldata/backup/2016-10-16_21-47-35/backup-my.cnf /data/mysqldata/3306/my.cnf

然后,再my.cnf文件上再加上:

basedir = /usr/local/mysql
socket = /data/mysqldata/3306/mysql.sock
pid-file = /data/mysqldata/3306/mysql.pid
tmpdir = /data/mysqldata/3306/tmp

5、接下来,启动mysql,不过报错了,说tmp目录不存在,然后接着创建tmp目录,不过还是回报错:

2016-10-18 23:22:40 22909 [ERROR] InnoDB: auto-extending data file /data/mysqldata/3306/data/ibdata1 
is of a different size 20163 pages (rounded down to MB) than specified in the .cnf file: initial 131072 pages, 
max 0 (relevant if non-zero) pages!
6、一开始没有明白为什么会报这个错误,后来才发现,原来是mysql发现在数据目录下没有发现 ibdata,所以又新建了一个ibdata文件,于是就报那个错误了,于是接下来把ibdata文件和ib_logfile文件拷贝到数据目录下, 启动mysql,恢复正常。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值