通过 XtraBackup 实现不停机不锁表搭建主从同步

  • 时间:
  • 浏览:0

开启主从同步:

在主库中开设主从用的账号和权限:

注:本文服务器环境为 CentOS,什儿 环境请自行修改实现。

报错信息:

启动从库:

Xtrabackup是由 Percona 开发的另另另另一一好几个 多开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写)。备份时,Xtrabackup 会将 Master 的 binlog 信息记录在 xtrabackup_slave_info 文件中,通过此信息都须要方便的搭建主从一键复制。

查看从库状况:

可能性执行正确,其输出信息通常类似:

可能性服务器剩余空间过高 ,你都须要使用 --move-back 替换掉 --copy-back

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

可能性执行正确,其最后输出的几行信息通常如下:

/etc/init.d/mysqld start

Ps2:启动 MySQL 时,遇到权限问題报告 的正确处理法律土办法:

正确处理法律土办法:

chown -R mysql:mysql /home/data/mysqlchcon -R -t mysqld_db_t /home/mysql

yum list | grep percona

当数据恢复至数据目录之后,还须要确保所有数据文件的属主和属组均为正确的用户,如mysql,之后,在启动mysqld之后还须要之后修改数据文件的属主和属组。如:

Ps:用 innobackupex 备份数据时,–apply-log 正确处理过的备份数据里有另另另另一一好几个 多文件说明该备份数据对应的 binlog 的文件名和位置。但有时什儿 文件说明的位置可能性会不同。

1 对于纯 InnoDB 操作,备份出来的数据中上述另另另另一一好几个 多文件的内容是一致的

2 对于 InnoDB 和非事务存储引擎混合操作,xtrabackup_binlog_info 中所示的 position 应该会比 xtrabackup_pos_innodb 所示的数值大。此时应以 xtrabackup_binlog_info 为准;而后者和 apply-log 时 InnoDB recovery log 中显示的内容是一致的,只针对 InnoDB 这次要数据。

XtraBackup 有另另另另一一好几个 多工具:xtrabackup 和 innobackupex:

vim /etc/my.cnf

在从服务器中恢复备份数据:

innobackupex --copy-back /path/to/BACKUP-DIR

检查是算不算添加成功:

查看备份文件 xtrabackup_binlog_info 中的日志文件以及position。

备份时,innobackupex 会调用 xtrabackup 备份 InnoDB 表的数据,之后会一键复制 MyISAM, MERGE,CSV 和 ARCHIVE 表的表定义文件(.frm 文件)、数据文件。一起去须要备份触发器和数据库配置信息相关的文件。什么文件可能性保处在指定备份目录中另另另另一一好几个 多以时间戳命名的目录下。

vim /etc/my.cnf

chown -R mysql:mysql /mydata/data/

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.0.1' IDENTIFIED BY 'slave';

可能性执行正确,其输出信息通常类似:

一般状况下,在备份完成后,数据尚且并能用于恢复操作,可能性备份的数据中可能性会所含尚未提交的事务或可能性提交但尚未同步至数据文件中的事务。之后,此时数据文件仍正确处理不一致状况。“准备”的主要作用正是通过回滚未提交的事务及同步可能性提交的事务至数据文件也使得数据文件处在一致性状况。

在实现“准备”的过程中,innobackupex 通常还都须要使用 --use-memory 选项来指定其都须要使用的内存的大小,默认通常为 100M。可能性有足够的内存可用,都须要多划分什儿 内存给 prepare 的过程,以提高其完成数率。

1、Master

将数据一键复制到从服务器上:

scp -r /path/to/BACKUP-DIR root@slave_host:/data/

官网:http://www.percona.com/software/percona-xtrabackup

文档:http://www.percona.com/doc/percona-xtrabackup/2.2/index.html

2、Slave:

yum install percona-xtrabackup

innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/

innobackupex --apply-log /path/to/BACKUP-DIR

可能性执行正确,其输出信息的最后几行通常如下: