Innobackupex 全备数据库(一)

2015-01-21 12:31:11 · 作者: · 浏览: 8

对于MySQL数据库的热备,xtrabackup是除了MySQL enterprise backup之外的不二之选。该工具提供了基于innodb存储引擎的热备,支持全量,增量备份,部分备份,时点恢复以及使用xtrabackup备份来重做slave等。xtrabackup工具包包含一个innobackupex命令行工具,同时支持InnoDB引擎以及MyISAM引擎。本文主要描述的是trabackup的备份原理并给出了相关演示。


1、安装部署Xtrabackup
? 下载地址:http://www.percona.com/software/percona-xtrabackup
? # 本次安装的版本为2.2.5,下载后解压为rpm文件,直接安装即可
?
? # tar -xvf Percona-XtraBackup-2.2.5-r5027-el5-x86_64-bundle.tar
? # rpm -Uvh percona-xtrabackup-2.2.5-5027.el5.x86_64.rpm
? # rpm -Uvh percona-xtrabackup-debuginfo-2.2.5-5027.el5.x86_64.rpm
? # rpm -Uvh percona-xtrabackup-test-2.2.5-5027.el5.x86_64.rpm
? [root@app ~]# ls /usr/bin/xtraba* /usr/bin/inno*
? ? /usr/bin/innobackupex? /usr/bin/innochecksum? /usr/bin/xtrabackup
? ?
? ? Xtrabackup有两个主要的工具:xtrabackup、innobackupex
  a、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
  b、innobackupex是一个perl脚本封装了xtrabackup。支持同时备份InnoDB和MyISAM引擎的表。
? ? 注:本文描述的xtrabackup与innobackupex可以看做是同一概念。


3、extrabackup的备份步骤



4、演示全备


#当前环境
robin@localhost[(none)]> show variables like 'version';
+---------------+------------+
| Variable_name | Value? ? ? |
+---------------+------------+
| version? ? ? | 5.6.12-log |
+---------------+------------+


robin@localhost[(none)]> show variables like '%default_storage%';
+------------------------+--------+
| Variable_name? ? ? ? ? | Value? |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+


#全备数据库
[mysql@app ~]$ innobackupex --user=robin -password=xxx --port=3606 --socket=/tmp/mysql3606.sock \
> --defaults-file=/data/inst3606/data3606/my3606.cnf /data/bak/hotbak


InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
? ? ? ? ? ? ? ............
141105 15:41:59? innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? .............
innobackupex: Using mysql server version 5.6.12-log


innobackupex: Created backup directory /data/bak/hotbak/2014-11-05_15-42-02 #在指定备份目录下创建一个基于时间戳的文件夹


141105 15:42:02? innobackupex: Starting ibbackup with command: xtrabackup? --defaults-file="/data/inst3606/data3606/my3606.cnf"
--defaults-group="mysqld" --backup --suspend-at-end --target-dir=/data/bak/hotbak/2014-11-05_15-42-02
--tmpdir=/tmp --extra-lsndir='/tmp'
innobackupex: Waiting for ibbackup (pid=27441) to suspend
innobackupex: Suspend file '/data/bak/hotbak/2014-11-05_15-42-02/xtrabackup_suspended_2'


#下面从配置文件获取有关innodb的配置信息
xtrabackup version 2.2.5 based on MySQL server 5.6.21 Linux (x86_64) (revision id: )
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /data/inst3606/data3606
xtrabackup: open files limit requested 0, set to 1024? ? ? # Author : Leshami
xtrabackup: using the following InnoDB configuration:? ? ? # Blog? : http://blog.csdn.net/leshami
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 = 50331648
>> log scanned up to (380655683)? #扫描innodb日志lsn并复制inndodb系统表空间
[01] Copying ./ibdata1 to /data/bak/hotbak/2014-11-05_15-42-02/ibdata1
>> log scanned up to (380655683)
>> log scanned up to (380655683)
[01]? ? ? ? ...done
[01] Copying ./mysql/slave_relay_log_info.ibd to /data/bak/hotbak/2014-11-05_15-42-02/mysql/slave_relay_log_info