xstrabackup实现数据库主从
2017-12-28 09:17:37 0
工作中备份主要是下面几种:
- 冷备:需要停止当前正在运行mysqld,然后直接拷贝或打包数据文件
- 半热备:mysqldump+binlog --适合数据量比较小的应用
- 在线热备:AB复制 --实时备份
xstrabackup
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品准备环境
- 5 64bit
- mysql 5.5
- xtrabackup-2.2
部署环境
只需要在mysql的主库上面安装yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
rpm -ivh percona-xtrabackup-2.2.12-1.el6.x86_64.rpm
主从配置检查
- 检查server-id配置
- 主和从的server-id一定不能一样 不然一定会报错
也可以通过配置文件my.cnf查看
- 检查binlog日志是否开启
设置mysql密码
mysqladmin -u root password "111222"master上做全库备份
- 备份
innobackupex --defaults-file=/usr/local/services/mysql/my.cnf --user=root --password=111222 /tmp
- 保持事务一致性
innobackupex --defaults-file=/usr/local/services/mysql/my.cnf --user=root --password=111222 --apply-log /tmp/2017-09-25_07-46-14
- 拷贝文件到slave
master上创建同步账号并授权REPLICATION
- 创建用户并授权
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'slave'@'192.168.0.%';
flush privileges;
- 在从库测试是否可以使用slave账号登录
从库配置
- 停掉从库
- 复制从master上面拷贝的文件放到slave的datadir目录下
- msyqldir的data目录授权
启动从库 并执行change master设置主服务器复制信息
- 启动从库的mysql /etc/init.d/mysqld start
- 查看bin_log日志的编号
cat xtrabackup_binlog_info
mysql-bin.000017 107
- 进入mysql设置change master设置主服务器复制信息
- 在slave上面启动复制
- 检查主从是否正常
看下面这两个可以知道
Slave_IO_Running: Yes
Slave_SQL_Running: Yes