一、准备环境
- 两台服务器:服务器A、服务器B
- 服务器A:Red Hat Enterprise Linux Server release 6.5 (Santiago)
- 服务器B:Red Hat Enterprise Linux Server release 6.5 (Santiago)
- 服务器A IP:172.16.125.50
- 服务器B IP:172.16.125.52
- MySQL版本:5.6.23
二、安装MySQL
具体安装请见
三、主从库配置
1、主库在/etc/my.cnf里添加以下内容
1 | #log日志 |
2、从库在/etc/my.cnf里添加以下内容
1 | log_bin=mysql_bin |
四、主从库设置
1、进入主库,我们在主库中创建一个的账户,从库通过使用这个账号来同步数据。
1 | CREATE USER 'repl'@'172.16.125.52' IDENTIFIED BY '123456'; |
2、赋予相应的权限
1 | GRANT FILE ON *.* TO 'repl'@'172.16.125.52' IDENTIFIED BY '123456'; |
3、重启数据库(主库)执行以下命令
1 | SHOW MASTER STATUS; |
要记住以上的信息,在设置从库的时候需要填写并设置。
4、在从库里边执行以下命令
1 | stop slave; |
5、然后执行一下命令查看状态
1 | show slave status \G; |
内容如下:
6、测试与提示
后期的测试中我们只针对test库进行了同步。 所以只能针对test进行的操作才有效。
如果后期对一些列库进行操作,需要 添加相应的配置 1
2
3
4 主库配置文件
binlog-do-db=test
从库配置文件
replicate-do-db=test
并查询出最新的master的状态,停止从库。并改变从库的配置重启同步。 五、Xtrabackup的简单介绍 ——————- Percona XtraBackup 是世界上唯一的开源免费的MySQL热备份软件,可以执行非阻塞操作 InnoDB和XtraDB数据库的备份。 Percona XtraBackup可提供以下优点:
- 备份快速安全可靠
- 备份期间不间断的事务处理
- 节省磁盘空间和网络带宽
- 自动备份验证
- 更快的恢复时间保证正常工作
Percona XtraBackup 为所有版本的Percona服务器,MySQL和MariaDB提供MySQL热备份。 它可执行 流媒体,压缩和增量MySQL备份。
六、Xtrabackup的安装
如果在互联网下 可使用以下命令安装 1
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
获取相应rpm包 安装部分依赖(不同的操作系统可能已安装的库不尽相同) 1
2
3
4rpm -ivh mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm
根据mysql版本而定
yum list|grep perl
yum -y install perl-DBI.x86_64 perl-DBD-MySQL.x86_64
然后安装Xtrabackup 1
rpm -ivh percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm
参考: 1
yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bison libtool ncurses-devel libgcrypt-devel libev-devel libcurl-devel vim-common
七、Xtrabackup备份MySQL
1 | xtrabackup --defaults-file=/etc/my.cnf --user=root --password=root --host=localhost --backup --target-dir=/data/backups/ |
八、Xtrabackup的备份恢复
备份之前必须先关闭MySQL server 然后删除data目录(/var/lib/mysql一般情况是这个) 1
xtrabackup --copy-back --target-dir=/data/backups/
执行完恢复之后需要设置文件权限 1
chown -R mysql:mysql /var/lib/mysql
然后启动mysql 1
2
3systemctl start mysqld.service
或者使用服务
service mysqld start
九、使用脚本自动备份7天之内的数据
1 | #!/bin/sh |
加入crontab 1
30 2 * * * /bin/sh /home/scripts/mysqlbackup.sh