mysqlslave--xstrabackup

使用xtrabackup实现MySQL主从复制

环境 ceshi27主库 ceshi28从库
master 172.16.85.10 slave 172.16.85.13

安装xtrabackup 只需要在主库上面安装

yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.12/binary/redhat/6/x86_64/percona-xtrabackup-2.2.12-1.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-2.2.12-1.el6.x86_64.rpm

是现在mysql主从复制

主从配置检查

  1. 检查server-id配置
    主和从的server-id一定不能一样 不然一定会报错
    show global variables like 'server_id';查看serverid
    也可以通过查看my.cnf
  2. 检查binlog日志是否开启
    show global variables like 'log_bin';
    server-id=1
    log-bin=mysql-bin

设置mysql密码

mysqladmin -u root password "tanzhouawen"

master上做全库备份

  1. 备份
    innobackupex --defaults-file=/usr/local/services/mysql/my.cnf --user=root --password=t8HPW6^8sg /tmp
  2. 保持事务一致性 为了保证备份集中的数据一致,需要操作
    innobackupex --defaults-file=/usr/local/services/mysql/my.cnf --user=root --password=t8HPW6^8sg --apply-log /tmp/2017-03-16_07-46-14
  3. 拷贝文件到slave
    scp -r /tmp/2017-03-16_07-46-14 172.16.85.13:/tmp

master上创建同步账号并授权REPLICATION

  1. 创建用户并授权
    CREATE USER 'slave'@'172.16.85.%' IDENTIFIED BY 'slave';
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'slave'@'172.16.85.%';
    flush privileges;
  2. 在从库测试是否可以使用slave账号登录
    mysql -h172.16.85.10 -uslave -p'slave'

在从库上面把主库的文件拷贝到/data/mysql/data目录

  1. 停掉从库
    /etc/init.d/mysqld stop
  2. 复制从master上面拷贝的文件放到slave的datadir目录下
    mv /tmp/2017-03-16_07-46-14/* /data/mysql/data
  3. msyqldir的data目录授权
    chown -R mysql:mysql /data/mysql/data

启动从库 并执行change master设置主服务器复制信息

  1. 启动从库的mysql
    /etc/init.d/mysqld start
  2. 在slave上执行change master设置主服务器复制信息
    master binlog日志从备份文件中可以获得
    cd /tmp/2017-03-16_07-46-14
    cat xtrabackup_binlog_info
    [root@ceshi14 2017-03-16_07-46-14]# cat xtrabackup_binlog_info
    mysql-bin.000017 107
    进入mysql设置change master设置主服务器复制信息
    change master to master_host='172.16.85.10', master_user='slave', master_password='slave',master_port=3306,master_log_file='mysql-bin.000017',master_log_pos=107;

change master to master_host='172.16.147.13', master_user='slave', master_password='slave',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=244;

在slave上面启动复制

slave start;
检查主从复制是否正常
mysql>show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
主从制作OK

mysql 报错1

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
mysql_install_db –usrer=mysql datadir=/var/lib/mysql

报错2

innobackupex: Error: Built-in InnoDB in MySQL 5.1 is not supported in this release. You can either use Percona XtraBackup 2.0, or upgrade to InnoDB plugin.
重新下载2.0版本
wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.0.8/RPM/rhel6/x86_64/percona-xtrabackup-20-2.0.8-587.rhel6.x86_64.rpm
rpm -ivh

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • xtrabackup 详解(已纠正) xtrabackup是Percona公司CTO Vadim参与开发的一款基于...
    meng_philip123阅读 2,884评论 0 5
  • 一.mysql的日志应用 (1)查询日志:general_log 记录查询语句,日志存储位置:文件:file表:t...
    楠人帮阅读 594评论 0 4
  • 周一清晨综合征,更让人沮丧的是没睡醒。到公司后一直纠结coffee or tea的问题…… 有时候会下载很多社交软...
    月白风清L阅读 324评论 0 1
  • 唯有与“热爱”同行过,你才会知道,所谓的“浑然天成”“无师自通”,无非也是修行的结果。 只是也许,起点早于这一世罢...
    汤林萌主阅读 1,123评论 0 4
  • 插件github地址,这款插件的灵感来源于Android Studio,在AS当中按 cmd+N 可以呼出gene...
    有梦想的程序员阅读 599评论 3 0