序:mysql
因为公司内部服务器使用的是普通PC机,全部发生宕机的状况比较多。尤为是发生过几回灾难后整机须要从新安装系统,致使此系统上的MySQL数据没法使用。因此再通过这次问题后搭建了MySQL主主备份。sql
0x01:环境数据库
环境:MySQL(5.7)服务器
系统:Windows 10(192.168.1.9,如下简称9)、Window Server 2012(192.168.1.126,如下简称126)ide
库名:test_sync测试
0x02:主从同步spa
先配置主从热备。以126为主机,9为备机。日志
首先须要将126的数据同步到9备机中,而后配置log进行数据的热备。code
一、将126同步的数据库加锁,防止同步数据期间发生新的变动orm
>mysql -h192.168.1.126 -uroot -proot >use test_sync; >flush tables with read lock;
二、经过mysqldump导出数据
mysqldump -uroot -proot test_sync >test_sync.sql
三、解锁数据库
四、将期初数据导入9备机
>use test_sync; >source test_sync.sql
五、修改126 my.ini文件,配置主从同步
#开启二进制日志 log-bin=mysql-bin #设置主机编号 server-id=1 #不一样步的数据库 binlog-ignore-db=information_schema binlog-ignore-db=cluster binlog-ignore-db=mysql #须要同步的数据库 binlog-do-db=test_sync
六、配置9 my.ini文件,配置主从同步
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
replicate-do-db=test_sync
log-slave-updates=YES
relay-log=relay-log
保存后重启MySQL服务,查看126日记记录。
六、在主服务器中建立用于同步数据的帐号
>grant replication slave on *.* to 'repluser'@'192.168.1.9' identified by 'repluse';
七、备机配置主从同步
>change master to master_host='192.168.1.126', master_user='repluser', master_password='repluser', master_log_file='mysql-bin.000003', master_log_pos=1654;
配置后重启服务,查看同步的状态。
>show slave status\G
若是Slave_IO_Running、Slave_SQL_Running均为Yes的话则配置成功,能够进行数据同步测试了。
0x03:主主同步
主主同步与主从同步配置大体相同,只是将上述的主机变为备机,备机变为主机。
一、在9上建立同步的帐号
>grant replication slave on *.* to 'repluser'@'192.168.1.126' identified by 'repluse';
二、修改126配置文件
replicate-do-db=test_sync relay-log=relay-log log-slave-updates=YES
三、查看9备机的二进制日志文件
show master status\G
四、开启同步
>change master to master_host='192.168.1.126', master_user='repluser', master_password='repluser', master_log_file='mysql-bin.000003', master_log_pos=1654;
重启MySQL服务便可。下图中127.0.0.1就是9号机器。
0x04:跳过异常
因为同步过程当中出现异常Slave将自动中断,则能够选择跳过指定错误。
STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;