sunyke 发表于 2018-10-10 11:48:35

mysql主从配置(使用percona-xtrabackup)

  一 主服务器操作
#在主服务器上安装好msyql,然后安装percona-xtrabackup工具  
#安装运行环境
  
yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses-devel zlib-devel
  
yum install -y perl-DBD-MySQL perl-DBIperl-Time-HiRes libaio*
  
#下载源码包
  
cd /usr/local
  
wget http://*.*.*/source//mysql/percona-xtrabackup-2.2.3-4982-Linux-x86_64.tar.gz
  
#解压
  
tar -zxvf percona-xtrabackup-2.2.3-4982-Linux-x86_64.tar.gz
  
#重命名
  
mv percona-xtrabackup-2.2.3-Linux-x86_64 percona-xtrabackup
  
#拷贝文件
  
cd percona-xtrabackup/bin/
  
cp ./* /usr/bin
  
#修改主服务器配置文件my.cnf,在中增加两行
  
#log_bin=mysql-bin 可以不加这行
  
#server_id=214服务器id号必须有并且不能重复
  
#在主服务器登录mysql,并在数据库中新增一个账户mysync,将权限设置成replication slave
  
mysql> create user 'mysync'@'%' by 'mysync';
  
mysql> grant replication slave on *.* to 'mysync' @'%' identified by 'mysync';
  账号新增完成自后在从服务器上测试一下是否可以使用此账号远程登录主服务器的mysql
  使用工具percona-xtrabackup的innobackupex命令备份这个数据库(先创建backup目录)
  innobackupex --user=root --password=root /mysqldata/backup
  #提示错误71 at line 2672 手动增加mysql的配置目录 --defaults-file=/etc/my.cnf
  # 提示sock错误 手动指定sock --socket=/tmp/mysql.sock
  #innobackupex --user=mysync --password=mysync --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock /mysqldata/backup
  以上操作会在/mysqldata/backup目录下新增一个新的文件
  #同步数据 回滚未提交的事务及同步已经提交的事务至数据文件,使得数据文件处于一致性状态
  innobackupex --apply-log /mysqldata/backup/2016-12-27_11-33-24
  将备份好的文件/mysqldata/backup/2016-12-27_11-33-24 scp给从服务器
scp /mysqldata/backup/2016-12-27_11-33-24 root@slaveip:/  二 从slave服务器操作
  停止mysql服务,将接收到的备份文件2016-12-27_11-33-24 放到指定目录下并修改文件权限
mv /2016-12-27_11-33-24 /mysqldata/data  
cd /mysqldata/data
  
chown -R mysql:mysql /mysqldata/data
  修改mysql的配置文件my.cnf
  在增加
  log_bin=slave_bin
  server_id = 214 #必须且唯一
  #如果数据库文件不是备份过来的文件位置 ,请修改datadir=备份的数据库文件路径
  启动从slave服务器上的mysql并登陆mysql
mysql>change master to master_host='masterip',master_user='mysync',master_password='mysync',master_log_file='mysql-bin.000001',master_log_pos=320;  #master_host 主服务器的IP地址
  #master_log_file和master_log_pos 需要在主服务器上登陆mysql,使用show master status;查看
  (master_log_pos的值不需要单引号)
  启动slave进程
mysql>start slave  
mysql>show slave status\G; 查看状态
  
Slave_IO_Running: Yes
  
Slave_SQL_Running: Yes
  
#这两项必须为YES
  然后可以在主服务器上进行新增表的测试,在从服务器上可以查看到主服务器上新增的表
  eg:reset 重置slave信息,stop 停止slave


页: [1]
查看完整版本: mysql主从配置(使用percona-xtrabackup)