Mysql扩展知识
MySQL做主从时候是需要主上锁表在把数据拷贝到从上的。为了让主不锁表(在线)把数据拷贝到从上,可以使用XtraBackup
工具,让他把数据做在线备份再传输到从上还原数据。XtraBackup
工具主要是用来备份数据的 当数据大到几百G时候使用MySQLdump
会非常乏力,而使用XtraBackup来备份十分轻松,而且还支持全量,增量备份等。
- XtraBackup优点
- 1.不需要锁表即可进行数据备份
- 2.备份完成快速、可靠
- 3.备份MySQL时不会增大服务器负载
我们这里以192.168.80.104为主 192.168.80.105为从来做主从配置
配置主
1.修改MySQL配置文件my.cnf
1 | [root@localhost ~]# vim /etc/my.cnf |
添加下面参数1
2server-id=1
log_bin=bak
2.重启MySQL并查看主的binlog
1 | [root@localhost ~]# service mysqld restart |
3.安装XtraBackup工具
1 | [root@localhost ~]# rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm |
4.在MySQL中创建备份用户和复制用户并授予权限
1 | [root@localhost ~]# mysql -uroot -p38003800 |
4.建立备份目录
1 | [root@localhost ~]# mkdir /back |
5.备份MySQL的所有数据
1 | [root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --host=192.168.80.104 --port=3306 --user=backup --password='38003800' /back/ |
6.打包备份文件
1 | [root@localhost ~]# tar -cvf back /back/2018-06-29_22-55-57/ |
配置从
1.把主上的备份文件拷贝过来
1 | [root@localhost ~]# scp 192.168.80.104:/root/back back |
2.解包备份文件
1 | [root@localhost ~]# tar -xvf back -C /tmp/ |
-C
表示当前目录的绝对目录
3.停止MySQL的数据库并删除datadir(可以选择移走)
1 | [root@localhost back]# service mysqld stop |
4.安装XtraBackup工具
1 | [root@localhost ~]# rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm |
5.进入备份目录并初始化
1 | [root@localhost ~]# cd /tmp/back/ |
6.恢复数据
1 | [root@localhost back]# innobackupex --defaults-file=/etc/my.cnf --copy-back 2018-06-29_22-55-57/ |
7.更改dadir权限
1 | [root@localhost back]# chown -R mysql:mysql /data/ |
8.修改MySQL配置文件my.cnf并启动MySQL
1 | [root@localhost ~]# vim /etc/my.cnf |
添加下面参数1
server-id=2
1 | [root@localhost back]# service mysqld start |
9.进入MySQL进行主从连接
1 | [root@localhost back]# mysql -uroot -p38003800 |
10.查看从的状态
1 | mysql> show slave status\G |
使用XtraBackup备份数据来做主从成功了