背景:线上环境在主库不停服的情况下,利用mysqldump的方式搭建从库。
建议:在主库比较小的情况下(个人建议50G左右),主库不停服可以利用mysqldump搭建从库。如果主库很大,建议利用mysql热备份工具:Percona XtraBackup搭建(后期分享这种方法)。
开始搭建:
1、主库和从库的版本需要一致,这里就不介绍数据库的安装步骤了。
此次:主库:192.168.222.174,从库:192.168.222.175。
2、在主库(192.168.222.174)上创建用户,用于从库读取数据用。
CREATE USER 'Slave'@'%' IDENTIFIED BY 'Slave_123'; #创建用户:Slave,%表示可以从任何机器登录,密码:Slave_123
GRANT REPLICATION SLAVE ON *.* TO 'Slave'@'%'; #授予用户Slave复制从服务器权限
FLUSH PRIVILEGES; #刷新权限
3、主库(192.168.222.174)上配置my.cnf,以下是最简单的配置,需要什么配置可以自行配置:
server_id=174 #server_id,需要唯一
log-bin=mysql-bin #binlog文件名
4、备份主库(192.168.222.174)的所有数据库:
mysqldump -uroot -pZdjy --single-transaction --master-data=2 --all-databases > backup.sql
5、将备份出的数据scp到从库(192.168.222.175)机器上的/tmp/目录下:
scp backup.sql 192.168.222.175:/tmp/
6、从库(192.168.222.175)上配置my.cnf:
server_id=175
7、从库(192.168.222.175上)恢复备份的数据:
mysql -u root -p
8、查看主库(192.168.222.174)在备份时:binlog_file和log_pos的位置点,大概在备份文件的30行:
head -n 50 backup.sql
9、从库(192.168.222.175)设置同步操作:
change master to master_host='192.168.222.174', #配置主库为:192.168.222.174
master_user='Slave', #从库可以用Slave用户登录主库
master_password='Slave_123', #用户Slave的密码
master_log_file='mysql-bin.000009', #上面查看的位置
master_log_pos=8052; #上面查看的位置
10、从库(192.168.222.175)开启同步:
start slave; 开启主从同步
show slave status\G; 查看主从同的情况
当从库上Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 都为Yes时,主从搭建成功。
11、扩展:
1)、可以在主库上安装工具:percona-tools,来检查主从的数据是否一致。
2)、如果需要删除主从配置,在从库上:
stop slave; 停止从库
reset master; 删除从库上配置的主库
reset slave; 删除从库配置
show slave status\G; 查看主从关系是否被删除
以上就是今天的分享,下次分享热备份工具:Percona XtraBackupd搭建主从的过程。