教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 innobackupex来备份和恢复MySQL数据库的例子

innobackupex来备份和恢复MySQL数据库的例子

发布时间:2023-04-29   编辑:jiaochengji.com
教程集为您提供innobackupex来备份和恢复MySQL数据库的例子等资源,欢迎您收藏本站,我们将为您提供最新的innobackupex来备份和恢复MySQL数据库的例子资源
Xtrabackup是由percona开发的一个开源软件,此软件可以说是innodb热备工具ibbackup的一个开源替代品。这个软件是由2个部分组成的:xtrabackup和innobackupex。下面来看一篇innobackupex来备份和恢复MySQL的教程

背景介绍:

在一些技术群里面,看到仍然有一些运维在用mysqldump这样的命令来备份MySQL,于是感觉有必要介绍一下innobackupex。
现在,绝大多数使用MySQL的场景中,都用到了Master-Slave这样的架构。相对于mysqldump而言,使用innobackupex备份有以下好处:
1. 以数据文件为备份对象,文件级别备份,速度快,尤其适合需要对所有数据进行备份的场景;
2. 热备份,不会对现有的数据库访问造成任何影响;
3. 记录binlog以及replication相关信息,在创建和恢复Slave时非常有用;

以下是风哥的几点补充:
1.用innobackupex可以做到不停业务在线备份,前提是对innodb引擎,对myisam也会锁表;
2.在备份过程会导致IO很高,建议在一台slave上做备份(我一般用一台slave只做备份用),不建议在主上备份; 3.innobackupex可以用增量与全量备份方式配合;

具体用例:

环境介绍

架构:Master-Slave
MySQL端口:3308
配置文件:/etc/my_3308.cnf
备份目录:/mysql-backup/3308
MySQL数据目录:/opt/mysql_3308/data
服务脚本:/etc/init.d/mysql_3308
在Master上备份

# innobackupex --defaults-file=/etc/my_3308.cnf /mysql-backup/3308 --user=backup-user --password=backup-user --no-lock
在Slave上备份

# innobackupex --defaults-file=/etc/my_3308.cnf /mysql-backup/3308 --user=backup-user --password=backup-user --no-lock --slave-info  --safe-slave-backup
在Master上恢复

# /etc/init.d/mysql_3308 stop

# mv /opt/mysql_3308/data /opt/mysql_3308/data_broken
# mkdir /opt/mysql_3308/data

# innobackupex --apply-log /mysql-backup/2015-01-12_08-00-10
# innobackupex --copy-back /mysql-backup/2015-01-12_08-00-10 --defaults-file=/etc/my_3308.cnf

# chown -R mysql:mysql /opt/mysql_3308/data

# /etc/init.d/mysql_3308 start
在Slave上恢复

# /etc/init.d/mysql_3308 stop

# mv /opt/mysql_3308/data /opt/mysql_3308/data_broken
# mkdir /opt/mysql_3308/data

# innobackupex --apply-log /mysql-backup/2015-01-12_08-00-10
# innobackupex --copy-back /mysql-backup/2015-01-12_08-00-10 --defaults-file=/etc/my_3308.cnf

# chown -R mysql:mysql /opt/mysql_3308/data

# /etc/init.d/mysql_3308 start

# cd /opt/mysql_3308/data
# cat xtrabackup_binlog_pos_innodb
./bin-log-mysqld.000222      222333

# mysql_3308 -uroot -p

mysql> change master to
master_host='master_host',
master_port=3308,
master_user='master_user',
master_password='master_password',
master_log_file='bin-log-mysqld.000222',
master_log_pos=222333;

mysql> start slave;

您可能感兴趣的文章:
Mysql 备份与恢复实例教程
使用Percona XtraBackup进行mysql热备之测试
mysql命令之备份数据库
学习mysql常用的三种备份方法
mysqldump使用binlog二进制日志进行备份的例子
centos5.4下mysql主从复制配置分享
Linux下备份与还原整个MySQL整个数据库的脚本
MySQL导入导出命令的例子
学习mysql的备份与恢复
MariaDB/MySQL主从复制之借助Percona的XtraBackup实现不锁表不停库热同步

[关闭]
~ ~