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

相關文章
相關標籤/搜索