mysql双机热备分

安装

参考centos7 yum安装mysql

环境

两台云服务器,做了私有网络,局域网IP如下
主机A,192.168.0.2
主机B,192.168.0.11
mysql版本5.7.26

实现方案

两台分别作为主机和从机,互相copy数据,用mysql的主从备份功能。
如果业务需要其实也可以加上keepalive,这里先不赘述。

修改配置文件

修改主机A和B的/etc/my.cnf文件,追加以下内容

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

#主从配置
#Server ID,一般设置成IP地址的最后一位,这里分别改为2和11
server_id=2
#开启二进制日志
log-bin=mysql-bin-2
#开启日志同步功能
sync_binlog=1
#需要进行复制的数据库,可以指定数据库,注释掉不用
#binlog-do-db=mytestdb
#不需要备份的数据库,可以设置多个数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1m
#二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。
expire_logs_days=90
#跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
#如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062

配置

分别进入A、B主机的mysql控制台
mysql -uroot -p

以下如果没有特殊色声明,都是在mysql控制台执行

为从机分配账号,注意这里IP,主机A的IP改为11,主机B的改为2.
grant replication slave, replication client on *.* to 'my_slave'@'192.168.0.2' identified by 'slave@password';
flush privileges;

然后分别查看A、B主机的pos是多少,这里以B主机为例,查看B主机的信息,B主机IP尾号为11

mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin-11.000003
Position: 444
Binlog_Do_DB:
Binlog_Ignore_DB: mysql,information_schema,performance_schema
Executed_Gtid_Set:
1 row in set (0.00 sec)

这里记下2个重要信息,mysql-bin-11.000003和444

然后在A主机的mysql控制台里执行,A主机IP尾号为2
change master to master_host='192.168.0.11',master_user='my_slave',master_password='slave@password',master_port=3306,master_log_file='mysql-bin-11.000003',master_log_pos=444,master_connect_retry=30;

然后在B主机启动
start slave;

查看启动状态
show slave status\G

如果看到以下两项为yes那么代表OK,然后把A、B主机的操作反过来一次即可。

Slave_IO_Running: No
Slave_SQL_Running: Yes

错误

由于master_log_pos=444这里,照抄网上的案例,结果数字填错了,导致报错,所以要严格按照自己的信息来填写参数。

Last_IO_Errno: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from position > file size'

常用指令

#停止备份
stop slave;
#启动备份
start slave;

猜你喜欢

转载自blog.csdn.net/weixin_34415923/article/details/91028304
今日推荐