Innobackupex备份恢复

接到头的指示,要重新搭建一个沙箱环境,登陆目标库查看数据文件大小

[[email protected] mysql5_data3306]# du -sh
575G    .

数据量貌似不小,使用xtrabackup备份比较好。

问题1、sh: xtrabackup_55: command not found

[[email protected] bin]# ./innobackupex-1.5.1 --defaults-file=/apps/conf/mysql/my3306.cnf --socket=/tmp/mysql3306.sock --user=root --password=‘xxxxxxx‘ /tmp/

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved.

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

Get the latest version of Percona XtraBackup, documentation, and help resources:
http://www.percona.com/xb/p

141028 10:02:34  innobackupex-1.5.1: Connecting to MySQL server with DSN ‘dbi:mysql:;mysql_read_default_file=/apps/conf/mysql/my3306.cnf;mysql_read_default_group=xtrabackup;mysql_socket=/tmp/mysql3306.sock‘ as ‘root‘  (using password: YES).
141028 10:02:34  innobackupex-1.5.1: Connected to MySQL server
141028 10:02:34  innobackupex-1.5.1: Executing a version check against the server...
141028 10:02:34  innobackupex-1.5.1: Done.
IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex-1.5.1
           prints "completed OK!".

innobackupex-1.5.1: Using mysql server version 5.5.29-log

sh: xtrabackup_55: command not found
innobackupex-1.5.1: Error: no ‘mysqld‘ group in MySQL options at ./innobackupex-1.5.1 line 4357.

原因:

在/usr/bin目录下并没有找到xtrabackup的命令,innobackupex也会调用xrabackup
[[email protected] bin]# cp xtrabackup_55 /usr/bin/

问题二、InnoDB: Error number 24 means ‘Too many open files‘.

解决innobackupex调用问题之后,继续执行命令

[[email protected] bin]# ./innobackupex-1.5.1 --defaults-file=/apps/conf/mysql/my3306.cnf --socket=/tmp/mysql3306.sock --user=root --password=‘xxxxxx‘ /tmp/

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved.

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

Get the latest version of Percona XtraBackup, documentation, and help resources:
http://www.percona.com/xb/p

141028 10:05:17  innobackupex-1.5.1: Connecting to MySQL server with DSN ‘dbi:mysql:;mysql_read_default_file=/apps/conf/mysql/my3306.cnf;mysql_read_default_group=xtrabackup;mysql_socket=/tmp/mysql3306.sock‘ as ‘root‘  (using password: YES).
141028 10:05:17  innobackupex-1.5.1: Connected to MySQL server
141028 10:05:17  innobackupex-1.5.1: Executing a version check against the server...
141028 10:05:17  innobackupex-1.5.1: Done.
IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex-1.5.1
           prints "completed OK!".

innobackupex-1.5.1: Using mysql server version 5.5.29-log

Warning: xtrabackup_55: ignoring option ‘--innodb_adaptive_hash_index‘ due to invalid value ‘ON‘
innobackupex-1.5.1: Created backup directory /tmp/2014-10-28_10-05-17

141028 10:05:17  innobackupex-1.5.1: Starting ibbackup with command: xtrabackup_55  --defaults-file="/apps/conf/mysql/my3306.cnf"  --defaults-group="mysqld" --backup --suspend-at-end --target-dir=/tmp/2014-10-28_10-05-17 --tmpdir=/apps/tmp
innobackupex-1.5.1: Waiting for ibbackup (pid=8605) to suspend
innobackupex-1.5.1: Suspend file ‘/tmp/2014-10-28_10-05-17/xtrabackup_suspended_2‘

Warning: xtrabackup_55: ignoring option ‘--innodb_adaptive_hash_index‘ due to invalid value ‘ON‘
xtrabackup_55 version 2.1.8 for Percona Server 5.5.35 Linux (x86_64) (revision id: 733)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /apps/dbdat/mysql5_data3306
xtrabackup: using the following InnoDB configuration:
xtrabackup:   innodb_data_home_dir = /apps/dbdat/mysql5_data3306
xtrabackup:   innodb_data_file_path = ibdata1:1000M:autoextend
xtrabackup:   innodb_log_group_home_dir = /apps/dbdat/mysql5_data3306
xtrabackup:   innodb_log_files_in_group = 4
xtrabackup:   innodb_log_file_size = 1048576000
141028 10:05:17 InnoDB: Using Linux native AIO
xtrabackup: using O_DIRECT
>> log scanned up to (4925507986513)
>> log scanned up to (4925508083918)
>> log scanned up to (4925508152373)
>> log scanned up to (4925508254782)
>> log scanned up to (4925508311389)
>> log scanned up to (4925508404567)
>> log scanned up to (4925508472282)
141028 10:05:24  InnoDB: Operating system error number 24 in a file operation.
InnoDB: Error number 24 means ‘Too many open files‘.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html
InnoDB: Error: could not open single-table tablespace file
InnoDB: ./vip_stock_15/size_normal_list.ibd!
InnoDB: We do not continue the crash recovery, because the table may become
InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.
InnoDB: To fix the problem and start mysqld:
InnoDB: 1) If there is a permission problem in the file and mysqld cannot
InnoDB: open the file, you should modify the permissions.
InnoDB: 2) If the table is not needed, or you can restore it from a backup,
InnoDB: then you can remove the .ibd file, and InnoDB will do a normal
InnoDB: crash recovery and ignore that table.
InnoDB: 3) If the file system or the disk is broken, and you cannot remove
InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf
InnoDB: and force InnoDB to continue crash recovery here.
innobackupex-1.5.1: Error: The xtrabackup child process has died at ./innobackupex-1.5.1 line 2622.
[[email protected] bin]#

报错很多,但是要看第一个问题,后续的问题都会受第一个问题的干扰,open files,需要设置ulimit -n

[[email protected] bin]# ulimit -n 8000

好了,现在可以正常调用了

问题3:

文件很大,要如何压缩打包?

/apps/sh/tool/xtrabackup/bin/innobackupex-1.5.1 --defaults-file=/apps/conf/mysql/my3306.cnf --user=root --password=‘xxxxxxxxx‘ --socket=/tmp/mysql3306.sock --stream=tar /apps/tmp/xdbackup/ 2>/apps/tmp/xdbackup/2014-10-27.log |gzip >/apps/tmp/xdbackup/alldb20141027.tar.gz

实际备份完之后,检查压缩包大小

[[email protected] xdbackup]# ll -h alldb20141027.tar.gz 
-rw-r--r-- 1 root root 5.7G Oct 27 20:47 alldb20141027.tar.gz

怎么会只有这么点大?!

[email protected] : (none) 09:53:14> select concat(round(sum(DATA_LENGTH/1024/1024), 2), ‘MB‘) as data from information_schema.TABLES;
+------------+
| data       |
+------------+
| 25722.81MB |
+------------+
原来数据库实际数据大小只有25G

虚惊一场。

现在把压缩后的5.7G的小文件拷贝到服务器上恢复。

解压压缩包:需要添加 -i参数
[[email protected] tmp]# tar ivzxf alldb20141027.tar.gz
应用日志:apply-log
/apps/sh/tool/xtrabackup/bin/innobackupex-1.5.1 --defaults-file=/apps/conf/mysql/mysql5_3306.cnf --ibbackup=xtrabackup_55 --user=root --password=‘xxxxxxx‘ --apply-log /apps/tmp/full/

把完整的数据文件copy-back
[[email protected] full]# /apps/sh/tool/xtrabackup/bin/innobackupex-1.5.1 --defaults-file=/apps/conf/mysql/mysql5_3306.cnf --ibbackup=xtrabackup_55 --user=root --password=‘xxxxxxx‘ --copy-back /apps/tmp/full/
...
...
...
innobackupex-1.5.1: Starting to copy InnoDB log files
innobackupex-1.5.1: in ‘/apps/tmp/full‘
innobackupex-1.5.1: back to original InnoDB log directory ‘/apps/dbdat/mysql5_data3306‘
innobackupex-1.5.1: Copying ‘/apps/tmp/full/ib_logfile0‘ to ‘/apps/dbdat/mysql5_data3306/ib_logfile0‘
innobackupex-1.5.1: Copying ‘/apps/tmp/full/ib_logfile1‘ to ‘/apps/dbdat/mysql5_data3306/ib_logfile1‘
innobackupex-1.5.1: Copying ‘/apps/tmp/full/ib_logfile2‘ to ‘/apps/dbdat/mysql5_data3306/ib_logfile2‘
innobackupex-1.5.1: Copying ‘/apps/tmp/full/ib_logfile3‘ to ‘/apps/dbdat/mysql5_data3306/ib_logfile3‘
innobackupex-1.5.1: Finished copying back files.

141028 10:59:49  innobackupex-1.5.1: completed OK!

拷贝回来之后,文件全是root权限:

需要更改权限之后重启数据库。

时间: 2024-10-04 03:21:57

Innobackupex备份恢复的相关文章

Xtrabackup之innobackupex备份恢复详解(转)

原文:http://ourlinux.blog.51cto.com/274624/844854 安装配置Xtrabackup先看看如何安装Xtrabackup,最简单的安装方式是使用RPM包,不过想使用源代码方式安装的话,其安装方式有点古怪,因为它采用的在MySQL源代码上打补丁构建的方式安装的.这里使用二进制包的安装方式,相对比较灵活.Shell> mkdir /usr/local/xtrabackupShell> tar -zxvf xtrabackup-1.6.tar.gz –C /us

记一次innobackupex备份恢复数据库过程

简介:以前备份都是通过mysqldump备份数据库的,由于是逻辑备份,所以采用这种备份方式数据是很安全的,跨平台.版本都很容易.凡事有利必有弊,逻辑备份在你数据库比较大时,备份.恢复数据所耗费的时间也是蛮长的,所以要不断改进,可以使用物理备份.Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品.Xtrabackup由个部分组成:xtrabackup和innobackupex,其中xtrabackup工具用于备份in

innobackupex备份恢复操作实录

下面开始做全备 [[email protected] mysql]# innobackupex --defaults/file=/etc/my.cnf /tmp 执行完以后产生/tmp/2017-03-28_15-50-37全备文件 下面做增量备份 innobackupex --incremental /tmp --incremental-basedir=/tmp/2017-03-28_15-50-37 产生文件/tmp/2017-03-28_15-52-55 下面做增量恢复,--apply-l

Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工具: xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构: innobackupex:是将xtrabackup进行封装的perl脚本,可以备份和恢复MyISAM表以及数据表结构. 一段官方文档的说明: http://www.per

innobackupex xtrabackup 备份恢复mysql数据

复制地址:https://www.linuxyw.com/download/xtrabackup.pdf http://www.linuxyw.com Email:[email protected] xtrabackup 对 MySQL 数据库的备份及恢复 此文档,只是简单地研究了下,用于数据库全备和增备,效果不错 因为目前对此软件未有需求,所以,文档并不完善,等有时间了,再进行完善吧 此文档资料,互联网收集而成 本人博客: http://www.linuxyw.com xtrabackup x

xtrabackup 备份mysql数据库三: innobackupex 测试一个全量和两个增量的备份恢复测试

## 查看当前库中表的数据 ([email protected]) [test]>select count(*) from t_innodb; +----------+ | count(*) | +----------+ |        0 | +----------+ 1 row in set (0.00 sec) ## 执行插入数据操作,该操作在全备之后执行完成 ([email protected]) [test]>call addTest(100000,0); ## 执行全库备份 #

Mysql 基于innobackupex 的备份&恢复

备份,对于任何数据库,任何系统都是重中之重.针对Mysql,我选择percona xtrabackup软件.我更喜欢物理层面的热备份.而不是逻辑层面的备份(mysqldump),当然很多情况,也要定期做mysqldump备份.增加一个安全的备份选择. 关于如何下载安装percona xtrabackup,请参考: http://blog.51cto.com/hsbxxl/2107388 先看看innobackupex常用参数 --compact        创建一个不包含第二索引(除了主键之外

mysql备份恢复详解

前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢

使用xtrabackup备份恢复Mariadb数据库

使用xtrabackup进行备份 Xtrabackup简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠: (2)备份过程不会打断正在执行的事务: (3)能够基于压缩等功能节约磁盘空间和流量: (4)自动实现备份检验: (5)还原速度快: 官方介绍和下载地址:https://www.percona.com/software/percona-xtra