一.简单介绍:
优点:
实现互为主从,两个服务器可以互相对数据进行增删改查,且互相同
步数据,实现多台主服务的数据修改要求。
不足:
可能带来数据的不一致,当进行相同的内容操作时会发生冲突,导致
数据不同步。
考虑要点:创建表格自动增长id
配置一个节点使用奇数id
auto_increment_offset=1 开始点
auto_increment_increment=2 增长幅度
另一个节点使用偶数id
auto_increment_offset=2
auto_increment_increment=2
发生冲突出错时根据自己的需求忽略错误:
设置变量参数,开启忽略错误此功能,恢复数据同步
]> set global sql_slave_skip_counter=1;
二.实现的操作步骤:
第一步:主服务a
1.修改配置文件: ip 192.168.1.107
vim /etc/my.cnf
server_id=1
log_bin=/data/logbin/bin
bin_log_format=row
auto_increment_offset=1
auto_increment_increment=2
...
...
...
2.启动服务并登录数据库命令行进行主主设置
~]# systemctl start mariadb
~]# mysql
创建授权用户
]> grant replication slave on *.* to centos@'192.168.1.%' identified by 'centos';
将主服务b设置为主
]> change master to
master_host='192.168.1.110',
master_user='centos',
master_password='centos',
master_log_file='bin.000001',
master_log_pos=245;
开启主主复制服务
]> start slave;
主服a设置完成
第二步:主服务b
1.修改配置文件: ip 192.168.1.110
vim /etc/my.cnf
server_id=2
log_bin=/data/logbin/bin
bin_log_format=row
auto_increment_offset=2
auto_increment_increment=2
...
...
...
2.启动服务并登录数据库命令行进行主主设置
~]# systemctl start mariadb
~]# mysql
将主服务a设置为主
]> change master to
master_host='192.168.1.107',
master_user='centos',
master_password='centos',
master_log_file='bin.000001',
master_log_pos=245;
开启主主复制服务
]> start slave;
主服b设置完成
第三步:主主复制建立完成
在主机a创建一个数据库
]> create database oracle;
查询创建的数据库是否成功
]> show databases;
Database |
---|
information_schema |
mysql |
oracle |
performance_schema |
test |
在主机b上查看数据库
]> show databases;
Database |
---|
information_schema |
mysql |
oracle |
performance_schema |
test |
在两台主机上都可看到oracle数据库,同理在主机b上创建一个数据库,主机a
也可查看到,从而实现主主复制同步;
转载于:https://blog.51cto.com/14234542/2392038