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

一 主服务器操做mysql

#在主服务器上安装好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-DBI  perl-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,在[mysqld]中增长两行
#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';

帐号新增完成自后在从服务器上测试一下是否能够使用此帐号远程登陆主服务器的mysqlc++

使用工具percona-xtrabackup的innobackupex命令备份这个数据库(先建立backup目录)sql

innobackupex --user=root --password=root /mysqldata/backup 数据库

#提示错误71 at line 2672 手动增长mysql的配置目录 --defaults-file=/etc/my.cnfbash

# 提示sock错误 手动指定sock --socket=/tmp/mysql.sock服务器

#innobackupex --user=mysync --password=mysync --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock /mysqldata/backupapp

以上操做会在/mysqldata/backup目录下新增一个新的文件socket

#同步数据 回滚未提交的事务及同步已经提交的事务至数据文件,使得数据文件处于一致性状态ide

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

在[mysqld]增长 

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

相关文章
相关标签/搜索