xtrabackup的备份配置异常问题解析

来源:互联网 发布:手机淘宝申请试用 编辑:程序博客网 时间:2024/05/22 09:45

在配置xtrabackup的时候经常出现一些比较怪异的问题所在,比如提示相关的datadir不存在,但是在我们的my.cnf已经存在了,仍然报类似相关的错误信息了!这里我对于不同版本的安装在不同系统不敢苟同,但是在高版本当中很多的相关参数配置方法已经内部做好,无需在手工进行编译配置,以下是我在centos5.5系统上配置xtrabackup1.6.2的相关步骤,以及异常的相关解决方法,仅此提供参考而已;

在安装相关的方法中有三种方式,有RPM安装,源码编译安装,二进制方式安装;这里我选择源码自己编译方式安装编译,遇到相关的了异常问题,以下是常规的步骤;

1.tar xvfz (解压gz的包)

2.进入解压后的安装包执行;utils/build.sh innodb55(这里编译好以后会出现相关的mysql编译包)如:

[root@Slave02 xtrabackup-1.6.2]# ls
BUILD.txt doc innobackupex-1.5.1 libtar-1.2.11.tar.gz mysql-5.1.56.tar.gz mysql-5.5.10.tar.gz stderr test VERSION
COPYING innobackupex libtar-1.2.11 Makefile mysql-5.5

3.相关文档中提到要直接编译以上蓝色提示的perl文件,即可,但是这里无法执行,原因就是相关的软连接没有做好;这里做如下动作;

[root@Slave02 xtrabackup-1.6.2]# ls mysql-5.5/storage/innobase/xtrabackup/
Makefile  xtrabackup.c  xtrabackup_innodb55  xtrabackup.o
[root@Slave02 xtrabackup-1.6.2]# cp mysql-5.5/storage/innobase/xtrabackup/xtrabackup_innodb55  /usr/bin/xtrabackup_55
[root@Slave02 xtrabackup-1.6.2]# cp innobackupex /usr/bin/innobackupex
[root@Slave02 xtrabackup-1.6.2]# cp libtar-1.2.11/libtar/tar4ibd   /usr/bin/tar4ibd         
[root@Slave02 xtrabackup-1.6.2]# ln -sf /usr/local/mysql/bin/mysql /usr/bin/mysql

这里做这几个连接既可以了;

4.这里可以执行了相关的命令了,由于xtrabackup只是拷贝相关的innodb的ibd文件相关的表结构并没有备份下来,所以这里我们需要单独手工去去下来;以下是普通备份成功步骤;

[root@Slave02 xtrabackup-1.6.2]# xtrabackup_55  --defaults-file=/etc/my.cnf  --backup --target-dir=/data/back_up/ 
xtrabackup_55 version 1.6.2 for MySQL server 5.5.10 Linux (i686) (revision id: undefined)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /usr/local/mysql/data
xtrabackup: Target instance is assumed as followings.
xtrabackup:   innodb_data_home_dir = ./
xtrabackup:   innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 5242880
130121 14:00:15 InnoDB: Using Linux native AIO
130121 14:00:15  InnoDB: Warning: allocated tablespace 6, old maximum was 0
>> log scanned up to (1645833)
[01] Copying ./ibdata1 
     to /data/back_up//ibdata1
[01]        ...done
[01] Copying ./inno/ttt.ibd 
     to /data/back_up//inno/ttt.ibd
[01]        ...done
[01] Copying ./inno/iso_test.ibd 
     to /data/back_up//inno/iso_test.ibd
[01]        ...done
[01] ./inno/t3.ibd is compressed with page size = 1024 bytes
[01] Copying ./inno/t3.ibd 
     to /data/back_up//inno/t3.ibd
[01]        ...done
[01] Copying ./inno/t1.ibd 
     to /data/back_up//inno/t1.ibd
[01]        ...done
xtrabackup: The latest check point (for incremental): '1645833'
>> log scanned up to (1645833)
xtrabackup: Stopping log copying thread.
xtrabackup: Transaction log of lsn (1645833) to (1645833) was copied.
[root@Slave02 xtrabackup-1.6.2]# 

5.全量备份;

[root@Slave02 back_up]# mkdir -p /data/back_up/mysql/base

[root@Slave02 back_up]# xtrabackup_55 --defaults-file=/etc/my.cnf  --backup --target-dir=/data/back_up/mysql/base/
xtrabackup_55 version 1.6.2 for MySQL server 5.5.10 Linux (i686) (revision id: undefined)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /usr/local/mysql/data
xtrabackup: Target instance is assumed as followings.
xtrabackup:   innodb_data_home_dir = ./
xtrabackup:   innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 5242880
130121 14:30:16 InnoDB: Using Linux native AIO
130121 14:30:17  InnoDB: Warning: allocated tablespace 6, old maximum was 0
>> log scanned up to (1645833)
[01] Copying ./ibdata1 
     to /data/back_up/mysql/base//ibdata1
[01]        ...done
[01] Copying ./inno/ttt.ibd 
     to /data/back_up/mysql/base//inno/ttt.ibd
[01]        ...done
[01] Copying ./inno/iso_test.ibd 
     to /data/back_up/mysql/base//inno/iso_test.ibd
[01]        ...done
[01] ./inno/t3.ibd is compressed with page size = 1024 bytes
[01] Copying ./inno/t3.ibd 
     to /data/back_up/mysql/base//inno/t3.ibd
[01]        ...done
[01] Copying ./inno/t1.ibd 
     to /data/back_up/mysql/base//inno/t1.ibd
[01]        ...done
xtrabackup: The latest check point (for incremental): '1645833'
>> log scanned up to (1645833)
xtrabackup: Stopping log copying thread.
xtrabackup: Transaction log of lsn (1645833) to (1645833) was copied.
[root@Slave02 back_up]# ls /data/back_up/mysql/base/
ibdata1  inno  xtrabackup_checkpoints  xtrabackup_logfile
[root@Slave02 back_up]# cp -r /usr/local/mysql/data/inno/  /data/back_up/mysql/
[root@Slave02 back_up]#

7.增量备份:在增量备份目录下,数据文件都是以.delta结尾的。增量备份只备份上一次全量备份后被修改过的page,所以增量备份只暂用较少的空间。增量备份可以在增量备份的基础上增量。增量备份目录每次都需修改的。比如第二次增量就改成/data/back_up/mysql/delta;如:

[root@Slave02 inno]# mkdir -p /data/back_up/mysql/delta
[root@Slave02 inno]# xtrabackup_55 --defaults-file=/etc/my.cnf  --backup --targe
t-dir=/data/back_up/mysql/delta/ --incremental-basedir=/data/back_up/mysql/base/xtrabackup_55 version 1.6.2 for MySQL server 5.5.10 Linux (i686) (revision id: undefined)
incremental backup from 1645833 is enabled.
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /usr/local/mysql/data
xtrabackup: Target instance is assumed as followings.
xtrabackup:   innodb_data_home_dir = ./
xtrabackup:   innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 5242880
130121 14:35:36 InnoDB: Using Linux native AIO
130121 14:35:36  InnoDB: Warning: allocated tablespace 6, old maximum was 0
>> log scanned up to (1645833)
[01] Copying ./ibdata1 
     to /data/back_up/mysql/delta//ibdata1.delta
[01]        ...done
[01] Copying ./inno/ttt.ibd 
     to /data/back_up/mysql/delta//inno/ttt.ibd.delta
[01]        ...done
[01] Copying ./inno/iso_test.ibd 
     to /data/back_up/mysql/delta//inno/iso_test.ibd.delta
[01]        ...done
[01] ./inno/t3.ibd is compressed with page size = 1024 bytes
[01] Copying ./inno/t3.ibd 
     to /data/back_up/mysql/delta//inno/t3.ibd.delta
[01]        ...done
[01] Copying ./inno/t1.ibd 
     to /data/back_up/mysql/delta//inno/t1.ibd.delta
[01]        ...done
xtrabackup: The latest check point (for incremental): '1645833'
>> log scanned up to (1645833)
xtrabackup: Stopping log copying thread.
xtrabackup: Transaction log of lsn (1645833) to (1645833) was copied.
[root@Slave02 inno]# ls /data/back_up/mysql/delta/
ibdata1.delta  ibdata1.meta  inno  xtrabackup_checkpoints  xtrabackup_logfile
[root@Slave02 inno]# 

(2)innobackupex可以备份innodb,myisam引擎的数据;如;

[root@Slave02 tmp]# innobackupex  --database="inno test" --user=root --password=root  --no-lock --defaults-file=/etc/my.cnf  /data/back_up/mysql 2>/tmp/mysqlbackup.log
xtrabackup_55 version 1.6.2 for MySQL server 5.5.10 Linux (i686) (revision id: undefined)
[01] Copying ./ibdata1 
     to /data/back_up/mysql/2013-01-21_16-20-03/ibdata1
[01]        ...done
[01] Copying ./inno/ttt.ibd 
     to /data/back_up/mysql/2013-01-21_16-20-03/inno/ttt.ibd
[01]        ...done
[01] Copying ./inno/iso_test.ibd 
     to /data/back_up/mysql/2013-01-21_16-20-03/inno/iso_test.ibd
[01]        ...done
[01] Copying ./inno/t3.ibd 
     to /data/back_up/mysql/2013-01-21_16-20-03/inno/t3.ibd
[01]        ...done
[01] Copying ./inno/t1.ibd 
     to /data/back_up/mysql/2013-01-21_16-20-03/inno/t1.ibd
[01]        ...done
xtrabackup: The latest check point (for incremental): '1645833'
xtrabackup: Stopping log copying thread.
xtrabackup: Transaction log of lsn (1645833) to (1645833) was copied.
[root@Slave02 tmp]# ls
gconfd-root     keyring-IP3NHE  mysqlbackup.log  stderr
keyring-Be0UuO  mapping-root    mysql.sock       stdout
[root@Slave02 tmp]# cat mysqlbackup.log 


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


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


130121 16:19:57  innobackupex: Starting mysql with options:  --defaults-file='/etc/my.cnf' --password='root' --user='root' --unbuffered --
130121 16:19:57  innobackupex: Connected to database with mysql child process (pid=15018)
130121 16:20:03  innobackupex: Connection to database server closed
IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".


innobackupex: Using mysql  Ver 14.14 Distrib 5.5.13, for Linux (i686) using readline 5.1
innobackupex: Using mysql server version Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.


innobackupex: Created backup directory /data/back_up/mysql/2013-01-21_16-20-03
130121 16:20:03  innobackupex: Starting mysql with options:  --defaults-file='/etc/my.cnf' --password='root' --user='root' --unbuffered --
130121 16:20:03  innobackupex: Connected to database with mysql child process (pid=15046)
130121 16:20:07  innobackupex: Connection to database server closed


130121 16:20:07  innobackupex: Starting ibbackup with command: xtrabackup_55  --defaults-file="/etc/my.cnf" --backup --suspend-at-end --target-dir=/data/back_up/mysql/2013-01-21_16-20-03
innobackupex: Waiting for ibbackup (pid=15058) to suspend
innobackupex: Suspend file '/data/back_up/mysql/2013-01-21_16-20-03/xtrabackup_suspended'


xtrabackup: uses posix_fadvise().
xtrabackup: cd to /usr/local/mysql/data
xtrabackup: Target instance is assumed as followings.
xtrabackup:   innodb_data_home_dir = ./
xtrabackup:   innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 5242880
130121 16:20:07 InnoDB: Using Linux native AIO
130121 16:20:07  InnoDB: Warning: allocated tablespace 6, old maximum was 0
>> log scanned up to (1645833)
[01] ./inno/t3.ibd is compressed with page size = 1024 bytes


130121 16:20:09  innobackupex: Continuing after ibbackup has suspended
130121 16:20:09  innobackupex: Starting mysql with options:  --defaults-file='/etc/my.cnf' --password='root' --user='root' --unbuffered --
130121 16:20:09  innobackupex: Connected to database with mysql child process (pid=15073)
>> log scanned up to (1645833)


130121 16:20:13  innobackupex: Starting to backup .frm, .MRG, .MYD, .MYI,
innobackupex: .TRG, .TRN, .ARM, .ARZ, .CSM, .CSV and .opt files in
innobackupex: subdirectories of '/usr/local/mysql/data'
innobackupex: Backing up file '/usr/local/mysql/data/inno/t1.frm'
innobackupex: Backing up file '/usr/local/mysql/data/inno/iso_test.frm'
innobackupex: Backing up file '/usr/local/mysql/data/inno/t3.frm'
innobackupex: Backing up file '/usr/local/mysql/data/inno/db.opt'
innobackupex: Backing up file '/usr/local/mysql/data/inno/ttt.frm'
innobackupex: Backing up file '/usr/local/mysql/data/test/t1.frm'
innobackupex: Backing up file '/usr/local/mysql/data/test/t1.MYD'
innobackupex: Backing up file '/usr/local/mysql/data/test/t1.MYI'
innobackupex: Backing up file '/usr/local/mysql/data/test/t2.MYD'
innobackupex: Backing up file '/usr/local/mysql/data/test/t2.MYI'
innobackupex: Backing up file '/usr/local/mysql/data/test/t2.frm'
130121 16:20:13  innobackupex: Finished backing up .frm, .MRG, .MYD, .MYI, .TRG, .TRN, .ARM, .ARZ, .CSV, .CSM and .opt files


innobackupex: Resuming ibbackup


>> log scanned up to (1645833)
130121 16:20:13  innobackupex: Connection to database server closed


innobackupex: Backup created in directory '/data/back_up/mysql/2013-01-21_16-20-03'
130121 16:20:13  innobackupex: completed OK!
[root@Slave02 tmp]# cd /data/back_up/mysql/
[root@Slave02 mysql]# ll
total 8
drwxr-xr-x 4 root root 4096 Jan 21 16:20 2013-01-21_16-20-03
[root@Slave02 mysql]#