innobackex备份数据库

使用innobackex来备份数据库, 因为xtrbackup只能用于备份innodb引擎的数据库,而innobackex 既可以备份innodb引擎的数据库,也可以备份myisam引擎的数据库。备份时也可分为全量备份和增量备份

一 innobackex 的安装

1 安装依赖包

yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL

2 安装 xtrbackup
下载地址  https://www.percona.com/downloads/XtraBackup/LATEST/

cd /usr/local/src
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

二 全量备份

1 创建并授权备份用户用户
mysql -uroot -p123456
grant reload,process,lock tables,replication client on *.* to 'backupuser'@'localhost' identified by '123456';
flush privileges;

查询
show grants for backupuser@localhost

2 创建备份保存目录
mkdir /data/backup

3  全量备份mysql
#备份完成后,会在指定的保存目录中生成一个时间戳目录,该时间戳目录名称也是恢复时的apply-log
innobackupex  --defaults-file=/etc/my.cnf   --user=backupuser --password='123456' -S /tmp/mysql.sock  /data/backup

4 其他用法

其他参数
--safe-slave-backup     如果是主从架构 从始终用这个参数备份
--no-timestamp         默认新建一个以时间戳命名的备份目录,--no-timestamp会跳过此功能
--slave-info       如果是主从架构, 从用这个参数备份

在备份从库时,可以使用该参数, 加上--slave-info备份目录下会多生成一个xtrabackup_slave_info 文件, 这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0。
这个参数适用的场景:假设现在有主库A和从库B,目前想再添加一台备库C,并让备库C以主库A为master;因为主库A是生产库,压力一般比较大,所以我们就在备库B上备份一个数据库,然后把这个备份拿到C服务器上 并导入到C库,接下来再在C服务器上执行change master的命令:其中 master_host是A的ip,而master_log_file和master_log_pos就是这个xtrabackup_slave_info里面的值
--parallel   此参数用于开启多个子进程并发备份多个数据文件(注意,一个数据文件只会有一个进程完成备份)。可以加快备份速度。但是在服务器资源不足时,谨慎使用。 如--parallel=4


解压tar    
tar -xizf    xxxx.tar.gz     //注意这里要求加上-i参数

解压xbstream
xbstream -x <   xbstream文件 -C  要解压的目录 
例: xbstream -x < 1.xbstream  -C /root

备份到远程 
https://www.cnblogs.com/hllnj2008/p/5207066.html
# innobackupex --stream=tar /tmp | ssh root@192.168.1.7 \ "cat - > /backup/bak.tar" ###非压缩方式
# innobackupex --stream=tar /tmp | ssh root@192.168.1.7 \ "gzip >/backup/bak.tar.gz" ###压缩方式
例:
sudo /bin/innobackupex  --defaults-file=/etc/my.cnf  --user=backupuser  --password=123456   -S /tmp/mysql.sock   --parallel=4  --safe-slave-backup --stream=tar  /data/backup/full/ | ssh -p 222  denis@192.168.192.20 \ "gzip - > 123/backup.tar.gz"


三 全量备份恢复测试
模拟故障, mysql的数据损毁, 之前已经有全量备份

1 停止mysql服务 不允许mysql进程存在

/etc/init.d/mysqld stop
ps aux |grep "mysqld"



2 删除mysql原有数据

mv /data/mysql /data/mysql.bak
mkdir /data/mysql


3 恢复mysql

初始化
# –use-memory=512M指定备份时使用的内存为512M,默认为100M, 注意单位。默认为字节
innobackupex --use-memory=512M --apply-log /全量备份时间戳目录/



恢复mysql , 设置权限
#使用–copy-back参数恢复
innobackupex --defaults-file=/etc/my.cnf --copy-back /全量备份时间戳目录/
chown -R mysql:mysql /data/mysql


启动mysql , 查看数据是否恢复成功
/etc/init.d/mysqld start
ps aux |grep "mysqld"

转载于:https://my.oschina.net/u/3746773/blog/1788905

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值